商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > yum安装php和php扩展

yum安装php和php扩展

  发布于2026-07-21 阅读(0)

扫一扫,手机访问

报错背景:

先交代一下环境:在 CentOS 7 上搭建 Nginx + PHP 环境,结果踩了个小坑——PHP 7.1 版本缺少 memcache 扩展,最终回退到 PHP 5.6 才搞定。整个过程其实挺典型的,这里把步骤拆开说说,方便后来人少走弯路。

安装 Nginx

先用 yum 方式装 Nginx,需要先配好官方源。创建 repo 文件:

[root@web01 ~]# vim /etc/yum.repos.d/nginx.repo

写入以下内容:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

保存后直接安装:

[root@nginx ~]# yum install nginx -y

处理 PHP 版本

系统自带的 PHP 5.4 版本太老,先卸掉它和相关的扩展包:

[root@nginx ~]# yum remove php-mysql-5.4 php php-fpm php-common

接着安装 EPEL 和 Webtatic 扩展源,这两个源里才有新版本的 PHP 包:

[root@nginx ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@nginx ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

然后安装 PHP 7.1(注意这里用的是 php56w 系列,但实际版本号是 7.1?不对,这里要说明一下:当时我们计划装的是 PHP 7.1,但源里 7.1 的包名是 php71w,而这里写的是 php56w,其实是笔误?还是故意用 5.6?往下看就明白了)。

先按原始记录执行安装命令:

[root@nginx ~]# yum -y install php56w php56w-cli php56w-common php56w-devel \
php56w-embedded php56w-gd php56w-mcrypt php56w-mbstring php56w-pdo php56w-xml php56w-fpm \
php56w-mysqlnd php56w-opcache php56w-pecl-memcached php56w-pecl-redis php56w-pecl-mongodb php56w-pecl-memcache

然后替换 PHP-FPM 的运行用户和组,跟 Nginx 保持一致:

[root@nginx ~]# sed -i '/^user/c user = nginx' /etc/php-fpm.d/www.conf
[root@nginx ~]# sed -i '/^group/c group = nginx' /etc/php-fpm.d/www.conf

启动服务并设置开机自启:

[root@nginx ~]# systemctl start nginx php-fpm
[root@nginx ~]# systemctl enable nginx php-fpm

踩坑与回退

到这里发现一个问题:php71 版本的扩展包里没有 memcache 扩展(注意,php71 是指 PHP 7.1 系列,而上面安装的 php56w 其实是 5.6 系列,这里前后矛盾?实际上原始记录是:先尝试装 php71w,发现缺 memcache,于是卸掉 php71w 改装 php56w。所以正确的顺序应该是:

先卸载 php71w:

yum -y remove php71w php71w-cli php71w-common php71w-devel \
php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm \
php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb

然后再安装 php56w 版本(就是上面那条命令,注意 php56w 系列包含 memcache 扩展):

yum -y install php56w php56w-cli php56w-common php56w-devel \
php56w-embedded php56w-gd php56w-mcrypt php56w-mbstring php56w-pdo php56w-xml php56w-fpm \
php56w-mysqlnd php56w-opcache php56w-pecl-memcached php56w-pecl-redis php56w-pecl-mongodb php56w-pecl-memcache

最后的选择

如果业务上不需要 php-memcache 这个扩展,用 PHP 7.1 其实更合适,性能和安全性都更好。但如果你正好需要 memcache,那就只能退回到 PHP 5.6 了。这个取舍,看具体需求。

本文转载于:https://blog.csdn.net/weixin_30457551/article/details/94826691 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注