Apache / Wsgi - проблемы с переключением с локальной среды на virtualenv в CentOS - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь перевести существующее работающее приложение django из локального env (например, /usr/lib/python2.7/site-packages) в использование virtualenv (например, [PATH_TO_VIRTUALENV] / lib / python2. 7 / сайт-пакеты). Это предназначено, чтобы помочь мне с обновлениями пакета в конечном счете, так что я могу откатиться к предыдущему env при необходимости.

Я начал с установки на свежую virtualenv всех пакетов, установленных в локальной среде env, с использованием точно таких же версий. На данный момент я могу запустить форму оболочки django в директории приложения (/ home / django / qa / web), используя новый env, который должен подтвердить, что все зависимости выполнены.

Ниже приведены исходные рабочие конфигурации.

wsgi.py:

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings")

application = get_wsgi_application()

VirtualHost:

<VirtualHost *:80>
    ServerName qa.myserv.com
    DocumentRoot /var/www/qa.myserv.com/public_html
    ErrorLog /var/www/qa.myserv.com/logs/error.log
    CustomLog /var/www/qa.myserv.com/logs/requests.log combined

    <Directory /home/django/qa/web/web>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    WSGIDaemonProcess qa python-path=/home/django/qa/web:/lib/python2.7/site-packages
    WSGIProcessGroup qa
    WSGIScriptAlias / /home/django/qa/web/web/wsgi.py

</VirtualHost>

Теперь я попытался заставить это работать с виртуальным env, который расположен в /home/django/env/qa_0, изменив строку WSGIDaemonProcess:

Попытка 1

WSGIDaemonProcess qa python-path=/home/django/qa/web:/home/django/env/qa_0/lib/python2.7/site-packages

Это привело к внутренней ошибке сервера со следующим в журнале ошибок:

[Wed Apr 25 13:57:25.089794 2018] [:error] [pid 23812] [remote 192.168.1.248:240]     from django.core.wsgi import get_wsgi_application
[Wed Apr 25 13:57:25.089845 2018] [:error] [pid 23812] [remote 192.168.1.248:240] ImportError: No module named wsgi

Попытка 2

WSGIDaemonProcess qa python-home=/home/django/env/qa_0 python-path=/home/django/qa/web

Это также привело к внутренней ошибке сервера, которая заняла больше времени и в журнале ошибок заканчивается следующим:

[Wed Apr 25 13:30:58.779124 2018] [core:error] [pid 17503] [client 192.168.1.248:53731] Script timed out before returning headers: wsgi.py

Я просмотрел документы django и modwsgi настолько хорошо, насколько мог, а также рассматривал каждый связанный вопрос, который я мог найти при переполнении стека, я не могу понять это. Есть идеи?

...