さくらインターネットのレンタルサーバーでFlaskアプリを動かすには、いくつかの工夫が必要です。以下に基本的な構築手順をまとめました🛠️
さくらのレンタルサーバー(スタンダードプランなど)では、常駐プロセスが使えないため、FlaskアプリはCGI経由で動かす必要があります。
以下のような構成にします:
/home/ユーザー名/www/hello/
├── .htaccess
├── app.py
└── index.cgi
.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /hello/index.cgi/$1 [QSA,L]
<Files ~ "\\\\.py$">
deny from all
</Files>
app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "Hello, Sakura Internet!"
index.cgi
#!/usr/local/bin/python
import cgitb
cgitb.enable()
from wsgiref.handlers import CGIHandler
from app import app
class ProxyFix:
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
return self.app(environ, start_response)
if __name__ == '__main__':
app.wsgi_app = ProxyFix(app.wsgi_app)
CGIHandler().run(app)
index.cgi
と .htaccess
に 実行権限(chmod 755) を付与