シュンカの日記

基本的に書きたいことを書いていくスタイル。

XserverでFlask(Pythonフレームワーク)を利用する方法

【スポンサーリンク】

こんちは。

XserverにPythonのWebフレームワークのFlaskを導入したので、その手順を記載します。

以下サイトを参考にしました。ただ、以下サイトはさくらレンタルサーバーの場合で、その通りの手順でやるとうまくいかない点もあったので、ここでも1から説明していきます。
tech.motop3j.net

ちなみに環境は次のとおりです。

OS Ubuntu16.04

ssh でXserverにログイン

※sshの設定がまだでしたら、以下サイトが分かりやすいです。
vdeep.net

まずは、sshでXserverにログインします。

~$ ssh ユーザーID@ドメイン名.com -p 10022

ユーザーID:XservereのユーザーID
ドメイン名:利用しているドメイン名

pyenvをインストール

gitを利用して、pyenvをインストールします。
ちなみに、Xserverはデフォルトではgitが使えないので、予めインストールする必要があります。
Xserverへのgitのインストールについては、下記サイトを参考にしました。
vdeep.net

$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv

.bash_profile(一番上の階層のルートフォルダにあるはず)を開きます。vimで編集します。

$ vi .bash_profile

"i" を押して編集モードにしたら、下記コードを追記してpyenvのパスを通します。

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

"esc" を押して編集モードを終えて、"shift+z" を2回押してvimを終了します。

ちなみにpyenvは、標準のpython環境から離れて、複数バージョンのpython環境を管理できる仮想環境みたいなもののようです。
バージョンの切替も簡単にできます。

pythonをインストール


pyenv環境化にpythonをインストールします。
とりあえず、参考サイトの通りにpython3.4.2をインストールしました。

$ pyenv install 3.4.2

.bash_profileに下記コードを追加します。さっきと同様にvimを使います。

eval "$(pyenv init -)"

下記を実行して、python3.4.2環境にしたら、バージョンチェック。

$ pyenv local 3.4.2
$ python -V

無事インストールされていれば、Pythonのバージョンが表示されます。
f:id:nukano0522:20170202200919p:plain

Flaskをインストール

pipを利用してFlaskをインストールします。

$ pip install Flask

以上で、XserverへのFlask導入は完了です。

Flaskのサンプルコードを実行

【スポンサーリンク】



FlaskのWebアプリを実行してみます。ハローワールドってやつです。

public_htmlフォルダ配下に、"flask/hello/" とフォルダを切って、
helloフォルダ内に以下の3ファイルを配置します。

  • index.cgi
  • testFlask.py
  • .htaccess

index.cgi

#!/home/ユーザーID/.pyenv/versions/3.4.2/bin/python
from wsgiref.handlers import CGIHandler
from testFlask import app
CGIHandler().run(app)

1行目は、pythonの実行ファイルの在り処を記載しています。


testFlask.py

# -*- coding: utf-8 -*-
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return "Hello world!こんにちは"

1行目は、日本語をうまく表示するためのおまじない。
"@app.route('/')" 内に、URLがhello直下の場合の実行内容を記載します。

Flaskコードの詳細は、公式に書かれているので参照してください。
Flaskへようこそ — flask-docs-ja 0.10-dev documentation


.htaccess

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

URLのリライトの設定です。


http://ドメイン名.com/flask/hello/

にアクセスします。うまくいけば、下のように文字が表示されます。
f:id:nukano0522:20170202224102p:plain

まとめ

以上でした。