CentOS5.2にPython2.6+Django1.1+mod_wsgi3.1をインストール
なんかそこら辺に幾らでも情報がある内容だけど、ちょっとずつ情報が違って調べるの面倒なので未来の自分のために書いておく。
はじめに
CentOS5.2にインストールされているPythonのバージョンは2.4.3で、古いからアップデートしたいと思ってもrpmが公開されておらず、yumではインストールできません。そこでソースからコンパイルしてインストールします。しゃーなしやで。
ちなみにPythonはマイナーバージョン(2.x.yの場合のx)が異なる場合にはちゃんと共存できるようになっていますので、システムで使われてる2.4は残しつつ2.6をインストールする方針で行きます。
具体的なシェルでの利用イメージとしては下記のようにしたいです。
$ python # 2.4が起動するが、ユーザごとの設定により2.6を起動させることもできる $ python2.4 # 2.4が起動 $ python2.6 # 2.6が起動
インストール先
2.6はデフォルトのインストール先である/usr/localにインストールします。ちなみに2.4は/usrにインストールされています。
下準備
$ su # yum install zlib-devel # easy_installに必要 # yum install sqlite-devel # SQLiteを使うのに必要 # 以下はあると嬉しいかも # yum install ncurses-devel # pythonのシェルをリッチにするのに必要 # yum install readline-devel # 同上 # 以下は正直無視してもいいかも # yum install gdbm-devel # GNU dbm を使うなら? # yum install tkinter # Tk/Tclを使うなら? # yum install tk-devel # 同上
Pythonインストール
2011年8月21日追記:x86_64の場合はconfigureするときに--enabled-sharedを付けないと、mod_wsgiのmakeで失敗する。*1
$ wget http://www.python.org/ftp/python/2.6.4/Python-2.6.4.tgz $ tar zxvf Python-2.6.4.tgz $ cd Python-2.6.4 $ ./configure # インストール先を変える場合には--prefix=/path/to/install $ make # Failed to find the necessary bits to build these modulesというエラーが出てもいい $ su # make altinstall # /usr/local/bin/pythonを作らないinstall
正しくインストールできたか確認します。
$ python2.6 Python 2.6.4 (r264:75706, Dec 14 2009, 15:28:37) [GCC 4.1.2 20080704 (Red Hat 4.1.2-46)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
既存の2.4を起動できることを確認します。
$ python Python 2.4.3 (#1, Sep 3 2009, 15:37:12) [GCC 4.1.2 20080704 (Red Hat 4.1.2-46)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
pythonとタイプしたときに2.6が起動するようにするときは、~/.bashrcに以下の記述を追加します。
alias python='python2.6'
ただしこの方法では、
/usr/bin/env python
としたときに、2.4が起動してしまうので、2.6を起動したい場合は、~/.bash_profileを次のように編集し、
PATH=$HOME/bin:$PATH # PATH=$PATH:$HOME/bin
さらに
mkdir ~/bin cd ~/bin ln -s /usr/local/bin/python2.6 python
とします。
easy_installのインストール
$ wget http://peak.telecommunity.com/dist/ez_setup.py $ su # python2.6 ez_setup.py
Djangoのインストール
$ wget http://www.djangoproject.com/download/1.1.1/tarball/ $ tar xzvf Django-1.1.1.tar.gz $ cd Django-1.1.1 $ su # python2.6 setup.py install
MySQL-pythonのインストール
# yum install mysql-devel # easy_install mysql-python
mod_wsgiのインストール
# yum install httpd-devel $ wget http://modwsgi.googlecode.com/files/mod_wsgi-3.1.tar.gz $ tar zxvf mod_wsgi-3.1.tar.gz $ cd mod_wsgi-3.1.tar.gz $ ./configure --with-python=/usr/local/bin/python2.6 $ make $ su # make install
/etc/httpd/conf/httpd.confに以下を追記
LoadModule wsgi_module modules/mod_wsgi.so
# service httpd restart
検証は適当だけど多分大丈夫だと思います。(まあ自分用だし)