こんちは。
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のバージョンが表示されます。
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/
にアクセスします。うまくいけば、下のように文字が表示されます。
まとめ
以上でした。