Ooops. 
Since I did not install the mod_wsgi through pip, so I guess I can only use 
the second method.
And the result is still *EMBEDDED MODE*.
I did think of the chance that the code was wrong, but no matter the it is 
wrong or not, I have to restart the server every time manually.


Graham Dumpleton於 2019年2月15日星期五 UTC+8下午2時11分42秒寫道:
>
> Obvious really. :-)
>
> The code:
>
> if not os.environ.get('mod_wsgi.process_group'):
>   output = 'EMBEDDED MODE'
> else:
>   output = 'DAEMON MODE'
>
>
> is wrong. It should be either:
>
> import mod_wsgi
>
> if not mod_wsgi.process_group:
>   output = 'EMBEDDED MODE'
> else:
>   output = 'DAEMON MODE'
>
>
> or:
>
> def application(environ, start_response):
>     status = '200 OK'
>
>     if not environ['mod_wsgi.process_group']:
>       output = u'EMBEDDED MODE'
>     else:
>       output = u'DAEMON MODE'
>
>     response_headers = [('Content-Type', 'text/plain'),
>                         ('Content-Length', str(len(output)))]
>
>     start_response(status, response_headers)
>
>     return [output.encode('UTF-8')]
>
>
> It is not an environment variable in the latter, so not 'os.environ', but 
> the value from the environ argument to the application.
>
> The first method picks it up direct from the 'mod_wsgi' module and so can 
> be used at global scope.
>
> Graham
>
>
>
> On 15 Feb 2019, at 2:23 pm, 阿尼 <[email protected] <javascript:>> wrote:
>
> Okay.
> I did not get errors when I restart Apache after adding *WSGIRestrictEmbedded 
> On.*
> Apache failed after I add an invalid line in the configuration.
>
> I also changed the LogLevel to info but it seems to be normal, unless 
> these messages are related:
> [Fri Feb 15 10:22:45.683121 2019] [auth_digest:notice] [pid 1441] AH01757: 
> generating secret for digest authentication ...
> [Fri Feb 15 10:22:45.683873 2019] [lbmethod_heartbeat:notice] [pid 1441] 
> AH02282: No slotmem from mod_heartmonitor
>
>
>
>  
>
>
>
> Graham Dumpleton於 2019年2月15日星期五 UTC+8上午5時31分39秒寫道:
>>
>> When you added:
>>
>>     WSGIRestrictEmbedded On
>>
>> and restarted Apache, did you then get errors?
>>
>> If that directive is in the correct place, it cannot use embedded mode. 
>> If it still is, it suggests the configuration isn't even been run.
>>
>> Suggest added some invalid configuration at same place and restart Apache 
>> and see if Apache even fails to start. That will confirm whether it is 
>> being read. Invalid configuration can be:
>>
>>     XXX
>>
>> on a line by itself. Apache should fail on that.
>>
>> Also ensure using:
>>
>>     LogLevel info
>>
>> rather than LogLevel of warn or err. The use of 'info' will cause 
>> mod_wsgi to output log messages about restarts, daemon group and 
>> interpreter used. This will help in debugging what is happening.
>>
>> Graham
>>
>> On 14 Feb 2019, at 5:57 pm, 阿尼 <[email protected]> wrote:
>>
>> *'myip'* is just a thing to substitute the real IP address I used, did 
>> not think of using a star: *. lol
>> and *'myproject'* is my fault either, it is different Unicode characters 
>> but only in this post.
>>
>> I said that I am not in daemon mode is because I followed the document 
>> <https://modwsgi.readthedocs.io/en/develop/user-guides/reloading-source-code.html#embedded-mode-vs-daemon-mode>
>>   to add the code in my wsgi.py:
>> if not os.environ.get('mod_wsgi.process_group'):
>>   output = 'EMBEDDED MODE'
>> else:
>>   output = 'DAEMON MODE'
>>
>>
>> It prints out *'EMBEDDED MODE'* and I do need to reload Apache everytime 
>> I changed my source code.
>> Even if I add * WSGIRestrictEmbedded On, *it still can work but still 
>> prints out *'EMBEDDED MODE'*.
>>
>> I am hosting other PHP applications at the same Apache Server, not 
>> knowing if it concerns. 
>>
>>
>> 阿尼於 2019年2月13日星期三 UTC+8上午11時51分26秒寫道:
>>>
>>> Hello
>>>
>>> I have set my configuration like following, but it seems I am not into 
>>> the deamon mode.
>>> did I miss something?
>>> <VirtualHost myip>
>>> ServerName myname
>>> CustomLog /var/log/httpd/myname-access.log common
>>> ErrorLog /var/log/httpd/myname-error.log
>>>
>>> WSGIDaemonProcess myproject python-home=/path/to/myproject/.env
>>> WSGIProcessGroup  myproject 
>>> WSGIScriptAlias / '/path/to/myproject/myproject/wsgi.py'
>>> <Directory '/path/to/myproject/myproject'>
>>> <Files wsgi.py>
>>>     Require all granted
>>> </Files>
>>> </Directory>
>>>
>>> Alias '/static' '/homepage/myproject/static-files'
>>> <Directory '/homepage/myproject/static-files'>
>>>     AllowOverride None
>>>     Require all granted
>>> </Directory>
>>> </VirtualHost>
>>>
>>>
>>>
>>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "modwsgi" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at https://groups.google.com/group/modwsgi.
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "modwsgi" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] <javascript:>.
> To post to this group, send email to [email protected] <javascript:>
> .
> Visit this group at https://groups.google.com/group/modwsgi.
> For more options, visit https://groups.google.com/d/optout.
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.

Reply via email to