Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Weird error deploying django on apache, mod_wsgi, debian

on django 1.8 In apache error logs am getting

File "..../python2.7/site-packages/django/utils/lru_cache.py", line 28
fasttypes = {int, str, frozenset, type(None)},
SyntaxError: invalid syntax

googling around this seems to be an error you get when running django 1.7+ and not meeting the minimum python requirement of 2.7. however

$ python --version
Python 2.7.3

here is the relevant parts of apache virtual host config.

<VirtualHost <some_ip>:80>       
        WSGIDaemonProcess some_process python-path=/path/to/django-project/main-django-app:/path/to/virtual-env/site-packages/ threads=15 display-name=%{GROUP}
        WSGIProcessGroup some_group

        WSGIScriptAlias / /path/to/django-project/main-django-app/wsgi.py

        <Directory /path/to/django-project/main-django-app>
        <Files wsgi.py>
                Order deny,allow

                # Require all granted
                # for Apache < 2.4
                Allow from all
        </Files>
        </Directory>
</VirtualHost>

does anyone have any idea what the issue might be?

like image 806
w-- Avatar asked Apr 26 '26 13:04

w--


1 Answers

You need to install the mod_wsgi for your python version.

If you have not access to the apache installation, mod_wsgi can be installed directly in your virtualenv using pip. Then it can be loaded in your server settings using:

Global settings:

LoadModule wsgi_module /path/to_your_env/path/to/mod_wsgi.so
WSGISocketPrefix run/wsgi
WSGIDaemonProcess 385969

Virtualhost:

WSGIScriptAlias / "/path/to/your/wsgi.py"
<Location />
    WSGIProcessGroup 385969 # this value must be identical to WSGIDaemonProcess
</Location>

Finally, I your wsgi.py file, you'll have to activate the virtualenv.

like image 88
user1533401 Avatar answered Apr 28 '26 06:04

user1533401



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!