我在部署REST API时遇到问题并且不断出现500内部服务器错误。我已经通过几个可能的解决方案和指南来解决这个问题,包括以下内容:
http://flask.pocoo.org/docs/0.10/deploying/cgi/
Deploy flask application on 1&1 shared hosting (with CGI)
并遵循本指南:
http://blog.miguelgrinberg.com/post/designing-a-restful-api-with-python-and-flask
这是我的代码:
restapplication.py
#!/home/myusername/public_html/todo-api/flask/bin/python
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "Hello, World!"
run.cgi
#!/home/myusername/public_html/todo-api/flask/bin/python
import cgitb; cgitb.enable()
from wsgiref.handlers import CGIHandler
from restapplication import app
CGIHandler().run(app)
.htaccess(存储在/ home / myusername / public_html /)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /home/myusername/public_html/todo-api/flask/run.cgi/$1 [L]
我感谢所有帮助。
答案 0 :(得分:0)
不确定您是否获得了解决方案,但是对于记录 -
如果您设置了虚拟环境,则必须在restapplication.py
中添加这些行以指向site-packages
,以便您的代码可以访问Flask
库。< / p>
import os
import sys
sys.path.insert(0, '/home/username/public_html/cgi-bin/myenv/lib/python2.6/site-packages')
休息一切看起来还不错。
也许您可以检查.cgi
文件和.py
文件的文件权限。文件权限应为 755 。
参考:http://www.comfycoder.com/home/how_to_deploy_a_flask_app_in_apache_shared_hosting