Возникла исключительная ситуация при обработке скрипта wsgi - PullRequest
0 голосов
/ 11 июля 2019

У меня есть приложение Django 2.0.5 и сервер Centos7 с httpd. Я хотел бы развернуть приложение с помощью httpd, но я получаю сообщение об ошибке, когда apache обрабатывает скрипт wsgi

mod_wsgi (pid=17647): Exception occurred processing WSGI script '/var/www/html/quiq/apache.conf/web.wsgi'.
TypeError: 'NoneType' object is not iterable
mod_wsgi (pid=17648): Exception occurred processing WSGI script '/var/www/html/quiq/apache.conf/web.wsgi'.
TypeError: 'NoneType' object is not iterable

скрипт WSGI

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

sys.path.append('/var/www/html/quiq/')

os.environ['DJANGO_SETTINGS_MODULE'] = 'Rest_SL_Algorithm.settings'

# avoid UnicodeEncodeError
os.environ.setdefault("LANG", "en_US.UTF-8")
os.environ.setdefault("LC_ALL", "en_US.UTF-8")
from django.core.wsgi import get_wsgi_application

##activamos nuestro virtualenv
activate_this = '/var/www/html/quiq/quiqenv/bin/activate_this.py'
#execfile(activate_this, dict(__file__=activate_this))
#exec(open('/var/www/html/quiq/quiqenv/bin/activate_this.py').read())
exec(compile(open(activate_this, "rb").read(), activate_this, 'exec'), dict(__file__=activate_this))
#_application = django.core.handlers.wsgi.WSGIHandler()
_application = get_wsgi_application()


def application(environ, start_response):
    environ['PATH_INFO'] = environ['SCRIPT_NAME'] + environ['PATH_INFO']
    if environ['wsgi.url_scheme'] == 'https':
        environ['HTTPS'] = 'on'
        return _application(environ, start_response)

и мой httpd conf для проекта

<virtualhost *:80>

    ServerName algorithm

    DocumentRoot /var/www/html/quiq

    <Directory /var/www/html/quiq>
        Order allow,deny
        Allow from all
    </Directory>

    WSGIDaemonProcess dev.algorithm.com processes=2 threads=15 display-name=%{GROUP}

    WSGIProcessGroup dev.algorithm.com

    WSGIScriptAlias / /var/www/html/quiq/apache.conf/web.wsgi

    Alias /media /var/www/html/quiq/media/
    <Directory /var/www/html/quiq/media>
        Require all granted
    </Directory>

    Alias /static/ /var/www/html/quiq/staticfiles/
    <Directory /var/www/html/quiq/staticfiles>
        Require all granted
    </Directory>

    ErrorLog /etc/httpd/logs/pyerror.log
    CustomLog /etc/httpd/logs/pyaccess.log combined

</virtualhost>

Мне пришлось сделать несколько обходных путей при установке на centos, например, установка centos-release-scl и rh-python

Проблема в том, что когда я выполняю те же команды на консоли python, он говорит мне, что модуль django не может быть найден.

Любая помощь в том, что я должен делать? Заранее спасибо!

...