Я установил флеш-приложение, работающее с apache 2.4, mod wsgi, python 2.7 на mac мини. Он служит для некоторых полезных данных, которые моя команда использует для мониторинга нашего проекта.Получение Django Apache Mysql WSGI, работающий с использованием python 3.4 virtualenv на машине с предварительно существующим флеш-приложением, работающим под глобальным python2.7
Недавно я разработал приложение Django с базой данных базы данных MySQL, которое отлично работает под тестовым сервером в виртуальной среде python 3.4 с Django 1.10 и PyMySQL и mysqlclient, установленными через pip, но я не могу заставить это работать под апач.
Моя конфигурация Apache Виртуальный сервер выглядит следующим образом:
WSGIScriptReloading On
<VirtualHost *>
ServerName <server_name>
ServerAlias <project_name>
ServerAdmin <myEmail>
LogLevel info
# This is the WSGI daemon process for the existing python 2.7/flask project
# Even if I comment this bit out, the Django project still won't work
WSGIDaemonProcess theApp user=_www group=staff threads=5
WSGIScriptAlias /app1 /path/to/theApp/apache/wsgi.py
<Directory "/path/to/theApp/apache">
WSGIProcessGroup app1
WSGIApplicationGroup %{GLOBAL}
<Files wsgi.py>
Require all granted
</Files>
</Directory>
# This is the WSGI daemon process for my django app - I've anonymised it
# a bit but I am confident the paths used are correct
WSGIDaemonProcess djangoApp user=_www group=staff processes=2 threads=15 python-path=/path/to/djangoApp:/path/to/virtualenvs/env34 display-name=%{GROUP}
WSGIProcessGroup djangoApp
WSGIApplicationGroup %{GLOBAL}
WSGIScriptAlias /djangoApp /path/to/djangoApp/djangoApp/wsgi.py
<Directory /path/to/djangoApp/djangoApp>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
Существует линия в httpd.conf:
LoadModule wsgi_module /Library/Python/2.7/site-packages/mod_wsgi/server/mod_wsgi-py27.so
Замена этого с помощью следующей строки:
LoadModule wsgi_module /path/to/.virtualenvs/env34/lib/python3.4/site-packages/mod_wsgi/server/mod_wsgi-py34.so
Разбивает существующее приложение python 2.7/Flask и не исправляет мое приложение Django
Апач журнал ошибок имеет некоторые заметные ошибки:
'/path/to/djangoApp/djangoApp/wsgi.py' cannot be loaded as Python module.
ImportError: No module named django.core.wsgi
Так, глядя на другие вопросы, которые я получаю впечатление, что существует проблема запуска приложения python3.4 на основе и WSGI, скомпилированные для Python 2.7, но учитывая что это приложение прекрасно работает под тестовым сервером django и виртуальной средой, я не могу не чувствовать, что должен быть способ реализовать его на рабочем сервере.
Большое спасибо за любую помощь
PJ
Большое спасибо Грэм. Читая это, у меня создается впечатление, что я могу использовать только mod_wsgi, скомпилированный для одной версии Python, и поэтому мне нужно будет обновить мой существующий проект фляги до python 3, чтобы и он, и мой новый проект Django могли жить друг с другом. , , наряду с сортировкой бита python-path. т. е. запускать это под apache, может быть только одна версия python, используемая для приложений, работающих под mod_wsgi. Достаточно, чтобы это сделать, модуль и вся документация, которые идут с ним, очень кстати! – pjmnoble
Другой вариант - использовать '' mod_wsgi-express'' и иметь разные экземпляры для прокси-сервера. См. Https://pypi.python.org/pypi/mod_wsgi и сведения о проксировании по адресу http://blog.dscpl.com.au/2015/06/proxying-to-python-web-application.html и http://blog.dscpl.com.au/2015/07/redirection-problems-when-proxying-to.html Просто игнорируйте, что он говорит о Докере. –
Чистый мертвый гениальный - оба сайта работают и работают! – pjmnoble