发布于2026-07-21 阅读(0)
扫一扫,手机访问
升级 PHP 7 在实际运维中是个常见需求,但不同环境、不同版本之间切换,坑也不少。这里整理了两条比较典型的路:一条是源码编译安装,一条是直接用第三方 YUM 源替换。两种方式各有优劣,下面把关键步骤和踩过的坑都列出来,方便以后快速复用。
如果你还在用 CentOS 6 且想快速升级到 PHP 5.5,可以这样操作:
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
yum install php55w php55w-opcache
然后替换系统自带的 PHP 公共包:
yum install yum-plugin-replace
yum replace php-common --replace-with=php55w-common
可选的扩展包列表(按需安装):
php55w php55w-bcmath php55w-cli php55w-common php55w-dba php55w-devel php55w-embedded php55w-enchant php55w-fpm php55w-gd php55w-imap php55w-interbase php55w-intl php55w-ldap php55w-mbstring php55w-mcrypt php55w-mssql php55w-mysql php55w-mysqlnd php55w-odbc php55w-opcache php55w-pdo php55w-pecl-memcache php55w-pecl-xdebug php55w-pgsql php55w-process php55w-pspell php55w-recode php55w-snmp php55w-soap php55w-tidy php55w-xml php55w-xmlrpc
先下载 PHP 7.0.2 的源码包(注意版本号可以根据需要调整):
wget http://cn2.php.net/get/php-7.0.2.tar.gz/from/this/mirror
解压:
tar -zxvf php-7.1.0.tar.gz
卸载系统旧版 PHP(防止冲突):
yum remove php
rpm -qa|grep php # 查看所有 PHP 相关包
rpm -e php-cli-5.4.16-42.el7.x86_64 # 逐一删除
安装编译依赖库:
yum install libxml2 libxml2-devel openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel pcre pcre-devel libxslt libxslt-devel bzip2 bzip2-devel
配置编译参数(这里是一份常用参数组合,建议根据实际需求微调):
./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip
第一次执行很可能遇到这个错误:
configure: error: no acceptable C compiler found in $PATH
解决:安装 gcc 编译工具链。
yum install gcc
再次执行 configure 命令,如果还报告其他依赖缺失,按以下方式逐一解决:
yum install freetype-develyum install curl curl-develyum install openssl openssl-develyum install libxml2 libxml2-develyum install libpng-devel
所有依赖解决后,执行编译安装(这一步比较耗时):
make && make install
安装完成后,拷贝配置文件:
cp php.ini-development /usr/local/php/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin
编辑 php.ini,找到 cgi.fix_pathinfo 配置项,将其值改为 0 并去掉注释:
vi /usr/local/php/php.ini
然后配置 PHP-FPM 的用户和组。默认情况下,php-fpm 的用户配置文件在 etc/php-fpm.d/ 目录下,先复制一份:
cp www.conf.default www.conf
vi www.conf
将 user 和 group 从默认的 nobody 改为合适的用户(如 nginx 或 www)。
启动 PHP-FPM:
/usr/local/bin/php-fpm
通过 netstat -tln | grep 9000 即可确认服务是否正常运行。
如果不想走编译流程,更推荐直接使用第三方 YUM 源,省时省力。不过要注意,CentOS 7 下需要先安装 EPEL 源:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
如果报错提示需要 epel-release >= 7,先安装 EPEL:
yum install epel-release
然后安装 PHP 7.0 及其扩展:
yum install php70w php70w-bcmath php70w-cli php70w-common php70w-dba php70w-devel php70w-embedded php70w-enchant php70w-fpm php70w-gd php70w-imap php70w-interbase php70w-intl php70w-ldap php70w-mbstring php70w-mcrypt php70w-mssql php70w-mysql php70w-odbc php70w-opcache php70w-pdo php70w-pecl-memcache php70w-pecl-xdebug php70w-pgsql php70w-process php70w-pspell php70w-recode php70w-snmp php70w-soap php70w-tidy php70w-xml php70w-xmlrpc
无论用哪种方式安装 PHP,只要带着 php-fpm 组件,就可以和 Nginx 配合。先启动 PHP-FPM:
/usr/sbin/php-fpm
然后修改 Nginx 配置文件,添加 PHP 解析的 location 段:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
重启 Nginx:
systemctl restart nginx
写一个 phpinfo 文件,浏览器访问即可验证:
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8