← Back

Flaskを本番環境にデプロイしたよ(さくらのレンタルサーバ)

pythonがプログラミング言語の標準の一つになり、さくらサーバーにも標準で入るようになりました。おかげで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

Blogs

Flaskを本番環境にデプロイしたよ(さくら...

pythonがプログラミング言語の標準の一つになり、さくらサーバーにも標準で入るようにな... 2024/12/05 00:36

DECO*27 - Monitoring...

DECO*27氏に捧げる自分なりのFAのようなもの。アホほどリピってるけどまだ公開から一... 2024/12/14 23:21

所感:ペンネームを屋号にして開業届を出した

開業届は青色申告のためには避けられない手続きで、このとき個人名だけでなく任意で屋号の登録... 2024/12/21 22:52