У меня есть приложение 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 не может быть найден.
Любая помощь в том, что я должен делать?
Заранее спасибо!