2012-11-22 48 views
11

私はPython CGIスクリプトを使用する簡単なアプリケーションを作った。私は働いているローカルバージョンを持っています(lighttpdでうまくいきます)が、今はHerokuにアップロードしたいと思います。アプリケーションは、ファイルに対して操作を行い、ブラウザに情報を出力する2つまたは3つのスクリプトで構成されているため、CGI以外のモジュールは必要ありません。HerokuでPython CGIアプリケーションを実行

しかし、Heroku documentationは、ファンシーなWebフレームワークでPythonアプリケーションをアップロードする方法しか説明していません。

私はHerokuでCGIスクリプトを実行できるかどうか、もしあればそれを行う方法を知りたいと思います。

+0

CGI対応のディレクトリ以外の静的ファイルとはどのように配置しますか。 –

+0

私は完全にHerokuです。私はどのようにCGI対応のディレクトリを取得するか分からない。彼らはまた、virtualenvについても言及していますが、CGIファイルをアップロードするためにそれをしなければならないかどうかはわかりません。私が正しく理解していれば、単にgit repoをクローンし、ルートディレクトリにファイルをコピーし、コミットし、プッシュして実行する必要があります。 – user1002327

+0

virtualenvには何もありません(ほとんど、大したことはありません)。CGIを有効にすることは、Webサーバーの問題であり、Herokuの問題ではありません。 –

答えて

8

Heroku Cedarは、自己ホスティングWebアプリケーションを中心にしているため、アプリケーションをまとめて1つのコマンドとして実行する必要があります。

あなたのアプリケーションをFlaskに移植するのが最も簡単な方法だと思います。それは非常に複雑ではありません、特にそれが2,3のスクリプトだけである場合。

別のオプション(パフォーマンス要件に応じて)は、Python標準ライブラリのCGI serverPython buildpackの単純なものを使用することです。最も複雑な方法を一緒にlighttpdのとスクリプトをバンドルすることであろう

web: bin/python -m CGIHTTPServer $PORT 

と:私はあなたと(procfileに)./cgi-binディレクトリにスクリプトをバンドルし、サーバを起動する必要があると思いますそれをすべて起動するためのシェルスクリプトを書いてください。コンパイルされたバイナリがHerokuと互換性があることを確認する必要があります。私はPHP buildpackを出発点として考えています。

+0

私はPythonがCGIをサポートするWebサーバーを持っているのを知らなかった。それはいいね。私はアプリケーションを移植することにほとんど関心がないので、2番目または3番目の方法を試してみます。 – user1002327

+1

私はそれがあなたのために働くことを願っています。 CGIサーバーをローカルで最初に試し、スクリプトを実行できるかどうか、またディレクトリ構造を調べるかどうかを確認します。それから、それをHerokuのためにパッケージ化する方法を見つけてください。 – groodt

+0

スクリプトは奇妙なPythonの構文を使用しません。うまくいくと思います。私はすべてをアップロードするときにサーバーをローカルで試し、答えを受け入れます。ありがとう。 – user1002327

0

私はHerokuののプラットフォームに奉仕しようとしましたが、ここでは、応答のCGIアプリケーションに関するHerokuのサポートを問う:

こんにちは、

を残念ながら、我々は唯一の純粋な、CGIスタイルのアプリケーションをサポートしていません。 - Pythonのもの。あなたはPython CGIHTTPServerモジュールを使って遊んでいるかもしれませんが、それがあなたのニーズに合っていなければ、運が悪いかもしれません。

関連する問題