apache/mod_wsgi daemon mode

Scott SA pydev at rscorp.ab.ca
Sun Feb 3 18:33:43 EST 2008


On 2/3/08, Brian Smith (brian at briansmith.org) wrote:

>Scott SA wrote:
>> I am trying to configure mod_wsgi to run in daemon mode with 
>> Apache. I can easily get it to run 'normally' under Apache 
>> but I obtain permission errors _or_ process-failures in 
>> daemon mode. Specifically: 
>>     
>>      ... (13)Permission denied: mod_wsgi (pid=26962): Unable 
>> to connect 
>>      to WSGI daemon process '<process-name>' on 
>>     '/etc/httpd/logs/wsgi.26957.0.1.sock' after multiple attempts.
>
>> The host is Apache 2.2n under CentOS 5.1 i386 running Python 2.4
>
>Try again after "sudo /usr/sbin/setenforce 0". If it works with SELinux
>disabled then you will have to do a bit more work to get it working with
>SELinux enabled. I suggest creating a directory that is labeled with the
>Apache read/write type, and setting the WSGI socket prefix such that the
>domain sockets will get put in that directory. If that doesn't solve the
>problem then use the procedures in the SELinux documentation to create a
>security policy. And then, please share it with me. :)

I disabled SELinux during system install and have double-checked it is not running.

>Also, mod_wsgi has its own mailing list:
>   http://groups.google.com/group/modwsgi

I had previoiusly done what I _thought_ was a good job of searching the wsgi mailing list (really!). A reworking of my google search parameters finally yeildd a helpful thread:

<http://groups.google.com/group/modwsgi/browse_thread/thread/6d3a2f4d7c294dc/ba5cd5055bb5cc62?lnk=gst&q=daemon+unable-to-connect#ba5cd5055bb5cc62>

The problem was WSGI trying to create its .sock file in /var/log/httpd but failing and therefore not running at all. The user I had specified did not have enough permissions to do so (part of the point _of_ running in daemon mode, LOL). Oddly, I had attempted to grant the permissions for the user but see now there was an error in how I did that... oops.

By adding the following to my config:
    
    WSGISocketPrefix /tmp/wsgi 

We now have successss!


So my config now looks like:
    
   WSGISocketPrefix /tmp/wsgi 
    
   <VirtualHost host.domain.com:80>
       ServerName host.domain.com
    
       WSGIDaemonProcess <process-name> user=<user> group=<group> threads=10 \
                maximum-requests=500
    
       WSGIScriptAlias /something /path/to/<script>.wsgi
    
       <Directory /path/to/<script>.wsgi>
          WSGIApplicationGroup <user>
          WSGIProcessGroup <process-name>
          
          Order deny,allow
          Allow from all
       </Directory>


Thanks, Brian, for pointing me back to the modwsgi list for another look!

Scott



More information about the Python-list mailing list