Эта проблема мучает меня уже несколько дней. Я использую Apache, WSGI и django на своем Raspberry Pi. Операционная система — Raspbian.
Все в порядке, кроме этой ошибки от Apache.
[error] [client 127.0.0.1] Target WSGI script not found or unable to stat: /home/pi/EZ_Green/apache/ems_gateway_django.wsgi
Мой файл конфигурации выглядит так, довольно просто
WSGIDaemonProcess ems.ezgreenbuildings.com processes=1 maximum-requests=100 threads=10
WSGIScriptAlias / /home/pi/EZ_Green/apache/ems_gateway_django.wsgi
Путь к файлу — это точно полный путь. Так что файл существует. Затем я подумал, что у процесса сервера apache нет разрешения на доступ к файлу, поэтому я изменил режим файла wsgi на 777. Но он все еще сообщает о той же ошибке.
Я искал некоторое время и перепробовал несколько методов.
- переместите файл wsgi в другую папку, например, «/var/www», но он все равно не может его найти.
- попробуйте переустановить apache, не работает.
- удалить завершающий слеш
Странно, но apache работает нормально, если я удаляю файл конфигурации wsgi. И сам django работает нормально, если я запускаю тестовый сервер, предоставленный django.
Если кто-то может помочь, буду очень рад. Спасибо!
решение1
Включены ли у вас расширения SELinux, не позволяющие Apache получить доступ к каталогам, в которых находятся файлы?
Разрешат ли разрешения на домашний каталог доступ Apache? Недостаточно, чтобы файл был доступен для чтения, все каталоги до него также должны быть доступны.
Не имеет отношения к теме, но есть ли у вас директива WSGIProcessGroup, соответствующая WSGIDaemonProcess, чтобы запросы фактически делегировались для выполнения в процессе-демоне?
Наконец, вы можете не указывать «processes=1», поскольку по умолчанию это один процесс, а установка «processes» для любого числа имеет другие последствия, поскольку в среде WSGI это будет означать, что это многопроцессная конфигурация.