4月 112015
 

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も選択できたはずなのですが、いつの間にか選択できなくなってました。環境によるものでしょうか。以下のような方法で一応入れることは出来そうです。
https://github.com/phpbrew/phpbrew/issues/429

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が複数使える・・・!
レガシーな開発環境に使えますねっ

Pocket

 Posted by at 1:28 AM

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


*