Python

エックスサーバー上でFlaskを動かす

この記事は
「WordpressとPythonのWebアプリを併設する手順」
のプロセスの一つを記載しています。

ワードプレスとFlaskのWebアプリを併用したいと思っても、いきなり併用しようとすると不具合がおきた場合に、どこで動いていないか確認するのが大変です。
そのため、

サーバー上で起動するかを確認する → Wordpressと平行して動くようにする
という手順を踏んだほうがわかりやすいです。

エックスサーバー上では無料試用期間があるので、サーバーを一つ無料登録し、試用期間作成したフレームワークが動作するか確認してみることもできます。



1. テスト用のFlaskのファイルを用意する

確実に動くよう、必要最小限のFlaskフレームワークを作成します。

ここではページにアクセスがあったとき
「Hello! Python Flask」
と表示されるだけのスクリプトを書きます。

flask_test内のそれぞれのファイルには以下のように記載します。

hello.py


from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

templates/index.html


<h1>Hello! Python Flask</h1>

flask_testフォルダにアクセスがあったときの挙動を示す、
「.htaccessファイル」と「index.cgiファイル」を作成します。

.htaccessファイル


RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /flask_test/index.cgi/$1 [QSA,L]

index.cgiファイル


#! /home/xs-----/anaconda3/bin/python
from wsgiref.handlers import CGIHandler
from hello import app
CGIHandler().run(app)

先頭行の部分はpythonのインストール先の部分で、xs—-の部分はXserverのユーザーIDにより適宜変わります。

.htaccessやindex.cgiファイルの内容については
↓のレクチャーが最高にわかりやすいですので紹介しておきます。

2.サーバーで動くようにファイルを配置する

ドメインを取得していると
ホームフォルダ内にはxs*****.xsrv.jpというフォルダと、
ドメイン名「—-.com」のフォルダがあります。

試用期間ではxs*****.xsrv.jpフォルダのみです。

まずは試験的に
xs*****.xsrv.jpのフォルダの方にFlaskのフォルダをアップして、動作するか確認します。
flaskも最も簡単なテスト用ファイルとします。

以下のような配置にします




---xs*****.xsrv.jp---public_html---flask_test-----hello.py
 |                 |             |             |
 |                 |             |             |--templates---index.html
 |                 |             |             |
 |                 |             |             |--static           
 |                 |             |             |
                                               |--.htaccess
                                               |
                                               |--index.cgi

ファイルのアップロードはFTPソフトでもエックスサーバーのファイル管理が画面からでもできますが、PCの設定によっては.htaccessが表示されていないので表示されるようにしましょう。

public_htmlフォルダ内にも
.htaccessファイル、index.cgiファイルがありますが、これらは変更しないように注意します。

3. アクセス権を変更する

アップロードされた時点では、これらのファイルのアクセス権限は
「604」
となっています。

これらをエックスサーバー上の
「パーミッション変更」
から以下のように変更します。

index.cgi — 755
hello.py — 644
.htaccess — 644

4. ページにアクセスする

アドレスを
http://xs——.xsrv.jp/flask_test/
にアクセスすると

Hello! Python Flask

と表示されます。

これでWeb上でFlaskを起動できることが確認できました。