use*_*763 7 python wsgi nltk flask
我按照这里的说明创建了一个在ubuntu上使用mod-wsgi部署到apache2的onefile flask-app.使用原始烧瓶应用程序时一切正常.但是,当添加导入nltk到烧瓶app apache挂起(没有500).
我使用python 2.7和nltk 2.0.4
其他人似乎与其他包有类似的问题.设置
WSGIApplicationGroup %{GLOBAL}
Run Code Online (Sandbox Code Playgroud)
在VirtualHost配置中似乎有所帮助.但是,我仍然得到相同的行为.有没有人遇到同样的问题?谢谢您的帮助!
这是VirtualHost配置文件:
<VirtualHost *:8080>
# ---- Configure VirtualHost Defaults ----
ServerAdmin jsmith@whoi.edu
DocumentRoot /home/bitnami/public_html/http
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/bitnami/public_html/http/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# ---- Configure WSGI Listener(s) ----
WSGIDaemonProcess flaskapp user=www-data group=www-data processes=1 threads=5
WSGIScriptAlias /flasktest1 /home/bitnami/public_html/wsgi/flasktest1.wsgi
<Directory /home/bitnami/public_html/http/flasktest1>
WSGIProcessGroup flaskapp
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
# ---- Configure Logging ----
ErrorLog /home/bitnami/public_html/logs/error.log
LogLevel warn
CustomLog /home/bitnami/public_html/logs/access.log combined
Run Code Online (Sandbox Code Playgroud)
这是修改后的烧瓶代码
#!/usr/bin/python
from flask import Flask
import nltk
app = Flask(__name__)
@app.route('/')
def home():
return """<html>
<h2>Hello from Test Application 1</h2>
</html>"""
@app.route('/<foo>')
def foo(foo):
return """<html>
<h2>Test Application 1</2>
<h3>/%s</h3>
</html>""" % foo
if __name__ == '__main__':
"Are we in the __main__ scope? Start test server."
app.run(host='0.0.0.0',port=5000,debug=True)
Run Code Online (Sandbox Code Playgroud)
你在哪里:
<Directory /home/bitnami/public_html/http/flasktest1>
WSGIProcessGroup flaskapp
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
它应该是:
<Directory /home/bitnami/public_html/http>
WSGIProcessGroup flaskapp
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
因为你没有在守护进程模式或主解释器中运行你的应用程序,因为指令在错误的上下文中.
那个Directory指令然后与上面的同一目录的一个冲突,所以合并它们.
如果使用mod_wsgi 3.0或更高版本计数,可能会删除第二个Directory块并使用:
WSGIDaemonProcess flaskapp threads=5
WSGIScriptAlias /flasktest1 /home/bitnami/public_html/wsgi/flasktest1.wsgi process-group=flaskapp application-group=%{GLOBAL}
Run Code Online (Sandbox Code Playgroud)
请注意,process = 1已被删除,因为这是默认值,并且设置它意味着您可能不想要的其他内容.您也不需要设置用户/组,因为它会自动作为Apache用户运行.
归档时间: |
|
查看次数: |
1238 次 |
最近记录: |