简体   繁体   中英

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?

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM