【发布时间】:2020-01-23 02:17:06
【问题描述】:
问题:遵循 Django Web 应用程序的标准设置。我正在使用 Ubuntu 18.04、Django 2.2.1、Python 3.7、Apache 2.4.29、mod-WSGI 4.6.7 和 virtualenv 创建一个 virtualenv。当我尝试访问我的站点(IP 或 FQDN)时,我收到 504 网关超时错误
我检查 Apache2 日志,每隔 1 秒就会收到以下错误:
当前线程 0x00007f52f8874bc0(最近的调用优先): [Mon Sep 23 02:49:26.540404 2019] [core:notice] [pid 9896:tid 139994333662144] AH00051:子 pid 10305 退出信号中止(6),/etc/apache2 中可能的核心转储 致命的 Python 错误:Py_Initialize:无法获取语言环境编码 ModuleNotFoundError: 没有名为“编码”的模块
python manage.py runserver 工作正常,我可以通过其他设备的浏览器通过 IP 或 FQDN 访问。数据库或其他问题没有问题(尽管使用 FQDN 而不是 IP # 我在 CSS/JS 上收到 404 错误,尽管有其他负载 - 但这可能是一个单独的问题)
我尝试过: * 重置虚拟环境 * 重新设置 Apache2 * 不同的 apache .conf 安排 * 我观看了来自 PyCon Au 2010 的 @Graham Dumpleton 的精彩视频“Apache/mod_wsgi 入门”。并尝试实施他的一些见解
Apache2 会议
WSGIRestrictEmbedded On
<VirtualHost *:80>
...
...
...
Alias /static /project/static
<Directory /project/static>
Require all granted
</Directory>
Alias /media /project/media
<Directory /project/media>
Require all granted
</Directory>
<Directory /project/main>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess django_app python-path=/project python-home=/project/venv
WSGIScriptAlias / /project/main/wsgi.py process-group=django_app
WSGIProcessGroup django_app
WSGIApplicationGroup %{GLOBAL}
</VirtualHost>
Apache2 错误文件
Current thread 0x00007f52f8874bc0 (most recent call first):
[Mon Sep 23 02:49:26.540404 2019] [core:notice] [pid 9896:tid 139994333662144] AH00051: child pid 10305 exit signal Aborted (6), possible coredump in /etc/apache2
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'
UFW 状态
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
【问题讨论】:
-
这通常是modwsgi.readthedocs.io/en/develop/user-guides/… 的变体,您的 mod_wsgi 是针对不同于创建虚拟环境的 Python 安装编译的,或者 mod_wsgi 没有为 Python 安装找到正确的 Python 共享库因为您尝试在非标准位置使用自定义 Python 安装,但它从系统库中获取 Python 库。提供有关您如何安装 mod_wsgi 以及您正在使用 Python 的位置的更多详细信息。
-
格雷厄姆,感谢您的回复。我能够按照您的链接重新安装并使其正常工作。我将在上面的帖子中添加一个更新,以准确包含我为使其工作所做的工作。再次感谢您为 mod-wsgi 对 Python 世界所做的贡献!