![](/img/trans.png)
[英]Running a mod_wsgi (Flask) app and a non mod_wsgi app on same Apache server
[英]trouble running flask on apache/mod_wsgi
我正在嘗試使用apache2和mod_wsgi運行一個基本的helloworld,但是根據flask文檔中的教程,我得到的是一個錯誤500。
一切都在/ var / www / myapp中
myapp.wsgi
from yourapplication import app as application
在/ etc / apache2的/網站可獲取/默認
<VirtualHost *:80>
ServerName mydomain
WSGIDaemonProcess myap user=web group=www-data threads=5
WSGIScriptAlias / /var/www/mydomain/myap.wsgi
<Directory /var/www/myapp>
WSGIProcessGroup myap
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
hello.py(燒瓶應用)
#!/usr/bin/env python
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def hello():
return render_template('hello.html')
if __name__ == '__main__':
app.run()
首先,您應該配置某種日志記錄,以便可以看到500響應背后的實際異常。
基於您的代碼,你可能會在嘗試導入將產生在你的WSGI文件的導入錯誤app
從yourapplication
代替hello
。 嘗試:
from hello import app as application
如果您在此處發布的內容與您服務器上的內容相匹配,那么您還可以使用myap
而不是myapp
。 無論哪種方式,記錄您的錯誤都應該確認。
我注意到三件事:
在嘗試部署到Apache之前,請確保您的代碼使用Flask的Web服務器。 您的最終代碼應該看起來像這樣:
hello.wsgi
import sys
sys.path.insert(0, '/path/to/your/application')
from hello import app as application
httpd.conf文件
<VirtualHost *:80>
ServerName mydomain
WSGIDaemonProcess myapp user=web group=www-data threads=5
WSGIScriptAlias / /var/www/mydomain/myapp.wsgi
<Directory /var/www/mydomain>
WSGIProcessGroup myapp
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
最后,如果發生任何錯誤,您可以在Apache的文件夾中,在Logs / error_log中跟蹤它們。 Graham說,在Flask中啟用調試模式,您將看到應用程序中的任何錯誤,並在此處更好地解釋。 基本上你只需要在hello.py中更改它:
if __name__ == '__main__':
app.run(debug= True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.