CGI —フラスコのドキュメント

提供:Dev Guides
< FlaskFlask/docs/1.0.x/deploying/cgi
移動先:案内検索

CGI

他のすべての展開方法が機能しない場合、CGIは確実に機能します。 CGIはすべての主要サーバーでサポートされていますが、通常、パフォーマンスは最適ではありません。

これは、Googleの App Engine でFlaskアプリケーションを使用する方法でもあり、CGIのような環境で実行されます。

気を付けて

アプリケーションファイルで発生する可能性のあるapp.run()呼び出しが、if __name__ == '__main__':ブロック内にあるか、別のファイルに移動されていることを事前に確認してください。 呼び出されていないことを確認してください。これにより、そのアプリケーションをCGI /アプリエンジンにデプロイした場合に不要なローカルWSGIサーバーが常に起動します。

CGIを使用する場合は、コードにprintステートメントが含まれていないこと、またはsys.stdoutがHTTP応答に書き込まれないものによってオーバーライドされていることも確認する必要があります。


.cgi ファイルの作成

まず、CGIアプリケーションファイルを作成する必要があります。 それをyourapplication.cgiと呼びましょう:

#!/usr/bin/python
from wsgiref.handlers import CGIHandler
from yourapplication import app

CGIHandler().run(app)

サーバーのセットアップ

通常、サーバーを構成するには2つの方法があります。 .cgicgi-binにコピーするか( mod_rewrite などを使用してURLを書き換える)、サーバーがファイルを直接指すようにします。

たとえば、Apacheでは、次のようなものを構成に入れることができます。

ScriptAlias /app /path/to/the/application.cgi

ただし、共有Webホスティングでは、Apache構成にアクセスできない場合があります。 この場合、アプリを使用できるようにするパブリックディレクトリにある.htaccessというファイルも機能しますが、その場合はScriptAliasディレクティブは機能しません。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f # Don't interfere with static files
RewriteRule ^(.*)$ /path/to/the/application.cgi/$1 [L]

詳細については、Webサーバーのドキュメントを参照してください。