pythonがプログラミング言語の標準の一つになり、さくらサーバーにも標準で入るようにな...
2024/12/05 00:36pythonがプログラミング言語の標準の一つになり、さくらサーバーにも標準で入るようになりました。おかげでpythonのフレームワークにも注目が集まり、一番人気はdjangoのようですが、Flaskもそこそこ注目されています。とはいえ、Flaskの本番環境へのデプロイについてはまだ情報が手薄な印象だったので、デプロイ成功のサンプル数をここに1増やしておます。ローカルでの実装は済んでいる前提で、以下はさくらサーバ環境下での話です。
.htaccessとindex.cgiは、メインのpyファイルと同じディレクトリに置きます。
index.cgi
#!/usr/local/bin/python import cgitb from wsgiref.handlers import CGIHandler from app import flask_app # app.pyからflask_app変数をimportしている場合 # 例)flask_app = Flask(__name__) from sys import path from werkzeug.middleware.proxy_fix import ProxyFix cgitb.enable() path.insert(0, '/home/ [ サーバのユーザ名 ] /www/ [ ディレクトリ名 ] /cgi/') # [ サーバのユーザ名 ]:サーバ契約時のメールに記載 # [ ディレクトリ名 ]:ルート(www/)直下に置いてるなら不要 if __name__ == '__main__': flask_app.wsgi_app = ProxyFix(flask_app.wsgi_app) CGIHandler().run(flask_app)
.htaccess
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.cgi/$1 [QSA,L] Options -MultiViews <Files ~ "\.py$"> deny from all </Files>
先行の記事だとProxyFixが自前で実装されることも多いですが、werkzeugが用意してくれてますね。いろんな場面で本当に助かる...
2024/12/05 00:36
← Back