我做了一个简单的应用程序,使得使用Python的CGI脚本。 我有一个工作的本地版本(正常工作与lighttpd的),但现在我想将其上传到Heroku的。 该应用程序包含的2个或3脚本上的文件和打印信息返回给浏览器进行操作,所以我不认为我会需要比CGI以外的任何模块。
但是Heroku的文档只介绍了如何上传与花哨的Web框架的Python应用程序,而我没有使用任何这些。
我想知道是否有可能在Heroku上运行CGI脚本,如果是的话,该怎么办呢。
我做了一个简单的应用程序,使得使用Python的CGI脚本。 我有一个工作的本地版本(正常工作与lighttpd的),但现在我想将其上传到Heroku的。 该应用程序包含的2个或3脚本上的文件和打印信息返回给浏览器进行操作,所以我不认为我会需要比CGI以外的任何模块。
但是Heroku的文档只介绍了如何上传与花哨的Web框架的Python应用程序,而我没有使用任何这些。
我想知道是否有可能在Heroku上运行CGI脚本,如果是的话,该怎么办呢。
Heroku的雪松是围绕自托管Web应用程序为中心的,所以你需要能够捆绑在一起,你的应用程序并运行它作为一个单一的命令。
我认为,最简单的方法是将你的程序移植到瓶中。 这是不是很复杂,尤其是如果它仅仅是2或3的脚本。
另一种选择(根据您的性能需求)是使用简单的CGI服务器在Python标准库和Python的buildpack 。 我认为你需要在./cgi-bin目录中捆绑了你的脚本,并启动服务器(procfile):
web: bin/python -m CGIHTTPServer $PORT
最复杂的方式是捆绑的lighttpd和脚本一起写一个shell脚本来启动这一切。 你必须确保你的编译的二进制文件与Heroku的兼容。 我想看看PHP buildpack为出发点。
我问,对Heroku支持有关,我想担任Heroku的平台,这里的响应CGI应用程序:
你好,
不幸的是,我们不支持CGI风格的应用程序,仅纯Python的。 你可能有一些运气使用Python CGIHTTPServer模块多一些玩耍,但如果它不适合你的需求,你可能是出于运气。
要在添加到顶部的答案,为Python 3的命令Procfile
应该是这样的。
web: python -m http.server --cgi $PORT