mod_wsgi with pinax

91 views
Skip to first unread message

sh4d0w

unread,
Nov 7, 2010, 4:26:26 PM11/7/10
to modwsgi
Using mod_wsgi 3.3 with python 2.6 on centos 5
O.K not sure where to ask this but if anyone can give any input i'd
much appreciate it. trying to setup pinax on a server i already have
like 30 django sites working perfectly fine on. and with a pinax app
i get. the following messages in my error log:

1.[Sun Nov 07 16:11:24 2010] [info] mod_wsgi (pid=12090): Shutdown
requested 'ourianet'.
2.[Sun Nov 07 16:11:24 2010] [info] mod_wsgi (pid=12090): Stopping
process 'ourianet'.
3.[Sun Nov 07 16:11:24 2010] [info] mod_wsgi (pid=12090): Destroying
interpreters.
4.[Sun Nov 07 16:11:24 2010] [info] mod_wsgi (pid=12090): Cleanup
interpreter ''.
5.[Sun Nov 07 16:11:24 2010] [info] mod_wsgi (pid=12090): Terminating
Python.
6.[Sun Nov 07 16:11:24 2010] [info] mod_wsgi (pid=12089): Shutdown
requested 'ourianet'.
7.[Sun Nov 07 16:11:24 2010] [info] mod_wsgi (pid=12090): Python has
shutdown.
8.[Sun Nov 07 16:11:27 2010] [error] [client 24.37.183.231] Premature
end of script headers: django.wsgi
9.[Sun Nov 07 16:11:27 2010] [error] [client 24.37.183.231] (2)No such
file or directory: mod_wsgi (pid=12133): Unable to connect to WSGI
daemon process 'ourianet' on '/var/run/wsgi.3910.5.23.sock' after
multiple attempts.
10.[Sun Nov 07 16:11:29 2010] [info] mod_wsgi (pid=13397): Attach
interpreter ''.
11.[Sun Nov 07 16:11:29 2010] [info] mod_wsgi (pid=13402): Attach
interpreter ''.

when i try and load the site but it works fine when i do use manage.py
run server. any help would be much appreciated.
Thanks in advance.

Graham Dumpleton

unread,
Nov 7, 2010, 4:31:13 PM11/7/10
to mod...@googlegroups.com
Usually this is because of:

http://code.google.com/p/modwsgi/wiki/ConfigurationIssues#Location_Of_UNIX_Sockets

If however you have other sites working on same Apache which also use
daemon process groups then is odd.

Does this happen on all requests, or only requests which come around
the time of doing an Apache graceful restart? See:

http://groups.google.com/group/modwsgi/browse_frm/thread/8d72119604fe53b6

I have a feeling it may be because of the graceful restart.

Do a full stop and start of Apache and see if it then works.

Graham

> --
> You received this message because you are subscribed to the Google Groups "modwsgi" group.
> To post to this group, send email to mod...@googlegroups.com.
> To unsubscribe from this group, send email to modwsgi+u...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/modwsgi?hl=en.
>
>

sh4d0w

unread,
Nov 7, 2010, 4:32:12 PM11/7/10
to modwsgi
Just wanted to add that i've added the WSGISocketPrefix /var/run/wsgi
in httpd.conf.

sh4d0w

unread,
Nov 7, 2010, 4:35:46 PM11/7/10
to modwsgi
So i did exactly as you said did a full stop and start of the apache
web server.
Then revisted the domain in question. I instantly got a 500 error
then refreshed and now it's just stuck in the loading loop and will
most likely end up giving me the same error message as above. It times
out after about 5 - 7 minutes.

On Nov 7, 4:31 pm, Graham Dumpleton <graham.dumple...@gmail.com>
wrote:
> Usually this is because of:
>
>  http://code.google.com/p/modwsgi/wiki/ConfigurationIssues#Location_Of...
>
> If however you have other sites working on same Apache which also use
> daemon process groups then is odd.
>
> Does this happen on all requests, or only requests which come around
> the time of doing an Apache graceful restart? See:
>
>  http://groups.google.com/group/modwsgi/browse_frm/thread/8d72119604fe...
> > For more options, visit this group athttp://groups.google.com/group/modwsgi?hl=en.- Hide quoted text -
>
> - Show quoted text -

Graham Dumpleton

unread,
Nov 7, 2010, 4:39:23 PM11/7/10
to mod...@googlegroups.com
On 8 November 2010 08:35, sh4d0w <ad...@servqc.net> wrote:
> So i did exactly as you said did a full stop and start of the apache
> web server.
> Then revisted the domain in question.  I instantly got a 500 error

A 500 error is usually a different issue as that daemon socket error
gives a different error number.

What are the errors for the 500 error?

Pinax is not always straightforward to setup from what I have seen.

> then refreshed and now it's just stuck in the loading loop and will
> most likely end up giving me the same error message as above. It times
> out after about 5 - 7 minutes.

That would suggest a thread deadlock in daemon process.

Use:

WSGIApplicationGroup %{GLOBAL}

for the Pinax application.

Graham

sh4d0w

unread,
Nov 7, 2010, 4:45:33 PM11/7/10
to modwsgi
Sorry i missed the one question in the prior most yes .. it does this
every time .. only for this pinax app.

The initial error message was this:

Internal Server Error
The server encountered an internal error or misconfiguration and was
unable to complete your request.

Please contact the server administrator,
webm...@ourislandgeorgia.net and inform them of the time the error
occurred, and anything you might have done that may have caused the
error.

More information about this error may be available in the server error
log.

Additionally, a 500 Internal Server Error error was encountered while
trying to use an ErrorDocument to handle the request.


The wsgi file looks like this:
import os, sys
import site
site.addsitedir('/home/ourianet/public_html/virtfs/lib/python2.6/site-
packages')
site.addsitedir('/home/ourianet/public_html')
sys.path.append('/home/ourianet/public_html/virtfs/lib/python2.6/site-
packages')
sys.path.append('/home/ourianet/public_html/virtfs/lib/python2.6')

#os.environ['DJANGO_SETTINGS_MODULE'] = 'hello.settings'
os.environ['DJANGO_SETTINGS_MODULE'] = 'testpinax.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

I know it's ugly .. but this same setup works on all the other sites.
The hello app works fine also when i change it to load that instead of
the pinax site.

Here is my vhost include:
<IfModule mod_alias.c>
Alias /robots.txt /home/ourianet/public_html/fcabinet/media/robots.txt
Alias /favicon.ico /home/ourianet/public_html/fcabinet/media/
favicon.ico
Alias /media /home/ourianet/public_html/fcabinet/media
Alias /adminmedia /home/ourianet/public_html/fcabinet/media/adminmedia
</IfModule>

<IfModule mod_wsgi.c>
WSGIScriptAlias / /home/ourianet/public_html/django/django.wsgi
WSGIDaemonProcess ourianet processes=2 threads=1 display-name=%{GROUP}
WSGIProcessGroup ourianet
WSGIApplicationGroup %{GLOBAL}
</IfModule>

<Location />
SetHandler None
</Location>

<LocationMatch />
SetHandler None
</LocationMatch>

AddHandler fastcgi-script .fcgi .fcg .fpl
ErrorDocument 401 "Authentication Error"
ErrorDocument 403 "Forbidden"

Again not sexy but working in most cases.

On Nov 7, 4:39 pm, Graham Dumpleton <graham.dumple...@gmail.com>
> >> > For more options, visit this group athttp://groups.google.com/group/modwsgi?hl=en.-Hide quoted text -

Graham Dumpleton

unread,
Nov 7, 2010, 4:56:25 PM11/7/10
to mod...@googlegroups.com
If:

8.[Sun Nov 07 16:11:27 2010] [error] [client 24.37.183.231] Premature
end of script headers: django.wsgi

is in a virtual host error log, what messages are in the main Apache
error log at the same time?

That message may be because of crash caused by a request, but may also
be because of a long running request being interrupted when process
restarted. The messages in main Apache error log will give a better
indication of why.

Also, what are the error log messages for the new 500 error?

Graham

sh4d0w

unread,
Nov 7, 2010, 5:00:49 PM11/7/10
to modwsgi
Thats the thing apache doesn't log anything in relation to this in the
main log.
Here is my apache log from the stop and start on.
[Sun Nov 07 16:33:16 2010] [debug] prefork.c(1013): AcceptMutex:
sysvsem (default: sysvsem)
[Sun Nov 07 16:33:16 2010] [info] mod_wsgi (pid=15590): Attach
interpreter ''.
[Sun Nov 07 16:33:16 2010] [info] mod_wsgi (pid=15590): Adding '/usr/
local/lib/python2.6' to path.
[Sun Nov 07 16:33:16 2010] [info] mod_wsgi (pid=15592): Python home /
usr/local.
[Sun Nov 07 16:33:16 2010] [info] mod_wsgi (pid=15592): Initializing
Python.
[Sun Nov 07 16:33:16 2010] [info] mod_wsgi (pid=15591): Attach
interpreter ''.
[Sun Nov 07 16:33:16 2010] [info] mod_wsgi (pid=15591): Adding '/usr/
local/lib/python2.6' to path.
[Sun Nov 07 16:33:16 2010] [info] mod_wsgi (pid=15592): Attach
interpreter ''.
[Sun Nov 07 16:33:16 2010] [info] mod_wsgi (pid=15592): Adding '/usr/
local/lib/python2.6' to path.
[Sun Nov 07 16:33:19 2010] [debug] proxy_util.c(1818): proxy: grabbed
scoreboard slot 0 in child 15595 for worker proxy:reverse
[Sun Nov 07 16:33:19 2010] [debug] proxy_util.c(1837): proxy: worker
proxy:reverse already initialized
[Sun Nov 07 16:33:19 2010] [debug] proxy_util.c(1934): proxy:
initialized single connection worker 0 in child 15595 for (*)
[Sun Nov 07 16:33:19 2010] [info] mod_wsgi (pid=15595): Python home /
usr/local.
[Sun Nov 07 16:33:19 2010] [info] mod_wsgi (pid=15595): Initializing
Python.
[Sun Nov 07 16:33:19 2010] [info] mod_wsgi (pid=15595): Attach
interpreter ''.
[Sun Nov 07 16:33:19 2010] [info] mod_wsgi (pid=15595): Adding '/usr/
local/lib/python2.6' to path.
[Sun Nov 07 16:33:24 2010] [debug] proxy_util.c(1818): proxy: grabbed
scoreboard slot 0 in child 15601 for worker proxy:reverse
[Sun Nov 07 16:33:24 2010] [debug] proxy_util.c(1837): proxy: worker
proxy:reverse already initialized
[Sun Nov 07 16:33:24 2010] [debug] proxy_util.c(1934): proxy:
initialized single connection worker 0 in child 15601 for (*)
[Sun Nov 07 16:33:24 2010] [info] mod_wsgi (pid=15601): Python home /
usr/local.
[Sun Nov 07 16:33:24 2010] [info] mod_wsgi (pid=15601): Initializing
Python.
[Sun Nov 07 16:33:24 2010] [info] mod_wsgi (pid=15601): Attach
interpreter ''.
[Sun Nov 07 16:33:24 2010] [info] mod_wsgi (pid=15601): Adding '/usr/
local/lib/python2.6' to path.
[[Sun Nov 07 16:39:18 2010] [debug] proxy_util.c(1837): proxy: worker
proxy:reverse already initialized
[Sun Nov 07 16:39:18 2010] [debug] proxy_util.c(1934): proxy:
initialized single connection worker 0 in child 15982 for (*)
[Sun Nov 07 16:39:18 2010] [info] mod_wsgi (pid=15982): Python home /
usr/local.
[Sun Nov 07 16:39:18 2010] [info] mod_wsgi (pid=15982): Initializing
Python.
[Sun Nov 07 16:39:18 2010] [info] mod_wsgi (pid=15982): Attach
interpreter ''.
[Sun Nov 07 16:39:18 2010] [info] mod_wsgi (pid=15982): Adding '/usr/
local/lib/python2.6' to path.
[Sun Nov 07 16:43:41 2010] [debug] proxy_util.c(1818): proxy: grabbed
scoreboard slot 0 in child 16290 for worker proxy:reverse
[Sun Nov 07 16:43:41 2010] [debug] proxy_util.c(1837): proxy: worker
proxy:reverse already initialized
[Sun Nov 07 16:43:41 2010] [debug] proxy_util.c(1934): proxy:
initialized single connection worker 0 in child 16290 for (*)
[Sun Nov 07 16:43:41 2010] [info] mod_wsgi (pid=16290): Python home /
usr/local.
[Sun Nov 07 16:43:41 2010] [info] mod_wsgi (pid=16290): Initializing
Python.
[Sun Nov 07 16:43:41 2010] [info] mod_wsgi (pid=16290): Attach
interpreter ''.
[Sun Nov 07 16:43:41 2010] [info] mod_wsgi (pid=16290): Adding '/usr/
local/lib/python2.6' to path.
[Sun Nov 07 16:48:56 2010] [info] [client 94.218.24.87]
(104)Connection reset by peer: core_output_filter: writing data to the
network


On Nov 7, 4:56 pm, Graham Dumpleton <graham.dumple...@gmail.com>
wrote:
> If:
>
> 8.[Sun Nov 07 16:11:27 2010] [error] [client 24.37.183.231] Premature
> end of script headers: django.wsgi
>
> is in a virtual host error log, what messages are in the main Apache
> error log at the same time?
>
> That message may be because of crash caused by a request, but may also
> be because of a long running request being interrupted when process
> restarted. The messages in main Apache error log will give a better
> indication of why.
>
> Also, what are the error log messages for the new 500 error?
>
> Graham
>
> On 8 November 2010 08:45, sh4d0w <ad...@servqc.net> wrote:
>
>
>
> > Sorry i missed the one question in the prior most yes .. it does this
> > every time .. only for this pinax app.
>
> > The initial error message was this:
>
> > Internal Server Error
> > The server encountered an internal error or misconfiguration and was
> > unable to complete your request.
>
> > Please contact the server administrator,
> > webmas...@ourislandgeorgia.net and inform them of the time the error
> >> >> > For more options, visit this group athttp://groups.google.com/group/modwsgi?hl=en.-Hidequoted text -

sh4d0w

unread,
Nov 7, 2010, 5:30:52 PM11/7/10
to modwsgi
After looking over my post i noticed the time stamps for the httpd log
don't really match up with the ones on the vhost so i looked over the
main log again and I don't see anything related to the error in the
vhost log at all. As far as the 500 message goes it does not post
anything to the vhost log nor the main log at all.
> ...
>
> read more »- Hide quoted text -

Graham Dumpleton

unread,
Nov 7, 2010, 5:39:54 PM11/7/10
to mod...@googlegroups.com
One of the other things I am not seeing in your logs is the line like:

[Tue Oct 26 15:53:46 2010] [info] [client 127.0.0.1] mod_wsgi
(pid=3372, process='tests', application=''): Loading WSGI script
'/Users/grahamd/Testing/tests/echo.wsgi'.

which corresponds to when the first request arrives which triggers the
loading of Pinax WSGI script.

Can you find that and post messages from around that point in time?

Graham

sh4d0w

unread,
Nov 7, 2010, 5:46:45 PM11/7/10
to modwsgi
i did cat /usr/local/apache/logs/error_log | grep Loading
and it returned one line:
[Sun Nov 07 16:33:16 2010] [info] Loading certificate & private key of
SSL-aware server


Im not get anything like this in my logs
my log level is set to debug.

On Nov 7, 5:39 pm, Graham Dumpleton <graham.dumple...@gmail.com>

sh4d0w

unread,
Nov 7, 2010, 5:48:52 PM11/7/10
to modwsgi
i do have this:
[Sun Nov 07 17:47:41 2010] [debug] mod_wsgi.c(9958): mod_wsgi
(pid=15424): Socket for 'ourianet' is '/var/run/wsgi.15424.1.23.sock'.
[Sun Nov 07 17:47:41 2010] [info] mod_wsgi (pid=20458): Starting
process 'ourianet' with uid=99, gid=99 and threads=1.
[Sun Nov 07 17:47:41 2010] [info] mod_wsgi (pid=20469): Starting
process 'ourianet' with uid=99, gid=99 and threads=1.

Graham Dumpleton

unread,
Nov 7, 2010, 5:49:02 PM11/7/10
to mod...@googlegroups.com
The loading script message would be in virtual host log if you are
using ErrorLog directive in VirtualHost.

Graham

Graham Dumpleton

unread,
Nov 7, 2010, 5:53:21 PM11/7/10
to mod...@googlegroups.com
Are you loading/using mod_ssl in same Apache?

Is Pinax defined in a SSL (port 443) virtual host as well as non SSL
(port 80) virtual host?

Graham

sh4d0w

unread,
Nov 7, 2010, 6:02:33 PM11/7/10
to modwsgi
i got:
ssl_module (static)
loaded for ssl in the same apache yes.

the config for ssl looks like:
<IfDefine SSL>
# Defined in /var/cpanel/cpanel.config: apache_ssl_port
Listen 0.0.0.0:443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
</IfDefine>

and the account vhost looks like:

<VirtualHost 174.142.32.244:80>
ServerName ourislandgeorgia.net
ServerAlias www.ourislandgeorgia.net
DocumentRoot /home/ourianet/public_html
ServerAdmin webm...@ourislandgeorgia.net
UseCanonicalName Off
CustomLog /usr/local/apache/domlogs/ourislandgeorgia.net combined
ErrorLog "/home/ourianet/access-logs/ourianet-error_log"
CustomLog /usr/local/apache/domlogs/ourislandgeorgia.net-bytes_log
"%{%s}t %I .\n%{%s}t %O ."
## User ourianet # Needed for Cpanel::ApacheConf
UserDir disabled
UserDir enabled ourianet
<IfModule mod_suphp.c>
suPHP_UserGroup ourianet ourianet
</IfModule>
<IfModule concurrent_php.c>
php4_admin_value open_basedir "/home/ourianet:/usr/lib/php:/
usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
php5_admin_value open_basedir "/home/ourianet:/usr/lib/php:/
usr/local/lib/php:/tmp"
</IfModule>
<IfModule !concurrent_php.c>
<IfModule mod_php4.c>
php_admin_value open_basedir "/home/ourianet:/usr/lib/php:/
usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
</IfModule>
<IfModule mod_php5.c>
php_admin_value open_basedir "/home/ourianet:/usr/lib/php:/
usr/local/lib/php:/tmp"
</IfModule>
<IfModule sapi_apache2.c>
php_admin_value open_basedir "/home/ourianet:/usr/lib/php:/
usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
</IfModule>
</IfModule>
<IfModule !mod_disable_suexec.c>
SuexecUserGroup ourianet ourianet
</IfModule>
ScriptAlias /cgi-bin/ /home/ourianet/public_html/cgi-bin/

Include "/usr/local/apache/conf/userdata/std/2/ourianet/
ourislandgeorgia.net/*.conf"

Sorry if it seems like im just copy/pasting stuff .. I am just trying
to give as much info as possible.


On Nov 7, 5:53 pm, Graham Dumpleton <graham.dumple...@gmail.com>

Graham Dumpleton

unread,
Nov 7, 2010, 6:06:28 PM11/7/10
to mod...@googlegroups.com
Forgot to ask what Apache version you are using?

Graham

sh4d0w

unread,
Nov 7, 2010, 6:08:49 PM11/7/10
to modwsgi
apache version is 2.2
and django is 1, 2, 3, 'final', 0

On Nov 7, 6:06 pm, Graham Dumpleton <graham.dumple...@gmail.com>
wrote:
> Forgot to ask what Apache version you are using?
>
> Graham
>
> On 8 November 2010 10:02, sh4d0w <ad...@servqc.net> wrote:
>
>
>
> > i got:
> >  ssl_module (static)
> > loaded for ssl in the same apache yes.
>
> > the config for ssl looks like:
> > <IfDefine SSL>
> >    # Defined in /var/cpanel/cpanel.config: apache_ssl_port
> >    Listen 0.0.0.0:443
> >    AddType application/x-x509-ca-cert .crt
> >    AddType application/x-pkcs7-crl .crl
> > </IfDefine>
>
> > and the account vhost looks like:
>
> > <VirtualHost 174.142.32.244:80>
> >    ServerName ourislandgeorgia.net
> >    ServerAliaswww.ourislandgeorgia.net
> >    DocumentRoot /home/ourianet/public_html
> >    ServerAdmin webmas...@ourislandgeorgia.net

Graham Dumpleton

unread,
Nov 7, 2010, 6:10:39 PM11/7/10
to mod...@googlegroups.com
On 8 November 2010 10:08, sh4d0w <ad...@servqc.net> wrote:
> apache version is 2.2

Sorry, need the actual patch revision.

$ /usr/sbin/httpd -V | grep version
Server version: Apache/2.2.14 (Unix)

The mod_ssl may have no bearing on things, but it has caused some
weird issues with daemon mode in the past.

Graham

sh4d0w

unread,
Nov 7, 2010, 6:12:19 PM11/7/10
to modwsgi
Server version: Apache/2.2.16 (Unix)


On Nov 7, 6:10 pm, Graham Dumpleton <graham.dumple...@gmail.com>

sh4d0w

unread,
Nov 7, 2010, 6:43:25 PM11/7/10
to modwsgi
reloaded the site on two seperate browsers and after about 30 minutes
I got:

[Sun Nov 07 18:09:44 2010] [info] mod_wsgi (pid=22213): Attach
interpreter ''.
[Sun Nov 07 18:35:23 2010] [error] [client 24.37.183.231] Script timed
out before returning headers: django.wsgi
[Sun Nov 07 18:35:31 2010] [error] [client 24.37.183.231] Script timed
out before returning headers: django.wsgi
[Sun Nov 07 18:40:23 2010] [error] [client 24.37.183.231] Script timed
out before returning headers: django.wsgi
[Sun Nov 07 18:40:31 2010] [error] [client 24.37.183.231] Script timed
out before returning headers: django.wsgi

in the vhost error log and nothing in the main log.

The first line is just to show the time it took between log entrys.

Graham Dumpleton

unread,
Nov 7, 2010, 8:11:40 PM11/7/10
to mod...@googlegroups.com
Use code in:

http://code.google.com/p/modwsgi/wiki/DebuggingTechniques#Tracking_Request_and_Response

to track in Apache error logs when the WSGI application entry point is
actually being called. This will confirm it is even getting to that
point or whether import of WSGI script itself is failing.

You can also put debug statements to log message at the start and end
of WSGI script file itself. This will track progress of import of WSGI
script.

It doesn't make sense that you aren't see the loading script message.
With LogLevel set to debug as you have, you should see it.

Do you perhaps have SELinux enabled on the box?

Graham

sh4d0w

unread,
Nov 11, 2010, 11:22:57 AM11/11/10
to modwsgi
Just wanted to let you know we finnaly got it sorted it. Turns out it
was the vhost config and the wsgi script that was causing the issues.
Thanks for your time and effort.

Regards,
Richard



On Nov 7, 8:11 pm, Graham Dumpleton <graham.dumple...@gmail.com>
wrote:
> Use code in:
>
> http://code.google.com/p/modwsgi/wiki/DebuggingTechniques#Tracking_Re...
Reply all
Reply to author
Forward
0 new messages