Help us understand the problem. What is going on with this article?

CentOSにphpenvでPHP環境を構築する

More than 3 years have passed since last update.

環境

  • CentOS 6.6
  • rbenv 導入済み
  • git 導入済み

準備

phpenvのインストール

cd /usr/local/src
curl https://raw.github.com/CHH/phpenv/master/bin/phpenv-install.sh | bash
vi ~/.bash_profile
~/.bash_profile
PATH=$HOME/.rbenv/bin:$PATH
PATH=$HOME/.phpenv/bin:$PATH
PATH=$PATH:$HOME/bin

eval "$(rbenv init -)"
eval "$(phpenv init -)"
source ~/.bash_profile

php-buildの導入

git clone https://github.com/CHH/php-build.git ~/.phpenv/plugins/php-build

php-buildの更新

cd ~/.phpenv/plugins/php-build
git reset --hard && git pull

バージョンを指定したPHPのインストール

今回はPHP5.5.22をインストールする(2015/3/26 PHP5.5系最新)

インストール可能なPHPのバージョンを調べる

phpenv install

依存関係にあるパッケージを導入する

yum --enablerepo=rpmforge install re2c libmcrypt-devel
yum install bison libxml2-devel libcurl-devel libjpeg-devel libpng-devel readline-devel libtidy-devel libxslt-devel

ビルド時のオプションを変更する

PHPをビルドする時のオプションは~/.phpenv/plugins/php-build/share/php-build/default_configure_optionsに記述されている。これは全体のオプションでどのバージョンにも適用される。

設定可能なオプションはPHP: 中心となる configure オプションのリストを参考

カレントディレクトリのphp.iniを読み込むようにする

vi ~/.phpenv/plugins/php-build/share/php-build/definitions/5.5.22
5.5.22
configure_option "--with-config-file-scan-dir=.;/root/.phpenv/versions/5.5.22/etc/conf.d"

httpd用のモジュールを作成する

デフォルトではhttpd用のモジュールであるlibphp5.soが作成されないので、バージョンを指定してオプションを変更する

vi ~/.phpenv/plugins/php-build/share/php-build/definitions/5.5.22

以下の行を先頭に追加する

5.5.22
configure_option "--with-apxs2=/usr/bin/apxs"

intl拡張モジュールを有効にする

vi ~/.phpenv/plugins/php-build/share/php-build/definitions/5.5.22
5.5.22
configure_option "--enable-intl"

インストール

phpenv install 5.5.22

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

phpenv global 5.5.22
phpenv rehash

参考

  1. モダンなPHP開発環境を構築する – phpenv + php-build で 複数のPHPバージョンを管理する | Creator Life
  2. php-buildで複数バージョンのPHP-FPMを用意する - hnwの日記
trisland
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした