Развертывание Django на Apache с помощью mod_wsgi - PullRequest
0 голосов
/ 04 июня 2018

В настоящее время я пытаюсь настроить приложение Django на Apache на сервере Centos с использованием mod_wsgi.Это настроено для запуска по https.Он находится на virtualenv.

Однако в настоящее время он выдает ошибку 504 Gateway Timeout.

Журнал ошибок:

(2)No such file or directory: mod_wsgi (pid=15007): Unable to stat Python home /bin/virtualenv:/var/www/django/mysite/mysite/lib/python3.6/site-packages. Python interpreter may not be able to be initialized correctly. Verify the supplied path and access permissions for whole of the path.
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

httpd.conf

<VirtualHost *:443>
ServerName mysite.example.com
ServerAlias www.mysite.example.com
# DocumentRoot /var/www/django/mysite

LogLevel info

ErrorLog /etc/httpd/logs/mysite_error.log


Alias /static /var/www/django/mysite/static

<Directory /var/www/django/mysite/static>
  Require all granted
</Directory>

<Directory /var/www/django/mysite/mysite>
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>

WSGIDaemonProcess mysite python-home=/bin/virtualenv:/var/www/django/mysite/mysite/lib/python3.6/site-packages
WSGIProcessGroup mysite
WSGIScriptAlias / /var/www/django/mysite/mysite/wsgi.py
WSGIApplicationGroup %{GLOBAL}


SSLEngine on
SSLProtocol all -SSLv2

SSLCompression off

SSLCertificateFile /etc/pki/tls/certs/mysite.cert.pem
SSLCertificateKeyFile /etc/pki/tls/private/mysite.key.pem
SSLCertificateChainFile /etc/pki/tls/certs/mysite.chain.pem

</VirtualHost>

1 Ответ

0 голосов
/ 04 июня 2018

Это неверно:

WSGIDaemonProcess mysite python-home=/bin/virtualenv:/var/www/django/mysite/mysite/lib/python3.6/site-packages

Обзор:

Значение python-home должно быть одним каталогом,что аналогично sys.prefix для Python при использовании виртуальной среды.Не добавляйте каталог site-packages.

Самое главное, mod_wsgi должен быть скомпилирован для той же версии Python, которая использовалась для создания виртуальной среды.Вы не можете использовать mod_wsgi, скомпилированный для Python 2.7 с виртуальной средой, созданной с помощью Python 3.6.

Проверьте, какая версия Python mod_wsgi была скомпилирована для использования:

...