PHPBrewというものでPHPのバージョン管理が出来るらしいので入れてみた。
環境
- CentOS 6.6
- Amazon Linux 2015.03 hvmでも検証済
phpbrewのインストール
epelとremiを入れる
wget https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh epel-release-6-8.noarch.rpm
sudo rpm -Uvh remi-release-6.rpm
enableを0に変更する
sudo vim /etc/yum.repos.d/epel.repo
yumでupdate
sudo yum update
色々必要っぽいの入れる(実はこの必要なものでよくインストール時にエラーになってログを見まくった)
sudo yum install --enablerepo=remi,epel php php-xml re2c libmhash httpd httpd-devel gcc gcc-c++ libxml2-devel openssl-devel bzip2-devel libxslt-devel libicu libicu-devel readline-devel
sudo yum install --enablerepo=epel libmcrypt libmcrypt-devel
※libssl-devは必要なさそうでした
phpbrew取ってくる
curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
chmod +x phpbrew
sudo mv phpbrew /usr/bin/phpbrew
initする
$ phpbrew init
略
Enjoy phpbrew at $HOME!!
略
.bashrcまたは、.zshrcに以下追加
source ~/.phpbrew/bashrc
PHPリスト取得
$ phpbrew known
5.6: 5.6.8, 5.6.7, 5.6.6, 5.6.5, 5.6.4, 5.6.3, 5.6.2, 5.6.1 ...
5.5: 5.5.24, 5.5.23, 5.5.22, 5.5.21, 5.5.20, 5.5.19, 5.5.18, 5.5.17 ...
5.4: 5.4.40, 5.4.39, 5.4.38, 5.4.37, 5.4.36, 5.4.35, 5.4.34, 5.4.33 ...
5.3: 5.3.29, 5.3.28, 5.3.27, 5.3.26, 5.3.25, 5.3.24, 5.3.23, 5.3.22 ...
You can run `phpbrew update` to get a newer release list.
一時期まで、–oldを付けることで5.2も選択できたはずなのですが、いつの間にか選択できなくなってました。環境によるものでしょうか。以下のような方法で一応入れることは出来そうです。
apache2のconfが変更できるように、最初にパーミッションを変更しておく
sudo chmod 777 /usr/lib64/httpd/modules
sudo chmod -R 777 /etc/httpd/conf
PHP-5.3.29が入る。+apxs2パラメータを指定しておくことでmoduleをhttpd.confに追記してくれるはず
phpbrew install php-5.3.29 +default+mysql+pdo +apxs2 +openssl=/usr -- --with-libdir=lib64
セットする、今後も使う場合はuseじゃなくてswitchする
phpbrew use php-5.3.29
確認
$ php -v
PHP 5.3.29 (cli) (built: Apr 10 2015 09:29:22)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies
できてる。
パーミッション戻す
sudo chmod 755 /usr/lib64/httpd/modules
sudo chmod -R 755 /etc/httpd/conf
apacheを再起動
sudo service httpd restart
なお、Starting httpd: [Thu Apr 23 07:24:11 2015] [warn] module php5_module is already loaded, skipping
このような表示が出るかもしれません。
これは、php5_moduleがロードされているのにもかかわらず再度ロードするためです。/etc/httpd/conf.d/php.conf
にかかれてあるLoadModule php5_module modules/libphp5.so
をコメントアウトすることで対応可能です。
まとめ
これでPHPが複数使える・・・!
レガシーな開発環境に使えますねっ
コメント