Lolipopサーバーでpythonのflask環境を構築するのに躓いた。
- Lolipopサーバーを使ってflaskをサブドメインで運用したい
- 下記のURLの記事とかだとうまく構築できなかった。
- Lolipopサーバーでは、flaskはcgiモードで動かすことになるため色々設定が必要です。

ロリポップ!でpythonのpipを導入し、Flaskの環境を構築する | dattesar
なぜLolipopサーバー?
- 安くflask環境を構築するためにLolipopサーバーを選びました。
- Lolipopサーバーのメリット・デメリットをちょこっと書いてみた。まぁ価格を考えるとかなり優秀だと思います。
メリット
- 安い。
- pythonが最初からサーバーに入っている。
- WordPressの移行が簡単
デメリット
- 共用サーバー
Lolipopサーバーにflask環境を構築する方法
- 基本的には、下記のURLをベースに構築していき、差異のある部分を紹介します。

ロリポップ!でpythonのpipを導入し、Flaskの環境を構築する | dattesar
.htaccess
- このファイルの差異は、サブドメインで運用するために生まれたかもしれない。
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.cgi/$1 [QSA,L]
CGI — Flask Documentation (1.1.x)
index.cgi
#!/home/users/0/*****/web/******/venv/bin/python3 # 上記はvenv内のpython3を設定した。 # flask環境は、webフォルダ直下のサブドメイン設定の公開フォルダに格納しています。 # coding:utf-8 import cgitb cgitb.enable() from wsgiref.handlers import CGIHandler from app import app class ProxyFix(object): def __init__(self, app): self.app = app def __call__(self, environ, start_response): environ['SERVER_NAME'] = "***.snuow.com" # サブドメインを入力 environ['SERVER_PORT'] = "80" environ['REQUEST_METHOD'] = "GET" environ['SCRIPT_NAME'] = "" #environ['PATH_INFO'] = "/" # コメントアウト environ['QUERY_STRING'] = "" environ['SERVER_PROTOCOL'] = "HTTP/1.1" return self.app(environ, start_response) if __name__ == '__main__': app.wsgi_app = ProxyFix(app.wsgi_app) CGIHandler().run(app)
- このあたりを参考に改良しました。

【さくらレンタルサーバー】flaskを使ってみる。 - Qiita
はじめに
レンタルしたさくらレンタルサーバー(スタンダードプラン)に、APIサーバーを立てようと思ってflaskを使ってみる。(さくらレンタルサーバでは常駐デーモンプロセスは許可されていないため、注意が必要)
詰まった点もあった...
権限設定
- 権限設定がLolipopサーバーの推奨設定になっていないと動きません。

- 権限の設定の詳細は公式サイト(下記)で確認してください。

CGI・SSI・PHP・SENDMAILについて / サーバー・プログラム / マニュアル - レンタルサーバーならロリポップ!
ロリポップ!レンタルサーバーのご利用マニュアル ロリポップ!レンタルサーバーでのCGIなどのプログラムに必要な設定などを説明したマニュアルページです。
chmod 700 index.cgi chmod 705 static chmod 705 templates chmod 705 venv chmod 600 app.py # 644でも動作確認
サブドメイン
- サブドメインは下記のように設定
- Lolipopサーバーのコントロールパネルで設定できます。
- 公開フォルダは、サーバーのwebフォルダ配下に生成されるので、そこにFlask環境を一式入れます。

参考URL
CGI — Flask Documentation (1.1.x)
Flask開発環境 Debug Mode -Errorになる例も
1. Development Mode (1) ファイル名: test.py # coding: utf-8 from flask import Flask app = Flask(__name__) @app.route('/') @app.route('/...

【さくらレンタルサーバー】flaskを使ってみる。 - Qiita
はじめに
レンタルしたさくらレンタルサーバー(スタンダードプラン)に、APIサーバーを立てようと思ってflaskを使ってみる。(さくらレンタルサーバでは常駐デーモンプロセスは許可されていないため、注意が必要)
詰まった点もあった...
コメント