前提条件
- Vagrant
- CentOS6系
phpenvインストール
$ mkdir ~/src
$ cd ~/src
$ git clone https://github.com/CHH/phpenv.git
$ cd phpenv/bin
$ ./phpenv-install.sh
Installing phpenv in /home/vagrant/.phpenv
remote: Counting objects: 2057, done.
Receiving objects: 100% (2057/2057), 344.17 KiB | 556 KiB/s, done.
remote: Total 2057 (delta 0), reused 0 (delta 0), pack-reused 2057
Resolving deltas: 100% (1272/1272), done.
Success.
export PATH="/home/vagrant/.phpenv/bin:$PATH"
eval "$(phpenv init -)"
Add above line at the end of your ~/.bashrc and restart your shell to use phpenv.
設定
$ vi ~/.bashrc
追記
-----------------------------------------------
export PATH="/home/vagrant/.phpenv/bin:$PATH"
eval "$(phpenv init -)"
-----------------------------------------------
php-buildインストール
php-buildのプラグインとしてインストール
$ git clone https://github.com/CHH/php-build.git ~/.phpenv/plugins/php-build
PHPインストール
ライブラリ等インストール
$ yum repolist all | grep epel
- epelがenabled出ない場合、epelリポジトリインストール
$ sudo yum install wget
$ wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo yum localinstall epel-release-6-8.noarch.rpm
$ sudo yum install gcc bison httpd-devel libxml2 libxml2-devel openssl-devel \
libcurl-devel libjpeg-turbo-devel libpng-devel libmcrypt-devel \
readline-devel libtidy-devel libxslt-devel re2c freetype-devel
PHPコンパイルオプション設定
$ vi /home/vagrant/.phpenv/plugins/php-build/share/php-build/definitions/5.5.22
削除
-----------------------------------------------
install_pyrus
-----------------------------------------------
$ vi /home/vagrant/.phpenv/plugins/php-build/share/php-build/default_configure_options
追記
-----------------------------------------------
--with-apxs2=/usr/sbin/apxs
--with-freetype-dir=/usr
-----------------------------------------------
メモ書き)
php-buildで同じバージョンをコンパイルオプションを変更して、PHPをインストールするときは、PHPビルド前ソースコードを削除したほうがいいかも。Makefileとかは下記に存在。
$ rm -rf /tmp/php-build/source/5.5.22
php-buildのスクリプト修正
下記パーミッションエラーが出るので、スクリプト修正
/usr/lib64/httpd/build/instdso.sh SH_LIBTOOL='/usr/lib64/apr-1/build/libtool' libphp5.la /usr/lib64/httpd/modules
cp: cannot create regular file `/usr/lib64/httpd/modules/libphp5.so': Permission denied
apxs:Error: Command failed with rc=65536
libphp5.soの出力場所を~/.phpenv/versions/5.5.22/
へ変更。
ただし、下記参考パッチが最新バージョンのphp-buildではあてられないパッチになっているのと、後ほど出てくるphpenv-apache-versionを想定していないので、独自にパッチ作成
参考)
http://tkuchiki.hatenablog.com/entry/2014/04/08/210022
$ wget https://gist.githubusercontent.com/orangehat/04e5a16daccbf5493c6d4d3da3a58dc1/raw/96df8cfcc0aaac444a08ba871c6223842b5aa00c/php-build.patch
$ patch -u ~/.phpenv/plugins/php-build/bin/php-build < php-build.patch
phpenvからPHPインストール
$ phpenv install 5.5.22
phpenv-apache-versionインストール
$ git clone https://github.com/garamon/phpenv-apache-version ~/.phpenv/plugins/phpenv-apache-version
PHP切り替え
$ cd /path/to/project
$ sudo /home/vagrant/.phpenv/bin/phpenv apache-version 5.5.22