【发布时间】:2026-01-07 22:25:05
【问题描述】:
我正在尝试在运行 Apache 和 mod_wsgi 的机器上设置 Flask 应用程序。我的应用程序“随机”运行良好,这意味着有时它可以工作,有时我刷新它并引发内部服务器错误。这似乎很随机.. 我已经清除了浏览器的缓存,尝试了不同的浏览器,尝试了隐身模式,请朋友从他的笔记本电脑上尝试。它总是显示这种间歇性的 500 行为。
有没有人知道我可以在哪里寻找原因?或者你以前也遇到过这个问题?
我能想到的所有数据都在下面,如果您需要其他信息,请告诉我。
谢谢!
刷新失败时,Apache error_log 显示如下:
[Wed Aug 14 16:42:52 2013] [error] [client 171.65.95.100] mod_wsgi (pid=1160): Target WSGI script '/home/server/servers/flaskapp.wsgi' cannot be loaded as Python module.
[Wed Aug 14 16:42:52 2013] [error] [client 171.65.95.100] mod_wsgi (pid=1160): Exception occurred processing WSGI script '/home/server/servers/flaskapp.wsgi'.
[Wed Aug 14 16:42:52 2013] [error] [client 171.65.95.100] Traceback (most recent call last):
[Wed Aug 14 16:42:52 2013] [error] [client 171.65.95.100] File "/home/server/servers/flaskapp.wsgi", line 5, in <module>
[Wed Aug 14 16:42:52 2013] [error] [client 171.65.95.100] from flaskapp.frontend import app
[Wed Aug 14 16:42:52 2013] [error] [client 171.65.95.100] ImportError: cannot import name app
应用程序是这样组织的:
flaskapp.wsgi
flaskapp/
__init__.py (empty)
settings.py
frontend/
__init__.py (app is defined here)
static/
style.css
templates/
index.html
views.py
init.py 包含以下内容:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_object('flaskapp.settings')
db = SQLAlchemy(app)
import flaskapp.views
Apache httpd.conf文件中与本应用相关的配置文件为:
<VirtualHost *:80>
ServerName <redacted>
WSGIDaemonProcess flaskapp user=server group=server
WSGIScriptAlias /flaskapp /home/server/servers/flaskapp.wsgi
<Directory /home/server/servers/flaskapp/>
WSGIProcessGroup flaskapp
WSGIApplicationGroup %{GLOBAL}
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
【问题讨论】:
-
在 apache 尝试重新加载应用程序时,您是否有机会使用 scp 之类的方法更新应用程序?复制操作在 Linux 中不是原子操作。
-
我无法解释原因,但间歇性错误可能是由于一部分工作进程处于不良状态所致。完全重启服务器后是否也会发生这种情况?
-
@PauloScardine:我没有使用 scp PS。很抱歉没有早点回复,错过了通知..
-
@Miguel:我停止了 httpd 守护进程几秒钟,然后重新启动它。同样的事情也会发生。昨天我在摆弄一些设置,但它停止了。我以为是因为工作人员确实无法正确导入应用程序,所以我在导入函数时添加了一个 os.chdir 语句,现在一切顺利.. 很奇怪。
标签: python apache flask mod-wsgi wsgi