#python #django #linux #apache #mod-wsgi
#python #django #linux #apache #мод -wsgi
Вопрос:
Я пытаюсь развернуть старое приложение Django (1.7) на сервере Apache2 в Debian. Я, наконец, смог запустить приложение, ./manage.py runserver
но мне не удалось добиться успеха в mod-wsgi
работе. Я никогда не писал серверное приложение на Python, поэтому, возможно, я упускаю что-то очевидное.
Вот шаги, которые я выполнил
- Все, что я пробовал
/usr/bin/python
, — это 2.7 — я знаю, я должен использоватьvirtuelenv
, но я не хотел добавлять еще больше сложности ко всему этому (поскольку я с этим не знаком) - установлен
mod-wsgi
сapt-get install libapache2-mod-wsgi
- Добавьте следующую конфигурацию в /etc/apache2/mods-enabled/wsgi.conf
- Перезапуск Apache2
<IfModule mod_wsgi.c>
WSGIScriptAlias / /home/rosasystem.pl/public_html/rosasystem/rosasystem/wsgi.py
WSGIPythonHome /usr/bin/python
WSGIPythonPath /home/rosasystem.pl/public_html/rosasystem
LogLevel warn
<Directory /home/rosasystem.pl/public_html/rosasystem/rosasystem>
<Files wsgi.py>
Order deny,allow
Require all granted
</Files>
</Directory>
</IfModule>
С тех пор я продолжаю получать это сообщение об ошибке в error.log
— большинство материалов, которые я использовал в Google, предполагает, что существует несоответствие версии Python между mod-wsgi
и system / virtualenv версией Python, что в этом не имеет смысла, потому что все на Python 2.7.
[Tue Oct 06 15:13:42.946626 2020] [mpm_event:notice] [pid 17059:tid 139874785088640] AH00489: Apache/2.4.38 (Debian) mod_fcgid/2.3.9 OpenSSL/1.1.1g mod_wsgi/4.6.5 Python/2.7 configured -- resuming normal operations
[Tue Oct 06 15:13:42.946650 2020] [core:notice] [pid 17059:tid 139874785088640] AH00094: Command line: '/usr/sbin/apache2'
[Tue Oct 06 15:13:42.951277 2020] [wsgi:warn] [pid 17061:tid 139874785088640] mod_wsgi (pid=17061): Python home /usr/bin/python is not a directory. Python interpreter may not be able to be initialized correctly. Verify the supplied path.
[Tue Oct 06 15:13:42.951531 2020] [wsgi:warn] [pid 17062:tid 139874785088640] mod_wsgi (pid=17062): Python home /usr/bin/python is not a directory. Python interpreter may not be able to be initialized correctly. Verify the supplied path.
ImportError: No module named site
На данный момент я в значительной степени застрял; что нового я могу попробовать?
Комментарии:
1. Вы пробовали это без WSGIPythonHome, поскольку используете системный python?
2. @WombatPM да, у меня есть, без изменений
3. Вы пытались добавить /usr/lib/python2.7 в WSGIPythonPath? И были ли какие-либо ошибки при запуске pip install -r requirements.txt ?
Ответ №1:
site-packages
путь должен быть добавлен WSGIPythonPath
, просто укажите правильный путь для вашей системы
<IfModule mod_wsgi.c>
WSGIScriptAlias / /home/rosasystem.pl/public_html/rosasystem/rosasystem/wsgi.py
WSGIPythonHome /usr/bin/python
WSGIPythonPath '/home/rosasystem.pl/public_html/rosasystem;/usr/lib/python2.7/dist-packages'
LogLevel warn
<Directory /home/rosasystem.pl/public_html/rosasystem/rosasystem>
<Files wsgi.py>
Order deny,allow
Require all granted
</Files>
</Directory>
</IfModule>
Комментарии:
1. В WSGI определенно отсутствует путь к библиотеке python на основе сбоя импорта.
2. Я попробую через мгновение