Я пытаюсь развернуть mod_wsgi с apache для запуска приложения django, но получаю сообщение об ошибке 500 внутренняя ошибка сервера В журналах apache показано:
[Thu Jun 23 14:01:47 2011] [error] [client 152.78.95.64] mod_wsgi (pid=16142): Exception occurred processing WSGI script '/home/user/bms/apache/django.wsgi'.
[Thu Jun 23 14:01:47 2011] [error] [client 152.78.95.64] Traceback (most recent call last):
[Thu Jun 23 14:01:47 2011] [error] [client 152.78.95.64] File "/home/user/bms/apache/django.wsgi", line 13, in <module>
[Thu Jun 23 14:01:47 2011] [error] [client 152.78.95.64] import django.core.handlers.wsgi
[Thu Jun 23 14:01:47 2011] [error] [client 152.78.95.64] ImportError: No module named django.core.handlers.wsgi
Мой виртуальный хост apache выглядит следующим образом:
<VirtualHost *:80>
DocumentRoot /home/user/bms
<Directory /home/user/bms>
Order allow,deny
Allow from all
</Directory>
WSGIDaemonProcess bms user=user group=user processes=2 threads=25 python-path=/usr/local/lib/python2.7/site-packages
WSGIProcessGroup bms
WSGIScriptAlias / /home/user/bms/apache/django.wsgi
</VirtualHost>
И указанный wsgi в каталоге моего приложения с разрешениями 0777:
import os
import sys
path = '/home/user/bms'
if path not in sys.path:
sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'bms.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Я слышал, что это может быть из-за того, что у пользователя apache нет правильных разрешений. Однако я не знаю, как это исправить. Я также попытался запустить демон с пользователем www-data, и это не решило проблему.
РЕДАКТИРОВАТЬ :
Я решил это, скопировав файл виртуальных хостов в файл по умолчанию, а затем отключив старый. с a2дисситом. Я понятия не имею, как я могу сделать это «правильно» и настроить так, чтобы apache перешел на виртуальный хост, который я хочу.
У меня была та же ошибка
, Целевой сценарий WSGI не может быть загружен как модуль Python
, Это было то, потому что путь Python не был добавлен в apache.conf
В зависимости от Apache и версии Ubuntu, необходимо обновить apache.conf или httpd.conf файл с pythonWSGIPath
В моем случае, я должен отредактировать apache.conf
sudo nano /etc/apache2/apache2.conf
, Затем добавляют, следующая строка в конце (Измените my_project на проект название проекта)
WSGIPythonPath /var/www/my_project
, И все работает с очарованием