Python 烧瓶+;Apache和500错误
我正在使用Flask和Apache建立一个网站,该网站已经启动并运行 然而,我遇到了这个奇怪的500错误:一个500错误将使网站关闭,在我重新启动apache之前,该网站将永远不会再次联机。我希望Flask+Apache可以在500错误后为下一个访问者提供服务,无论如何,Flask是线程本地的 假设发生以下情况:Python 烧瓶+;Apache和500错误,python,apache,flask,Python,Apache,Flask,我正在使用Flask和Apache建立一个网站,该网站已经启动并运行 然而,我遇到了这个奇怪的500错误:一个500错误将使网站关闭,在我重新启动apache之前,该网站将永远不会再次联机。我希望Flask+Apache可以在500错误后为下一个访问者提供服务,无论如何,Flask是线程本地的 假设发生以下情况: @app.route('/<ExpectSomeInteger>') def hello_world(ExpectSomeInteger): aNumber = i
@app.route('/<ExpectSomeInteger>')
def hello_world(ExpectSomeInteger):
aNumber = int(ExpectSomeInteger)
.....
@app.route(“/”)
def hello_world(ExpectSomeInteger):
aNumber=int(ExpectSomeInteger)
.....
显然上面的代码是错误的,应该使用
之类的东西。
如果一些访问者在“ExpectSomeInteger”的位置键入了一些字母,那么flask将返回500错误
灾难是apache将在这之后向所有访问者发送一个500错误页面!我只能重新启动apache使其重新工作
这正常吗
我记得当我访问某个PHP+MySQL站点时,即使出现了一些非常严重的错误,该站点也可以正常地为下一个访问者提供服务。将类型转换器传递到路由中:
@app.route('/<int:an_integer>')
def hello_world(an_integer):
...
@app.route(“/”)
def hello_world(一个_整数):
...
现在,
整数
保证是整数。当您传递除整数以外的任何值时,将发送404响应。将类型转换器传递到路由:
@app.route('/<int:an_integer>')
def hello_world(an_integer):
...
@app.route(“/”)
def hello_world(一个_整数):
...
现在,
整数
保证是整数。当您传递除整数以外的任何值时,将发送404响应。多亏了@Sasha Chedygov,我的网站现在运行良好
问题是我通过遵循Linode的库安装了一个名为“mod python”的东西:
在我完成了“apt get remove libapache2 mod python”之后,现在一切似乎都很好。多亏了@Sasha Chedygov,我的网站现在运行良好 问题是我通过遵循Linode的库安装了一个名为“mod python”的东西:
在我完成了“apt get remove libapache2 mod python”之后,现在一切似乎都好了。你用什么来主持这个应用程序?mod_wsgi?我安装了以下
apt-get-install-libapache2-mod-python
和sudo-apt-get-install-libapache2-mod-wsgi
@GabySolis:你遵循了吗?我敢打赌你正在使用mod_-python。你不应该使用它,因为这个项目已经死了,并且有很多问题,其中一个问题是Python代码只在Apache启动时加载,这意味着如果你的程序崩溃,它将不会自己重新启动。我很确定我是这样做的。我在写代码之前查阅了很多文档。我只将WSGIDaemonProcess yourapplication user=user1 group=group1 threads=5
更改为``WSGIDaemonProcess myapplicationname user=www data group=www data threads=14`我阅读了文档您使用什么来托管应用程序?mod_wsgi?我安装了以下apt-get-install-libapache2-mod-python
和sudo-apt-get-install-libapache2-mod-wsgi
@GabySolis:你遵循了吗?我敢打赌你正在使用mod_-python。你不应该使用它,因为这个项目已经死了,并且有很多问题,其中一个问题是Python代码只在Apache启动时加载,这意味着如果你的程序崩溃,它将不会自己重新启动。我很确定我是这样做的。我在写代码之前查阅了很多文档。我只是将WSGIDaemonProcess yourapplication user=user1 group=group1 threads=5
改为“`WSGIDaemonProcess myapplicationname user=www data group=www data threads=14`我读了文档@GabySolis:嗯,你的方式不正确。你的Apache配置文件是什么样子的?@GabySolis:嗯,你的方式不正确。您的Apache配置文件是什么样子的?