Вижу внутреннюю ошибку сервера 500 с mod_wsgi, apache и django, но в журнале ничего нет. Gunicorn работает без проблем
Мы выпустили новый код, который зависит от django-tree-queries, и теперь видим внутреннюю ошибку сервера с mod_wsgi. Нет ничего в логах apache и ничего в логах django. Обычно при ошибках django мы видим трассировку стека в логах и получаем письмо.
Вот наша конфигурация apache:
<VirtualHost IP_ADDR:443>
ServerName our.url
ErrorLog ${APACHE_LOG_DIR}/dev-ssl-error.log
CustomLog ${APACHE_LOG_DIR}/dev-ssl-access.log combined
LogLevel debug
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
SSLEngine on
<Directory /var/www/django/app/config>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess apps-dev processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup apps-dev
WSGIApplicationGroup %{GLOBAL}
WSGIScriptAlias / /var/www/django/app/config/wsgi.py
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(OPTIONS|TRACE)
RewriteRule .* - [F]
</VirtualHost>
Вот наш файл wsgi.py:
activate_file = "/var/www/django/app/venv/bin/activate_this.py"
exec(open(activate_file).read(), {"__file__": activate_file})
import os # noqa: E402
import sys # noqa: E402
from pathlib import Path # noqa: E402
from django.core.wsgi import get_wsgi_application # noqa: E402
ROOT_DIR = Path(__file__).resolve(strict=True).parent.parent
# This allows easy placement of apps within the interior
# our_app directory.
sys.path.append(str(ROOT_DIR / "our_app"))
sys.path.append(str(ROOT_DIR))
# Explicitly set the settings module for this wsgi app
os.environ["DJANGO_SETTINGS_MODULE"] = "config.settings.apps_dev"
# Enable dot env file reading by default for this environment
os.environ["DJANGO_READ_DOT_ENV_FILE"] = "True"
# This application object is used by any WSGI server configured to use this
# file. This includes Django's development server, if the WSGI_APPLICATION
# setting points here.
application = get_wsgi_application()
Я подтвердил, что если у меня есть ошибка импорта, то ничего не регистрируется, поэтому я предполагаю, что проблема в этом. Я пробовал увеличить журналы apache до отладочных, обновить sys.stdout до sys.stderr в моем wsgi файле. Я пробовал установить пасту и обернуть мое приложение в ErrorMiddleware.
Когда я запускаю тот же самый wsgi файл с помощью gunicorn или manage.py runserver, проблем не возникает, так что это что-то уникальное для mod_wsgi. У меня нет прав на установку mod_wsgi-express. У меня нет прав на присоединение к процессу wsgi.
Благодарю за помощь, сообщите мне, если я могу предоставить какую-либо другую информацию
Существует несколько возможных причин этой ошибки:
1-Возможно, проблема в конфигурации Apache. Убедитесь, что 'WSGIDaemonProcess', 'WSGIProcessGroup', и 'WSGIScriptAlias' директивы являются правильно настроены и указывают на правильные места для вашего Django приложения.
2-Возможно, проблема в самом приложении Django. Убедитесь, что что ваше приложение Django правильно настроено и что все зависимости установлены. Вы можете попробовать запустить Django сервер разработки, чтобы проверить, работает ли приложение правильно при запускать напрямую.
3-Возможна проблема с самим модулем 'mod_wsgi'. Убедитесь, что что 'mod_wsgi' правильно установлен и настроен. Вы можете попробовать включить логирование 'mod_wsgi', чтобы проверить, есть ли какие-либо проблемы с этим модулем. модулем.
Если вы все еще не можете решить проблему, вы можете проверить журнал ошибок Apache (указанный в директиве 'ErrorLog' в конфигурации Apache) для получения дополнительной информации о причине ошибки. Также может быть полезно проверить журнал ошибок Django на наличие ошибок, возникающих в приложении Django.