CentOS 6.5にPython 2.7をインストールしApacheで使用

スポンサーリンク

Django 1.7はPython 2.7以上でないと使えないんですが、CentOS 6.5のデフォルトはPython 2.6だったので別に2.7をインストールしました。
その後Apacheで使用するにはmod_wsgiを2.7を使うようにコンパイルしなおさなくてはいけなくてちょっと面倒でした。。

Python 2.7インストール

必要なパッケージをインストールして

# yum groupinstall "development tools"
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
# wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
# tar xzf Python-2.7.8.tgz
# cd Python-2.7.8
# ./configure --prefix=/usr/local --enable-unicode=ucs4 --with-threads --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
# make

なんか一部モジュールに必要なものが足りないとか言われる

Python build finished, but the necessary bits to build these modules were not found:
_bsddb             bsddb185           dbm
dl                 gdbm               imageop
sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
yum install gdbm-devel

他はよくわからないのでスルーしてaltinstall

make altinstall

altinstallするとデフォルトの2.6を置き換えないようにインストールされます。

# python2.7 -V
Python 2.7.8
# python -V
Python 2.6.6

pipインストール

# wget https://bootstrap.pypa.io/get-pip.py
# python2.7 get-pip.py
# pip2.7 install 色々

pipと入力したときにPATHの優先順位の問題で/usr/local/binにあるpip2.7のほうが優先になってしまいましたがとりあえず放置。

mod_wsgiインストール

念のため既存のmod_wsgiを削除

yum remove mod_wsgi
# wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.2.8.tar.gz -O mod_wsgi-4.2.8.tar.gz
# tar xzf mod_wsgi-4.2.8.tar.gz
# cd mod_wsgi-4.2.8
# ./configure --with-python=/usr/local/bin/python2.7

(ちなみに最初4.3.0を落としたらインストールが上手くいかなかったので4.2.8にしました。)

makeしたらapxsが無いと言われたので

# yum install httpd-devel
# make
# make install

Apacheの設定ディレクトリにmod_wsgi読み込みを加えます。

# vim /etc/httpd/conf.d/wsgi.conf
LoadModule wsgi_module modules/mod_wsgi.so

これでApacheを再起動したらエラー

# /etc/init.d/httpd restart
httpd を停止中:                                            [OK]
httpd を起動中: httpd: Syntax error on line 221 of /etc/httpd/conf/httpd.conf: Syntax error on line 1 of /etc/httpd/conf.d/wsgi.conf: Cannot load /etc/httpd/modules/mod_wsgi.so into server: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

共有ライブラリが見つからないと言われたのでld.so.confに/usr/local/libを加えます。

# vim /etc/ld.so.conf
/usr/local/lib
# ldconfig

これでApache起動成功し、使用バージョンも2.7.8になってました。

参考

スポンサーリンク

シェアする

フォローする