2
votes

I am trying to run a dJango(1.5) application with Apache (2.4) and mod_wsgi. I have followed the standard tutorial. I have also run apache user and group as the file owner(myself) and the group. After I hit an url, it waits for long and then gives Gateway Timeout. Apache hits wsgi.py and upto settings.py as I am seeing all the print statements in settings.py in /var/log/apache2/error.log, but after that no output. Is it not getting the urls.py? Can anybody help please? I am giving my httpd.conf here.

WSGIDaemonProcess imse_wsgi python-path=/ldata/Imse user=www-data

<VirtualHost *:80>

    ServerName wonders.pc.hiit.fi
    ServerAlias imse.hiit.fi

    Alias /static/ /ldata/Imse/static/

    <Directory /ldata/Imse/static>
            Require all granted
    </Directory>

    WSGIScriptAlias /imse /ldata/Imse/Imse/wsgi.py
    <Directory /ldata/Imse/Imse>
            Require all granted
            WSGIProcessGroup imse_wsgi
            <Files wsgi.py>
                    Require all granted
            </Files>
    </Directory>
    <IfModule mod_headers.c>
            Header set Access-Control-Allow-Origin "*"
    </IfModule>
</VirtualHost>

here is wsgi.py

import os
import sys
import django.core.handlers.wsgi

sys.path.append('/ldata/Imse')
sys.path.append('/ldata/Imse/Imse')

os.environ["DJANGO_SETTINGS_MODULE"] = "Imse.settings"
application = django.core.handlers.wsgi.WSGIHandler()

error log when apache2 is restarted

[Tue Oct 28 00:03:28.525134 2014] [mpm_event:notice] [pid 26381:tid 139811474503552] AH00491: caught SIGTERM, shutting down
[Tue Oct 28 00:03:29.592849 2014] [mpm_event:notice] [pid 4084:tid 139694197917568] AH00489: Apache/2.4.10 (Debian) mod_wsgi/4.3.0 Python/2.7.8 configured -- resuming normal operations
[Tue Oct 28 00:03:29.592960 2014] [core:notice] [pid 4084:tid 139694197917568] AH00094: Command line: '/usr/sbin/apache2'

When I hit the url

[Tue Oct 28 00:05:49.754939 2014] [wsgi:error] [pid 4087:tid 139693984982784] Env loaded
[Tue Oct 28 00:05:49.755014 2014] [wsgi:error] [pid 4087:tid 139693984982784] Application loaded
[Tue Oct 28 00:05:49.755776 2014] [wsgi:error] [pid 4087:tid 139693984982784] /ldata/Imse
[Tue Oct 28 00:05:49.755863 2014] [wsgi:error] [pid 4087:tid 139693984982784] No local settings configured, using defaults
[Tue Oct 28 00:05:49.879412 2014] [wsgi:error] [pid 4087:tid 139693984982784] URL imported
[Tue Oct 28 00:05:49.879445 2014] [wsgi:error] [pid 4087:tid 139693984982784] Loading URLs

These are the prints from wsgi.py (those are removed here) and from settings.py, the programme gets stucked in urls.py, after nearly 5 minutes of page loading, the page shows Gateway Timeout and one line added to the error.log as below

[Tue Oct 28 00:10:49.654957 2014] [wsgi:error] [pid 4089:tid 139693995841280] [client 2001:708:140:200:8a51:fbff:fe64:db53:51393] Timeout when reading response headers from daemon process 'imse_wsgi': /ldata/Imse/Imse/wsgi.py
1
can you include wsgi.py and a dump of the server from when you start httpd to when you try to access /imse via a browser (also, it's Django, not dJango) Lastly, just to check... does going to static/<something in static> return at least the static file? - Foon
Sorry for the spelling mistake. I added wsgi.py above. - Sayantan

1 Answers

2
votes

Does your application successfully return when running using python manage.py runserver? Try to debug the execution using more print statements in other parts of your code. For example urls.py.