使用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
bannerAds