phpenv と php-build で PHP をインストールして管理 〜 CentOS6

複数のPHPバージョンをインストールして管理したいので、phpenv + php-build の環境を先に作ります。全ユーザーで使えるようにしたいので、/usr/local にインストールします(システムワイドにインストール)。作業はrootにて。

まず、/usr/local/src に github から phpenv を取ってきます。

スポンサーリンク

このエントリーは、CentOS 6.4 インストール~設定手順の目次 の一部です。

phpenv をシステムワイドにインストール、また rbenv と併用するための前準備

デフォルトの phpenv のインストールスクリプト /usr/local/src/phpenv/bin/phpenv-install.sh を眺めたところ、

というコードがありますので、$PHPENV_ROOT がセットされてなければ $HOME/.phpenv に phpenv がインストールされることになる。なので、あらかじめ rbenv インストール時に設定したファイル /etc/profile.d/rbenv.sh に $PHPENV_ROOT のパスを設定しておきます。

また phpenv 公式ページ に、rbenv ユーザー向けの注意が書いてある。

PATHの設定で、~/.rbenv/bin のパスが ~/.phpenv/bin のパスより前に来るようにしてね、と注意されています。

以上を踏まえて、私は rbenv の環境変数の設定の前に phpenv の設定を書きました。これで環境変数 PATH は、/usr/local/rbenv/bin:/usr/local/phpenv/bin:…となり、rbenv/bin が phpenv/bin の前に来ます。

パスを読み込む。

$PHPENV_ROOT, $PATH の確認。$PATH が /usr/local/rbenv/bin:/usr/local/phpenv/bin:…の順序になっていることを確認する。

phpenv のインストール

では続いて、/usr/local/phpenv に phpenv をインストールする。

と表示されたらOKです。PATHを追加するようにメッセージが出ていますね。デフォルトでは、~/.bashrc に書くように指示されていますが、今回はシステムワイドに phpenv を利用するために、前述したとおり /etc/profile.d/rbenv.sh に設定しておいたわけです。

これで phpenv がインストールできたので、phpenv コマンドが有効になります。先ほど一旦コメントアウトしていた、/etc/profile.d/rbenv.sh の eval “$(phpenv init -)” の行を有効にします。

/etc/profile.d/rbenv.sh を読み込み直しておく。

グループの設定とアクセス権の設定。rbenv インストールの時に作った rbenv グループに所属させておきます。

php-build のインストール

続いて、php-build をインストール。phpenv の plugin として php-build を入れます。

virtualbox(centos)でphpenv+php-buildインストールメモ(5.3,5.4変更確認まで) – Qiita [キータ]
php-buildをphpenvのプラグインとして利用 – phpenvとphp-buildで作るモダンなPHP開発環境 | Creator Life
add rbenv-install for working as plugin to CHH’s phpenv by hnw · Pull Request #69 · CHH/php-build · GitHub

のあたりを参考に。

グループとアクセス権の設定。

php-build を入れると phpenv install コマンドが使えるようになります。

phpenv install コマンドが使えるか確認。

phpenv intall でインストールできるPHPのバージョンがずらーっと出てきます。たくさんありますね。

PHP のインストール

では、いよいよ PHP のインストールまでたどり着きましたが、前もって PHP のインストールに必要な依存パッケージを先にいれておきます。

インストール実行前にconfigureオプションの設定を、 /usr/local/phpenv/plugins/php-build/share/php-build/definitions 以下のバージョンのファイルに設定します。5.4.9, 5.3.3, 5.2.17 を入れてみようと思うので、それぞれのファイルに以下の configure_option を書いておく。

さて、いよいよPHPのインストール。

結構時間がかかりましたが成功しました。続いて、インストールした PHP にパスを通す rehash。PHP インストール時に httpd 用モジュールである liphp5.so が作成されますが、他のバージョンの PHP をインストールした際に、liphp5.so が上書きれるのを避けるために退避させます。

複数の PHP を入れる時は、configure_option の -enable-fpm を –disable-fpm に変更

次は、5.3.3 を入れます。

と出てしまった。よく分かんないけど、http://qiita.com/items/7d031440bb174a55a6a1 を参考に、configure_option の -enable-fpm を –disable-fpm に変更する。

やり直したらまたエラー。

lltdl がないとのことなので入れる。必要なパッケージがなくてエラーの場合は、その都度ぐぐって入れるの繰り返し。

再度トライ。

無事にインストールできました。PHPのconfigure_optionわけわからんですね。

続いて、5.2.17 をインストール。

なお、PHP5.2.17を入れる際に以下のエラーが出た。

ですので、以下のパッケージを入れてやり直したらいけました。

インストールを繰り返す時は、rehash と libphp5.so の退避を忘れないようにする。

phpenv のコマンドを確認

その他コマンドの確認など。インストール済みのPHPパッケージを確認

PHPのバージョンを切り替え

現在有効なPHPのバージョン確認

PHPをアンインストール

PHP を Apache モジュールとして動かすための設定

続いて、php を Apacheモジュールとして動かすための設定。php.conf を作成する。

続いて、メインのhttpd.confのphpモジュール読み込みをコメントアウト。

Apache 再起動。

これで、PHPがApacheのモジュールとして動作します。phpinfo のページを作って動作確認。DocumentRoot に info.php を作ります。

ブラウザから、”サーバー名(あるいはサーバーIPアドレス)/phpinfo.php” にアクセスして phpinfo が表示されればOK。

スポンサーリンク
サーバ構築研究会の CentOS 本は、昔からお世話になっています。Linux の教科書は Linux の基本を学ぶのにおすすめです。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!