Python環境構築
- Python2.7.5のインストール
- setuptools, pipのインストール
- supervisorのインストールと設定
- gunicornのインストールと設定
- その他のライブラリのインストール
- PyPyのインストール
Python2.7.5のインストール
[ -e /tmp/work/python ] || mkdir -p /tmp/work/python
cd /tmp/work/python
wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2
tar jxf Python-2.7.5.tar.bz2
pushd Python-2.7.5
./configure --enable-shared --prefix=/usr/local
make
sudo make install
popd
setuptools, pipのインストール
wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
sudo python ez_setup.py
sudo easy_install pip
supervisorのインストールと設定
supervisorのインストール
sudo pip install supervisor
sudo mkdir /var/log/supervisor
supervisorをインストールするとecho_supervisord_confコマンドが使用できるようになる。 このコマンドを実行するとsupervisord.confの雛形が標準出力に出力されるので、これをリダイレクトしてファイルに保存し、テキストエディタで適宜編集したあと、/etc/supervisor/supervisord.confに保存する。
sudo mkdir /etc/supervisor
sudo mkdir /etc/supervisor/{conf-available,conf-enabled}
echo_supervisord_conf > supervisord.conf
# vim supervisord.conf
sudo cp supervisord.conf /etc/supervisor/supervisord.conf
sudo chmod 600 /etc/supervisor/supervisord.conf
設定ファイルの記述方法に関しては このページ を参照。
設定ファイル中のパスワードは
password={SHA}SHA1のハッシュ文字列
とすることによって、パスワードを平文で設定ファイルに保存するのを避ける事ができる。また、SHA1のハッシュ文字列は、sha1sumコマンドで生成することができる。
最後に、supervisordの起動スクリプトをインストールする
wget -O supervisord https://gist.github.com/saitodev/6208818/raw/supervisord
sudo cp supervisord /etc/rc.d/init.d/supervisord
sudo chmod 755 /etc/rc.d/init.d/supervisord
sudo /sbin/chkconfig --add supervisord
sudo /sbin/chkconfig supervisord on
supervisord.confの設定例
supervisord.confをダウンロードしてパスワードを設定して、/etc/supervisor/supervisord.confにインストール
sudo mkdir -p /etc/supervisor/{conf-available,conf-enabled}
echo -n "password> "
passwd_sha1=$(/bin/bash -c 'read -s passwd; echo -n $passwd | sha1sum | cut -f1 -d" "')
echo
curl https://gist.github.com/saitodev/6223833/raw/supervisord.conf 2> /dev/null \
| sed -e "/^password=/c password={SHA}$passwd_sha1" \
| sudo tee /etc/supervisor/supervisord.conf > /dev/null
sudo chmod 600 /etc/supervisor/supervisord.conf
supervisordの起動スクリプト
gunicornのインストールと設定
sudo pip install gunicorn
# gunicornのログとpidファイルのためのディレクトリを作成
sudo mkdir /var/log/gunicorn
sudo mkdir /var/run/gunicorn
# 作成したディレクトリの所有者・権限を適宜変更する
その他のライブラリのインストール
既に構築済みの開発環境で、
pip freeze > requirements.txt
を実行すると、現在インストールされているパッケージの名前とバージョンのリストが取得できる。 このファイルを別のサーバ等に持って行き、
sudo pip install -r requirements.txt
を実行すると、元の環境と全く同じバージョンのパッケージをインストールすることができる。
参考URL
PyPyのインストール
PyPyのダウンロードページ から入手できるバイナリは、依存しているライブラリのバージョンの関係で、CentOSでは動作しない。 そのため、ソースコードからPyPyをビルドする。 PyPyのコンパイルには多量のメモリ(4Gバイト以上を推奨)のメモリが必要なので、 本番サーバーではなくローカルの仮想マシン等で行うのが賢明だろう。
必要なライブラリのインストール
sudo yum install \ gcc make python-devel libffi-devel sqlite-devel pkgconfig \ zlib-devel bzip2-devel ncurses-devel expat-devel \ openssl-devel gc-devel sudo pip install greenlet sphinx
PyPyのビルド
[ -e /tmp/work/pypy ] || mkdir -p /tmp/work/pypy cd /tmp/work/pypy wget https://bitbucket.org/pypy/pypy/downloads/pypy-2.1-src.tar.bz2 tar jxf pypy-2.1-src.tar.bz2 cd pypy-2.1-src python rpython/bin/rpython -Ojit pypy/goal/targetpypystandalone.py
tarballの作成
mkdir pypy-2.1 pypy-2.1/bin cp pypy-c pypy-2.1/bin/pypy cp -r LICENSE README.rst include lib-python lib_pypy site-packages pypy-2.1/ tar jcf pypy-2.1.tar.bz2 pypy-2.1
/opt等にPyPyをインストールする。
cd /opt sudo tar jxf path/to/pypy-2.1.tar.bz2
参考URL