备份当前版本
安全第一,不忘备份
which php /usr/local/php/bin/php cp -r /usr/local/php /usr/local/php_bak
获取当前 PHP 配置参数
我是直接在历史命令里面找到的:
history |grep configure
如果你找不到就执行如下命令找:
/usr/local/php/bin/php -i | head
总之,我们需要的就是下面的东西:
./configure --prefix=/usr/local/php --enable-opcache --with-config-file-path=/usr/local/php/etc --with-curl --enable-fpm --with-gd --with-iconv --enable-mbstring --with-mysqli=mysqlnd --with-openssl --enable-static --enable-sockets --enable-inline-optimization --with-zlib --disable-ipv6 --disable-fileinfo --disable-debug
这里要注意,气死你的PHP版本里面(7.4.0)已经不支持“--with-gd”,得改成“--enable-gd”,否则会报错“GD Library Error: imagecreatetruecolor does not exist - please contact your webhost and ask them to install the GD library
”所以最终我们得到的配置参数为:
./configure --prefix=/usr/local/php --enable-opcache --with-config-file-path=/usr/local/php/etc --with-curl --enable-fpm --enable-gd --with-iconv --enable-mbstring --with-mysqli=mysqlnd --with-openssl --enable-static --enable-sockets --enable-inline-optimization --with-zlib --disable-ipv6 --disable-fileinfo --disable-debug
下载PHP
从 https://www.php.net/downloads.php 页面下载 PHP 的最新 Stable 版本,解压缩,进入源码目录。
wget https://www.php.net/distributions/php-7.4.0.tar.gz tar xf php-7.4.0.tar.gz cd php-7.4.0
配置PHP
在编译之前,需要进入源代码目录,对要安装的程序进行各种参数配置,比如安装到什么地方,需要开启哪些功能等。配置工作一般都由源码目录中的configure脚本完成。
./configure --prefix=/usr/local/php --enable-opcache --with-config-file-path=/usr/local/php/etc --with-curl --enable-fpm --enable-gd --with-iconv --enable-mbstring --with-mysqli=mysqlnd --with-openssl --enable-static --enable-sockets --enable-inline-optimization --with-zlib --disable-ipv6 --disable-fileinfo --disable-debug
error: Package requirements (sqlite3 > 3.7.4) were not met
error: Package requirements (sqlite3 > 3.7.4) were not met
No package 'sqlite3' found
若看到上面的报错,非常简单:
yum install libsqlite3x-devel -y
error: Package requirements (oniguruma) were not met
error: Package requirements (oniguruma) were not met
No package 'oniguruma' found
若看到上面的报错,非常简单:
yum install oniguruma-devel -y
编译PHP
刚才的配置通过后,直接运行 make 进行编译。
安装PHP
刚才的编译通过后,先停止PHP-FPM服务:
systemctl stop php-fpm
然后运行 make install 进行安装,安装成功后,我们得改下php.ini文件,该文件里面的
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/opcache.so"
改成:
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/opcache.so"
最后启动PHP-FPM服务:
systemctl start php-fpm
进入你的网站根目录执行:
echo "<?php phpinfo() ?>" >d.php
然后访问 https://yoursite.com/d.php 来检测此处升级的结果,确认升级成功后记得删除 d.php
更详细的安装步骤请查看:
Centos 6.5 x64安装php 7.2
PHP-FPM没有生成socket文件
原创文章,转载请注明: 转载自笛声
本文链接地址: 编译升级PHP 7.4.0
12 条评论
版本太高了,会不会有些源码不能用了?
我已经升级到7.4.0了,目前一切正常,只是新的预处理特性还没用起来。一般都向下兼容的,不会出现源码不能用。
666 按上文实操解决了~ PHP7.4改动还不小...
phpinfo()
是不是少了一个;?
在这里少了也没问题,总共才一行。
你这速度已经超过我这个用PHP吃饭的人了~
我也想升级,可惜的是我的程序不支持php7.4
秀啊,缺俩包刚好解决
博主优秀,困扰我的问题解决了,之前找的帖子都不行,万分感谢!!!
[…] 编译升级PHP 7.4.0 出自 笛声 […]
不错,刚好解决问题!
完美