使用phpenv安装PHP
环境
CentOS发行版6.8(最终版本)
已经做过的事情
git clone git://github.com/phpenv/phpenv.git ~/.phpenv
echo 'export PATH="$HOME/.phpenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(phpenv init -)"' >> ~/.bash_profile
exec $SHELL -l
exit
git clone https://github.com/php-build/php-build $(phpenv root)/plugins/php-build
cd .phpenv/plugins/php-build/share/php-build/definitions
vi 7.2.15
- apache用のモジュール作成のため、以下を1行目に追加(apxsの場所は要確認)
configure_option "--with-apxs2" "/usr/sbin/apxs"
- その他、必要なモジュールがあれば
configure_option "--enable-calendar"
configure_option "--with-pear"
configure_option "--enable-sysvmsg"
configure_option "--enable-wddx"
configure_option "--with-gettext"
# mhashは下記では有効になりませんでした
configure_option "--with-mhash"
yum install re2c libxml2 libxml2-devel openssl-devel bzip2-devel curl curl-devel libjpeg libjpeg-devel libpng-devel libicu-devel readline-devel libtidy-devel libxslt-devel httpd-devel
phpenv install 7.2.15
- 切り替える場合
phpenv global 7.2.15
phpenv rehash
- imagickなど、peclを入れる場合(切り替え後に実行)
cd .phpenv/plugins/
git clone https://github.com/felipecwb/pecl-build.git
phpenv pecl imagick
phpenv pecl apcu
phpenv pecl mcrypt
# imagickのtestでエラーが出てインストールできなかったので、無理やりテストを飛ばして入れた(どうやら新し目のImageMagickだとなる模様。最新で確認)
cd ~/.phpenv/plugins/pecl-build/bin
./pecl-build imagick -p ~/.phpenv/versions/7.2.15/bin/phpize -i ~/.phpenv/versions/7.2.15/bin/php-config --skip-test
- php.iniを修正
date.timezone = "Asia/Tokyo"
类似的
- Apache再起動
如果要使用phpenv的5.x和7.x版本,请检查以下文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/php.conf
参考链接:https://qiita.com/aat00000/items/23df738116bf724cadc4
如果可以的话
service httpd restart
- すぐに切り替えない場合
[abrt] httpd: httpd killed by SIGSEGV
因为收到了一封电子邮件,其中提到了/etc/httpd/conf/httpd.conf的文件。
LoadModule php7_module /usr/lib64/httpd/modules/libphp7.so
注释掉。
每个用户的CLI中的PHP版本过旧问题
使用上述的方法,由于是在root下进行操作,因此只有root才能更改cli的php版本。
# 移動
mv /root/.phpenv /usr/local/phpenv
# 各ユーザ(deployerのためにbashrcに書いたほうがいいです)
vi ~/.bashrc
export PATH="$HOME/.phpenv/bin:$PATH"
↓
export PATH="/usr/local/phpenv/bin:$PATH"
# phpenv pecl imagickで入れたものが反映されないので、シンボリックリンクはる
ln -s /usr/local/phpenv/ /root/.phpenv
systemctl restart httpd