共有ホスト上の FastCGI を使用した CherryPy (または他の Python フレームワーク)

StackOverflow https://stackoverflow.com/questions/1665742

質問

Apache 上の FastCGI (実際には fcgid) を使用して Python ミニフレームワーク CherryPy を構成しようとしています。私は共有ホスト上にいるため、httpd.conf にはアクセスできず、htaccess のみにアクセスできます。これらのチュートリアルに従っても無駄でした:

Apache ログに「スクリプト ヘッダーの早期終了」という 500 エラーが表示され続けます。私はすべてを試しました(権限/シバン/フルパス/デーモン化/非ダイモン化)。Python からエラー ログに出力できるため、Apache が .fcgi を正しく実行していることはわかりますが、それだけです。これまでに、CherryPy またはその他のフレームワークを共有ホストに正常にインストールした人はいますか?ご協力をよろしくお願いいたします。ありがとう。

役に立ちましたか?

解決 3

お申し込みの記事は、最適なリソースとなっているが、私は慎重に最新のパッチ(ステップ3の開始)を得ることについての部分を読んでいません。 (Apacheがプロセスを生成するとき)の記事の時点では、今でもCherryPyにバージョン3.1.2で、あなたは「ダイナミックモード」FCGIを行うことはできません。 ここをより。あなたが共有ホスト上にある場合、ダイナミックモードは基本的に不可欠です。

私はトランク(3.2.0rc1)をチェックアウトした、といくつかのフープを介してジャンプした後、それが動作するようになりました。私は、お申し込みの記事のステップ5、方法Cに従いました。

:ここに私のcherryd.fcgiのメインでのものでした
if __name__ == '__main__':
    cherrypy.config.update({
        'server.socket_port': None,
        'server.socket_host': None,
        'server.socket_file': None
    })
    start( daemonize=False, fastcgi=True, imports=["hello"])

また、CherryPyに/プロセス/ servers.pyで、私は次の行を変更しなければなりませんでした

# from this
# if not hasattr(socket.socket, 'fromfd'):

# to this
if not hasattr(socket, 'fromfd'):

だから、仕事を得ることが可能であるが、それは一種のハック感じています。あなたは、バージョン3.2.0の最終リリースを待つか、私がやったんや Web.py にチェックアウトする必要があります。私は(ドキュメントがうまくfastcgiを/ htaccessファイルを説明)、それは非常に簡単に私の共有ホストで動作させることができました。

他のヒント

はApache +お申し込み+ fastcgiの+ CherryPyに+ WSGI残念ながら作品がたくさんあります。私はあなたのための決定的なガイドを書くために年によかった、悲しいかな。あなたはかなり長いメーリングリストのスレッドからいくつかの洞察を得るかもしれませんあなたが投稿し、それらのリンクが生じたを。

アイデア:あなたの.fcgiファイルは、最初の行で正しいのpythonの実行可能ファイルへの参照を持っていることを確認します:

  

#!は/ usr / binに/ pythonの

私は、Djangoは間違ったPython環境を使用してお申し込みとApache上でfcgiので実行しなければなりませんでしたが(シェルからではなく、ウェブ/ apacheのから働いていた)私の問題だった。

あなたがWebページにアクセスすると、

それ以外に、あなたは、あなたのコードが正しく、例外なしに、実行されていることを確認することができ、あなたのコードからエラー・ログに印刷することができますか? (シェルから実行されていない場合)。

あなたのウェブサーバのログファイルでは、実際に出力がそれを混同しているかを示す必要があります。あなたがアクセスログだけでなく、エラーログで探しているか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top