Flaskを動かす時には、wscgiをインストールする必要があります。 但し、シェアード・ホスティングの場合、管理者権限がないので、この変更ができません。
そこで cgiからflaskを起動するのですが、 ネットで探しても、途中で終わっているものが多かったり、動かなかったり。
大分、苦労して、動かせるようになりましたので、そのまとめです。
Pythonは、ロリポップで提供しているPython 。 virtualenvは使いません。
(前提)
flaskは事前にインストールして、Pathを通しておいてください。
(Flask Code)
Home Directory (ロリポップは、ディレクトリ 'web' の下)に、以下のフォルダを作ります。
web/dest/src/
このsrcフォルダの中に、以下の3つのファイルを作ります。
ファイルのパーミッション設定は非常に大切です。
1. cgiファイル (Permission:700)
ファイル名: index.cgi
#!/usr/local/bin/python3.4
import cgitb
cgitb.enable()
from wsgiref.handlers import CGIHandler
from test import app
CGIHandler().run(app)
2. .htaccess(Permission:604)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /dest/src/index.cgi/$1 [QSA,L]
3.pyファイル
ファイル名: test.py
# coding: utf-8
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "Hello World !"
if __name__ == '__main__':
app.run()
*これで、 URL/dest/src/ にアクセスすれば、Hello World ! が表示されます。
(indexで受けてから、.htaccessで、リダイレクトさせますので、ファイル名 'test.py'までURLで指定しると動きません。)
ここまで来るのに、非常に時間がかかりました。
0 件のコメント:
コメントを投稿