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つの方法があります。 .cgi
をcgi-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サーバーのドキュメントを参照してください。