purazumakoiの[はてなブログ]

技術メモから最近はライフログも増えてきてます。

CloudCore VPS CV01を使ってみた その3 suPHPでphp4.4、5.2、5.3を同居させる の続き2 PHP切り替え

ここからの続き
CloudCore VPS CV01を使ってみた その3 suPHPでphp4.4、5.2、5.3を同居させる の続き1 - purazumakoiの[はてなブログ]

一つ言えることは

同居って大変ですね。もうちょっと簡単な方法はないでしょうか。。

ということでsuPHPでCGIモードとして複数のPHPを動かすことにトライです。

suPHPのインストール・設定

0.7.2は前になんかうまくいかなかったので0.7.1で

# cd /root/
# wget http://www.suphp.org/download/suphp-0.7.1.tar.gz
# tar zxvf suphp-0.7.1.tar.gz

# cd /root/suphp-0.7.1

./configure \
--prefix=/usr \
--sysconfdir=/usr/local/etc \
--with-php=/usr/local/bin/php-cgi-5.3.6 \
--with-apr=/usr/bin/apr-1-config

# make
# make install


# cp doc/suphp.conf-example /usr/local/etc/suphp.conf
# vi /usr/local/etc/suphp.conf
変更箇所
#↓---------------------------------
[global]
logfile=/var/log/httpd/suphp_log
webserver_user=apache
docroot=/var/www

allow_file_group_writeable=true
allow_file_others_writeable=true
allow_directory_group_writeable=true
allow_directory_others_writeable=true

check_vhost_docroot=false
env_path=/bin:/usr/bin:/usr/local/bin
umask=0022
min_uid=48
min_gid=48

[handlers]
;Handler for php-scripts
x-httpd-php536="php:/usr/local/bin/php-cgi-5.3.6"
x-httpd-php5217="php:/usr/local/bin/php-cgi-5.2.17"
x-httpd-php449="php:/usr/local/bin/php-4.4.9"
#---------------------------------↑

# cp /etc/httpd/conf.d/mod_suphp.conf /etc/httpd/conf.d/mod_suphp.conf.backup

Apacheはデフォルトで「/etc/httpd/conf.d/*.conf」が読み込まれる設定になっている
# vi /etc/httpd/conf.d/mod_suphp.conf
新規作成
#↓-----------------------------------
LoadModule suphp_module modules/mod_suphp.so
<IfModule suphp_module>
    suPHP_Engine on
    AddHandler x-httpd-php536 .php
    AddHandler x-httpd-php5217 .php5217
    AddHandler x-httpd-php449 .php449
    suPHP_AddHandler x-httpd-php536
    suPHP_AddHandler x-httpd-php5217
    suPHP_AddHandler x-httpd-php449
    suPHP_ConfigPath /usr/local/etc/php_conf_5.3.6
    suPHP_UserGroup apache apache
</IfModule>
#-------------------------------------↑

PHPのconfig

サイト毎に個々のphp.iniで設定するので特に設定しないが

/usr/local/etc/php_conf_5.3.6/php.ini
/usr/local/etc/php_conf_5.2.17/php.ini
/usr/local/etc/php_conf_4.4.9/php.ini
で初期設定ができる。

yum でインストールしたphp5.3.3を削除

古い php のアンインストールと php 5.3 のインストール - Debian GNU/Linux 3.1 on PowerMac G4

パッケージを検索
# rpm -qa | grep php
全部削除
# yum remove php-*

Apacheの設定変更

# vi /etc/httpd/conf/httpd.conf

↓コメントアウト--------------
#<Directory />
#    Options FollowSymLinks
#    AllowOverride None
#</Directory>

↓追加---- とりあえず、.htaccessでなんでも出来ちゃうように
<Directory />
    Options FollowSymLinks
    AllowOverride All
    Options MultiViews Includes ExecCGI
    Order allow,deny
    Allow from all
</Directory>

↓このなかのものをコメントアウト
<Directory "/var/www/html">
#    Options Indexes FollowSymLinks
#    AllowOverride None
#    Order allow,deny
#    Allow from all
</Directory>


Apache再起動
# /etc/rc.d/init.d/httpd restart