Serverman@VPSのphpを動作確認用に5.2、5.3を切り替えられるようにする
2011.09.30
そろそろ、php5.3へ移行しないとなぁというわけで、 Serverman@VPSのphpを動作確認用に5.2、5.3を切り替えて 動作させられるようにした(同時実行はできない)。
env, conditions
- DTI ServerMan@VPS
- Cent OS 5.4(Final)
- PHP 5.2.10とApache2はインストール済み
refs
- http://tech.kayac.com/archive/php53_and_php52.html
- php5.3が元々入っていて、php5.2をインストールし切り替える方法
- http://blog.goo.ne.jp/puri69/e/d90321d7188204e57d8c9b66a8601605
- php5.3をソースからインストールする手順
- http://www.rnsk.net/blog/12/
- PHP5.2 と PHP5.3 の共存について
php5.3.8のインストール
php5.3.8 source download http://php.net/downloads.php
1 2 3 4 | $ mkdir /usr/local/php-5.3.8 $ tar zxf php-5.3.8.tar.gz $ cd php-5.3.8 $ ./configure --prefix=/usr/local/php-5.3.8 --mandir=/usr/local/php-5.3.8/share/man --infodir=/usr/local/php-5.3.8/share/info --with-config-file-path=/usr/local/php-5.3.8/etc/php5 --with-config-file-scan-dir=/usr/local/php-5.3.8/var/db/php5 --enable-bcmath --enable-ctype --enable-dom --enable-filter --enable-hash --enable-json --enable-libxml --enable-mbstring --enable-pdo --enable-session --enable-simplexml --enable-tokenizer --enable-xml --enable-xmlreader --enable-xmlwriter --with-bz2=/usr --with-gd=/usr --with-mcrypt=/usr --with-mhash=/usr --with-mysql=/usr --with-pdo-mysql=/usr --with-pcre-regex=/usr --with-readline=/usr --with-libxml-dir=/usr --with-zlib=/usr --without-pear --disable-cgi --with-ldap=/usr --with-apxs2=/usr/sbin/apxs |
makeによってphp-5.2.10のlibphp5.soは上書きされてしまうので、 その前にリネームしphp-5.3.8に上書きされないようにする:
1 | $ sudo mv /usr/lib/httpd/modules/libphp5.so /usr/lib/httpd/modules/libphp52.so |
makeしてインストール:
1 2 3 | $ make $ sudo checkinstall #<== RPMを作っておくだけ(RPMが要らないならこの行は不要) $ sudo make install |
インストールを確認:
1 2 3 4 | $ /usr/local/php-5.3.8/bin/php -v PHP 5.3.8 (cli) (built: Sep 30 2011 16:34:26) Copyright (c) 1997-2011 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | $ /usr/local/php-5.3.8/bin/php -m [PHP Modules] bcmath bz2 Core ctype date dom ereg fileinfo filter gd hash iconv json ldap libxml mbstring mcrypt mhash mysql pcre PDO pdo_mysql pdo_sqlite Phar posix readline Reflection session SimpleXML SPL SQLite sqlite3 standard tokenizer xml xmlreader xmlwriter zlib [Zend Modules] |
インストールされたlibphp5.soをphp5.3用として分かるようにリネーム:
1 | $ sudo mv /usr/lib/httpd/modules/libphp5.so /usr/lib/httpd/modules/libphp53.so |
httpd.confのphp5_moduleの読み込みをコメントアウトした:
1 2 3 4 5 6 | $ vi /etc/httpd/conf/httpd.conf #LoadModule php5_module modules/libphp5.so #<== コメントアウト ... ... ... Include conf.d/*.conf |
conf.d/php.confでphpモジュールを切り替えるようにした:
1 2 3 | $ vi /etc/httpd/conf.d/php.conf #LoadModule php5_module modules/libphp53.so LoadModule php5_module modules/libphp52.so #<== php5.2を使う |
設定ファイルの検査:
1 2 | $ apachectl configtest Syntax OK |
configureで発生したエラー
configure: error: xml2-config not found. Please check your libxml2 installation.
1 | # yum install libxml2-devel libxslt-devel |
checking for PCRE headers location... configure: error: Could not find pcre.h in /usr
1 | # yum install pcre-devel |
configure: error: Please reinstall the BZip2 distribution
1 | # yum install bzip2-devel |
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
1 | # yum install libmcrypt-devel |
configure: error: Please reinstall readline - I cannot find readline.h
1 | # yum install readline-devel |
以上。