我想部署小型Flask应用程序。我在bigrock.com上购买了域名和托管服务。 我写了一个小的模拟应用来测试我的Flask应用程序是否可以用作CGi。 我使用了以下配置:
档案:/home/USERNAME/public_html/cgi-bin/cgi.cgi
#!/usr/bin/env python
from wsgiref.handlers import CGIHandler
from myapp import app
import os
import cgitb; cgitb.enable()
os.environ['SERVER_NAME'] = '127.0.0.1'
os.environ['SERVER_PORT'] = '5000'
os.environ['REQUEST_METHOD'] = 'GET'
os.environ['PATH_INFO'] = ""
CGIHandler().run(app)
档案:/home/USERNAME/public_html/cgi-bin/myapp.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "This is Hello World!\n"
if __name__ == "__main__":
app.run()
档案:/home/USERNAME/public_html/.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /home/USERNAME/public_html/cgi-bin/cgi.cgi/$1 [L]
使用ssh会话作为./cgi.cgi
给出以下输出:
Status: 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 21
This is Hello World!
还将myapp.py作为
运行python myapp.py
激活开发服务器:
Running on http://127.0.0.1:5000/
现在,无论我何时访问我的网站:
www.mysite.com
www.mysite.com/cgi.cgi
www.mysite.com/cgi-bin/cgi.cgi
我收到500内部服务器错误。
当我使用Python hello world cgi脚本时,它运行得很好:
#!/usr/bin/env python
print "Content-Type: text/html"
print
print """\
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
"""
我知道一再提出类似的问题,但没有一个问题得到妥善回答,或者答案似乎无法解决。
答案 0 :(得分:0)
经过多次调整后,我终于开始工作了。 谢谢你们。
我认为这样做了: 我将所有文件上传到/ scgi-bin并编辑.htaccess以反映相同的内容。