CentOS7にphpenvをインストールしてみる
PHPを使っていると、バージョンアップするのが大変です。PHP5.6を使っているけど7を使いたいとか、逆に最新版ではなく安定版を使ってどこか違う環境(同一サーバー内)で最新版の実験をしたいなどあるかもしれません。どこで今回はPHPのバージョン管理できるphpenvを使って実際に環境構築できるか試したみたいと思います。
環境
- CentOS7
- rootユーザーで実行します
リポジトリのインストール
[root@hostname ~]# yum install epel-release
phpenvとphp-buildのインストール
[root@hostname ~]# curl -L https://raw.github.com/CHH/phpenv/master/bin/phpenv-install.sh | bash
[root@hostname ~]# git clone git://github.com/CHH/php-build.git ~/.phpenv/plugins/php-build
[root@hostname ~]# cd .phpenv/plugins/php-build/ [root@hostname ~]# sh install.sh
パスを通す
[root@hostname ~]# echo 'export PATH="$HOME/.phpenv/bin:$HOME/.phpenv/versions/7.0.0RC5/sbin:$PATH"' >> ~/.bashrc [root@hostname ~]# echo 'eval "$(phpenv init -)"' >> ~/.bashrc [root@hostname ~]# exec $SHELL -l
必要なパッケージをインストール/h4>
[root@hostname ~]# yum install libxml2-devel bison bison-devel openssl-devel curl-devel libjpeg-devel libpng-devel libmcrypt-devel readline-devel libtidy-devel libxslt-devel
re2cのインストール
[root@hostname ~]# wget -P /usr/share/ https://sourceforge.net/projects/re2c/files/0.14.3/re2c-0.14.3.tar.gz [root@hostname ~]# tar zxvf re2c-0.14.3.tar.gz -C /usr/share/ [root@hostname ~]# cd re2c-0.14.3 [root@hostname ~]# ./configure [root@hostname ~]# make install
若干時間かかりますがすぐおわります
インストールできるPHPのバージョン確認
[root@hostname ~]# php-build --definitions 5.2.17 5.3.2 5.3.3 5.3.6 5.3.8 5.3.9 5.3.10 5.3.11 5.3.12 5.3.13 5.3.14 5.3.15 5.3.16 5.3.17 5.3.18 5.3.19 5.3.20 5.3.21 5.3.22 5.3.23 5.3.24 5.3.25 5.3.26 5.3.27 5.3.28 5.3.29 5.4.0 5.4.1 5.4.2 5.4.3 5.4.4 5.4.5 5.4.6 5.4.7 5.4.8 5.4.9 5.4.10 5.4.11 5.4.12 5.4.13 5.4.14 5.4.15 5.4.16 5.4.17 5.4.18 5.4.19 5.4.20 5.4.21 5.4.22 5.4.23 5.4.24 5.4.25 5.4.26 5.4.27 5.4.28 5.4.29 5.4.30 5.4.31 5.4.32 5.4.33 5.4.34 5.4.35 5.4.36 5.4.37 5.4.38 5.4.39 5.4.40 5.4.41 5.4.42 5.4.43 5.4.44 5.4.45 5.4snapshot 5.5.0 5.5.1 5.5.2 5.5.3 5.5.4 5.5.5 5.5.6 5.5.7 5.5.8 5.5.9 5.5.10 5.5.11 5.5.12 5.5.13 5.5.14 5.5.15 5.5.16 5.5.17 5.5.18 5.5.19 5.5.20 5.5.21 5.5.22 5.5.23 5.5.24 5.5.25 5.5.26 5.5.27 5.5.28 5.5.29 5.5.30 5.5.31 5.5.32 5.5.33 5.5.34 5.5.35 5.5.36 5.5.37 5.5.38 5.5snapshot 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.6.5 5.6.6 5.6.7 5.6.8 5.6.9 5.6.10 5.6.11 5.6.12 5.6.13 5.6.14 5.6.15 5.6.16 5.6.17 5.6.18 5.6.19 5.6.20 5.6.21 5.6.22 5.6.23 5.6.24 5.6.25 5.6.26 5.6.27 5.6.28 5.6.29 5.6.30 5.6snapshot 7.0.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.0.6 7.0.7 7.0.8 7.0.9 7.0.10 7.0.11 7.0.12 7.0.13 7.0.14 7.0.15 7.0.16 7.0.17 7.0snapshot 7.1.0 7.1.1 7.1.2 7.1.3 7.1snapshot master
色々なバージョンがインストールできます。とりあえず、PHP5.6の最新版と7系をいれてみたいと思います。
PHP5.6.30のインストール
[root@hostname ~]# php-build 5.6.30 ~/.phpenv/versions/5.6.30
[Info]: Loaded extension plugin [Info]: Loaded apc Plugin. [Info]: Loaded composer Plugin. [Info]: Loaded github Plugin. [Info]: Loaded uprofiler Plugin. [Info]: Loaded xdebug Plugin. [Info]: Loaded xhprof Plugin. [Info]: Loaded zendopcache Plugin. [Info]: php.ini-production gets used as php.ini [Info]: Building 5.6.30 into /root/.phpenv/versions/5.6.30 [Downloading]: https://secure.php.net/distributions/php-5.6.30.tar.bz2 [Preparing]: /tmp/php-build/source/5.6.30 #ここで少し読み込みが止まります。フリーズしたのかな?って思うぐらい止まります。※環境によるかもしれません [Compiling]: /tmp/php-build/source/5.6.30 #ここでかなり長く読み込みが止まります。フリーズしたのかな?って思うぐらい止まります。ランチタイムにしたり、コーヒーを飲んで落ち着いているのもあり。もしくはPCから離れて散歩に行くのも有りです。※環境によるかもしれません [xdebug]: Installing version 2.5.0 [xdebug]: Compiling xdebug in /tmp/php-build/source/xdebug-2.5.0 [xdebug]: Installing xdebug configuration in /root/.phpenv/versions/5.6.30/etc/conf.d/xdebug.ini [xdebug]: Cleaning up. [Info]: Enabling Opcache... [Info]: Done [Info]: The Log File is not empty, but the Build did not fail. Maybe just warnings got logged. You can review the log in /tmp/php-build.5.6.30.20170409122240.log [Success]: Built 5.6.30 successfully.
インストール完了
確認
[root@hostname ~]# phpenv versions 5.6.29 * 5.6.30 (set by /root/.phpenv/version) 7.0.17 7.1.3
※他のバージョンもインストールしていると一緒に表示されます
全体でPHP5.6.30を使う用に設定
[root@hostname ~]# phpenv global 5.6.30 [root@hostname ~]# phpenv rehash
PHPのバージョン確認
[root@hostname ~]# php -v PHP 5.6.30 (cli) (built: Apr 8 2017 16:14:38) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies with Xdebug v2.5.0, Copyright (c) 2002-2016, by Derick Rethans
全体でPHP5.6の環境になりました
指定したディレクトリでPHP7を使う
CentOSのデフォルトのドキュメントルート/var/www/htmlディレクトリだけPHP7.0.13にしてみたいと思います。
※事前にPHP7.0.13をインストールしておいてください。
[root@hostname ~]# cd /var/www/html/ [root@hostname ~]# phpenv local 7.0.17 [root@hostname ~]# phpenv rehash [root@hostname ~]# php -v PHP 7.0.17 (cli) (built: Apr 8 2017 17:20:03) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.17, Copyright (c) 1999-2017, by Zend Technologies with Xdebug v2.5.0, Copyright (c) 2002-2016, by Derick Rethans
無事にインストールできました
参考サイト
個人支援・寄付について
サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。
- ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS