【翻译】在CentOS7上安装PHP7.2

看到老秦说他升级php到7.2,访问速度得以提升,不禁心理痒痒的,于是搜了一下vesta面板升级php的办法。结果人论坛里有详细的步骤。照本宣科,全扒下来也没用上5分钟。
只不过人家写的是7.0,全改成7.2就万事大吉了。

CentOS采用的PHP比较保守。我所使用的CentOS7里,php的版本是5.6。
yum升级php有两种办法,本文采用的是REMI方式,另外一种方式叫Webtatic。

所有步骤需要root权限

    1、安装REMI源(如已安装可以跳过)

里面的“7”不用改,只是remi和epel的最新版本恰好都是7而已。

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm epel-release-latest-7.noarch.rpm
    2、使能REMI(如已使能可以跳过)
yum --enablerepo=remi update remi-release
    3、安装php7.2
service php-fpm stop
yum -y --enablerepo=remi install php72-php php72-php-pear php72-php-bcmath php72-php-pecl-jsond-devel php72-php-mysqlnd php72-php-gd php72-php-common php72-php-fpm php72-php-intl php72-php-cli php72-php php72-php-xml php72-php-opcache php72-php-pecl-apcu php72-php-pecl-jsond php72-php-pdo php72-php-gmp php72-php-process php72-php-pecl-imagick php72-php-devel php72-php-mbstring

这一步主要是把原文里的70改成了72。执行后老版本的php跟php7.2是共存的。

    4、建立新的php链接
mv /usr/bin/php /usr/bin/php56
ln -s /usr/bin/php70 /usr/bin/php

这一步跟原文不同!因为我的系统上/usr/bin/php是个可执行程序而不是软链接,如果直接删除就没了。保险起见给它换个名字,万一出问题了还能改回来。
不得不说Linux的软链接比Windows的快捷方式方便多了!

    5、验证php安装完成
php -v

看到7.2,就装得差不多了。

至此php主体更新就完成了。接下来要配的是php-fpm这个用来加速的玩意儿。
原文这里有一步改配置文件路径的过程,经实践发现php7.0和php7.2这里的配置文件路径并不一致,改了就无法启动了,所以不要按照原文改,保持默认即可!!

    6、启动php-fpm
service php72-php-fpm start
    7、删除旧的php-fpm软链接,替换成新的
rm -f /usr/lib/systemd/system/php-fpm.service
ln -s /usr/lib/systemd/system/php72-php-fpm.service /usr/lib/systemd/system/php-fpm.service
    8、重新加载daemon reload
systemctl daemon-reload
    9、重启nginx/httpd
service nginx restart
service httpd restart

via

已有20条评论

路过的人
  1. 既然你们升了都没啥问题,我也来升个级。

    1. 现在心是越来越大了,这次升级前根本没作任何备份。

  2. 谨慎升级!
    刚刚在宝塔面板升级到php7.2,然后从原来的5.6切换过去,打开博客报错,查了下,php7开始删除了包括mysql在内的好几个扩展,有可能会导致wordpress主程序或者插件工作不正常。so,我还是切换回5.6了。

    1. 所以不能靠别人写的脚本和插件,一切要靠自己啊。

      1. 我也是在宝塔里裸升7.2,没问题啊,我看到有提示说什么MYSQL不能用了还是什么,但是我升完照样用的好好的,怪了,然后顺手把MYSQL也升级到最新版。
        难道我升了个假级!?

        1. 我哪知道宝塔都干了什么!这不是应该去找陈大猫讨论吗?

        2. 估计是我插件冲突吧或者啥配置文件什么的不同。不管了,php5.6能用就继续用了。反正我VPS性能过剩。

  3. 以前我升级到PHP7.0以上,好像因为对服务器不太懂得折腾,然后就回滚回来了,下次再折腾试试。

  4. 所以你升级后是有觉得变快了吗?

    之前试用AWS要被Windows服务器虐死。我都要瞎喊Linux是最好的服务器系统!

    1. 因为墙的存在,完全没有觉得变快。

  5. 第三步和我的情况不一样,使能remi后 yum install php ,我直接就装上 7.2 了,后面也不用软链接。

  6. 我至今还因为一个插件无法升级到7.0。
    确切地说是因为一个关于MySQL的函数。
    可是,MYSQL这个在7.0中我不知道如何替代。- -真尴尬。

    1. 上google,用英文关键字。

      1. 今天成功到了7.2这个版本,但是可能是因为用了memcached的缘故,速度没太高提升。= =至于在7.X中模板出问题的那个,我直接。。。删了。233

  7. 升级了PHP版,也没感觉有多快,目前我是7.0。

  8. 非得这样升级吗? 直接编译7.2的,不是更好吗?

    1. 当然不是非得这样。我没考虑过直接编译,因为我用的面板的论坛上推荐的是这种方法。

    1. 换吧。虚拟主机受气太多了。

  9. 好像7.2确实访问速度有快一些

    1. 我自己没什么感觉。

  10. 刚换vps,php还是稳定就OK,至于版本,提升多少还真没多大区别。

  11. Docker 真是拯救世界的东西……

  12. 好久没来了,我的PHP版本是7.0.7。说的这个7.2相比而言有应该差距不大吧

    1. 不太清楚。不是专门玩这个的。

  13. 我第一次升级就直接挂了……好在折腾前弄了个快照。

你好,新朋友。留言前请先填写昵称邮箱