我用Flask框架编写了一个小应用程序。我试着用cgi来主持这个。根据文档,我创建了一个包含以下内容的.cgi文件:
#!/usr/bin/python
from wsgiref.handlers import CGIHandler
from yourapplication import app
CGIHandler().run(app)
运行文件会导致以下错误:
。。。
File "/usr/lib/pymodules/python2.7/werkzeug/routing.py", line 1075, in bind_to_environ wsgi_server_name = environ.get('HTTP_HOST', environ['SERVER_NAME'])
KeyError: 'SERVER_NAME'
Status: 500 Internal Server Error
Content-Type: text/plain
Content-Length: 59
在我的申请中,我设置了:
app.config['SERVER_NAME'] = 'localhost:5000'
当我用Flask开发服务器运行应用程序时,它运行得非常好。 如你所知,我对这些东西很陌生,我也在寻找其他有类似错误但没有运气的人。感谢大家的帮助。
为了完整起见,本文将在上述评论之后作为答案发布。
如上所述,cgi脚本应该由某个服务器执行。这是摘要from CGI 1.1 RFC:
有关环境变量(丢失并触发错误)的信息,请参阅RFC中的第4.1节。
我将尝试显示我在Godaddy共享主机帐户中所做的工作:
在MYSITE文件夹的cgi-bin文件夹中,我添加了以下cgi文件:
如您所见,MYSITE文件夹中的init文件具有flask应用程序。
最重要的是设置权限。我将755设置为此文件夹权限以及“/home/USERNAME/.local/bin/python3”文件夹!!请记住,系统需要此权限才能打开烧瓶。
要打开cgi,我在MYSITE文件夹中有以下.htaccess文件:
所以当有人进入你的页面时,它会呈现cgi文件。
相关问题 更多 >
编程相关推荐