サクラレンタルサーバー+Flaskの初心者向けチュートリアル
サクラレンタルサーバー(スタンダード)にFlask環境を作ろうと思ったが、sudoが使えない事と、デフォルトのシェルがcshellであるために、webにある参考記事から少し変更が必要だったので手こずった備忘録。(初心者用です)
アジェンダ
0. 環境の確認1. pyenvを使って、python環境の構築
pyenvに関するシェルの設定ではまった。
2. 構築したpython環境でpipを使ってflaskのインストール
3. cgiの設定を行い、Flaskアプリの動作を確認
0. 環境の確認
サクラレンタルサーバーでのユーザーディレクトリは/home/<username>/です。($HOME/や~/でもアクセスできます)
# ユーザーディレクトリへのアクセス方法この後は、ユーザーディレクトリ以下に構成をくんでいきます。
$ cd /home/<username>/
$ cd $HOME
$ cd ~/
$ cd /home/fififactory/
デフォルトでインストールされているPythonの場所とバージョンの確認
$ which python
/usr/local/bin/python
$ python -V
2.7.3
1. pyenvを使って、python環境の構築
pyenvのダウンロード
サクラレンタルサーバではgitが使えるのでダウンロードしてきます。練習がてらシェルスクリプトでコマンドを書いていきます。(のちのち見返すときにも役にたちます。直接コマンドをたたけば実行はできますので、面倒な方はそれで良いと思います)
#!/bin/csh <- cshellで動作させる事を明示します。このコマンドは、gitを使って、https://github.com/yyuu/pyenv.gitから、pyenvのリポジトリを~/.pyenvフォルダに保存しろと言ってます。
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
次にシェルスクリプト(pyenv-download.sh)をユーザーディレクトリに保存し、シェルを実行します。
# 実行権限を付加しておきます。
$ chmod 755 pyenv-download.sh
# シェルスクリプトの実行
$ ~/pyenv-download.sh
pyenvのインストール
pyenvのダウンロードができたので、次はインストールを行っていきます。.cshrc
# $FreeBSD: src/share/skel/dot.cshrc,v 1.14.6.1 2008/11/25 02:59:29 kensmith Exp $このコマンドは、もし$HOME/.pyenv/bin/pyenvが存在するならばとif文を使って条件処理をしています。そして、pyenvが存在しているときには、かくディレクトリとパスの設定を通します。(TMDIRはif文内に含む必要はないかもしれません。)
#
# .cshrc - csh resource script, read at beginning of execution by each shell
#
# see also csh(1), environ(7).
#
.....
(末尾に入力)# Setting for pyenv
# *****************
if ( -e $HOME/.pyenv/bin/pyenv ) then
echo '>> Exist pyenv'
# pyenvのルートパスを設定
setenv PYENV_ROOT $HOME/.pyenv
# pyenvのディレクトリをPATHに追加
setenv PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH
# デフォルトテンポラリディレクトリを~/tmpに変更
setenv TMPDIR $HOME/tmp
# pyenvの再起動
pyenv rehash
else
echo '>> NO INSTALL pyenv'endif
Cシェルを立ち上げ直す。 シェルを書き換えたので、一度再読みさせておきます。
$ source $HOME/.cshrcそれでは、pyenvを使って、pythonの環境を構築します。
pyenvでpythonの環境構築。
まずは、利用するpythonのバージョンをダウンロードします。こまんどはpyenv installです。$ pyenv install --list # インストールリストの確認ただし、これではまだ使えません。pyenvのディレクトリ内にそのヴァージョンのpythonが準備されただけです。
$ pyenv install 2.7.9 # python2.7.9をインストール
pyenvはディレクトリ毎に環境を管理しますので、適当な場所にディレクトリを作ります。
# 仮想環境用のディレクトリを作成(場所は任意)一度その時点でのpythonのパスとヴァージョンを調べておきます。
$ mkdir $HOME/tmp/python
$ cd $HOME/tmp/python
$ which python # 現状のpythonを確認上の用にでるはずです。まだ、サクラのデフォルトのままであることを確認してください。
/usr/local/bin/python
$ pyton -V
2.7.3
$ pyenv local 2.7.9 # ローカルpythonを構築これで、pythonがpyenvの中の/shims/pythonに指定されているのがわかります。これは.cshrcでパスに通したところになってます。ので、.cshrcのパスの設定がうまくいってないとはまります。(はまりました)
$ pyenv local # 設定がされているか確認$ whitch python
/home/fififactory/.pyenv/shims/python
$ python -V
2.7.9
python環境構築完了
2. pipを使ってflaskのインストール
さてpyenvのおかげでpipが使えるようになりましたので、ローカルのpython環境にflaskを入れていきましょう。
まずはvirtualenvでFlask用の環境を作成します。
$ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenvpythonのヴァージョン3.4.2をベースにした環境として、3.4.2-flask(名前は任意)という名前の仮想環境を作りました。
$ pyenv virtualenv 3.4.2 3.4.2-flask
Flaskをpipでインストールします。先ほどと同様に、環境をセットしたいディレクトリに移動し以下のコマンドを打ちます。
$ pyenv local 3.4.2-flask
$ pip install Flask
pip listでFlaskがあれば完了です。
3. cgiの設定を行い、Flaskアプリの動作を確認
ユーザディレクトリのwwwディレクトリ配下にアクセステスト用のディレクトリを準備します。mkdir ~/www/flask-cgi-test/hello/ディレクトリ配下に3つのファイルを準備します。
mkdir ~/www/flask-cgi-test/hello
cd ~/www/flask-cgi-test/hello
1. .htaccess
RewriteEngine On2. appFlask.py
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /flask-cgi-test/hello/index.cgi/$1 [QSA,L]
# coding: utf-83. index.cgifrom flask import Flask
app = Flask(__name__)@app.route('/')
def index():
return "Hello!"if __name__ == '__main__':
app.run()
#!/home/fififactory/.pyenv/versions/3.4.2-flask/bin/pythonimport cgitb
cgitb.enable()from wsgiref.handlers import CGIHandler
from appFlask import app
CGIHandler().run(app)
http://<username>.sakura.ne.jp/flask-cgi-test/helloにアクセス
これがでれば成功です。
結
webアプリを作ろうと、意気揚々とサクラに登録して、Flaskを動かそうと思っていたのですが、ローカル環境とは異なり、sudoが使えなかったり管理者権限がなくてインストールできなかったりと、この記事をことを動かすだけでも4日程かかってしまいました。一番ハマっていたのはシェルスクリプトが良くわかっていなく、デフォルトのシェルがchsであることに気づくまでが遅かったです。初心者の備忘録ですが、同じように環境構築にハマっている人へ少しでも手助けになればと思い投稿しました。間違え等ありましたらコメント頂けると幸いです。ご観覧ありがとうございました。
参考
.cshrc - csh、tcshの設定Crucial [ Micron製 ] 内蔵SSD 2.5インチ MX300 275GB ( 3D TLC NAND / SATA 6Gbps / 3年保証 )正規代理店 CT275MX300SSD1
- 出版社/メーカー: Crucial
- 発売日: 2016/07/30
- メディア: Personal Computers
- この商品を含むブログ (1件) を見る
MR-STOREハイバックオフィスチェア 着脱可能腰クッション付き 上下左右可動式 メッシュタイプ ブラック
- 出版社/メーカー: MR-STORE
- メディア: オフィス用品
- この商品を含むブログを見る
【Amazon.co.jp限定 】 ASUS ゲーミングモニター 23型フルHDディスプレイ (応答速度1ms / HDMI×2,D-sub×1 / スピーカー内蔵 / 3年保証) VX238H-P
- 出版社/メーカー: Asustek
- 発売日: 2014/05/28
- メディア: Personal Computers
- この商品を含むブログを見る
- 出版社/メーカー: Eastern Times Technology
- メディア: エレクトロニクス
- この商品を含むブログを見る
UフォレストPC ゲーミングデスクトップ【CPU Core i5/メモリ8GB/HDD1TB/DVDマルチドライブ搭載/GTX750/OS Windows7pro】 (ブラック[Win7単品モデル])
- 出版社/メーカー: Uフォレスト(U-forest)
- メディア: Personal Computers
- この商品を含むブログを見る
TAURROC ゲーミングマウス 7ボタン搭載 LED ライト 7段 DPI装置
- 出版社/メーカー: TAURROC
- メディア: エレクトロニクス
- この商品を含むブログを見る