CentOS系统中,PHP依赖库(扩展)的管理主要通过包管理器(YUM/DNF)和源码编译两种方式。其中,YUM/DNF是推荐方式(简单、安全、易维护),适用于大多数常见扩展;源码编译适用于需要自定义功能或仓库中没有的扩展。
YUM(CentOS 7及以下)/DNF(CentOS 8及以上)是CentOS默认的包管理工具,可通过官方或第三方仓库快速安装、更新、卸载PHP依赖库。
sudo yum install epel-release
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm # CentOS 7
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm # CentOS 8
Remi仓库包含多个PHP版本的扩展,需通过yum-config-manager启用对应版本(以PHP 7.4为例):
sudo yum-config-manager --enable remi-php74
启用后,YUM会优先从Remi仓库获取该版本的扩展。
yum install或dnf install命令,格式为php-<扩展名>(如php-mysqlnd、php-gd)。sudo yum install php-mysqlnd php-gd php-mbstring # 安装常用扩展
yum update或dnf update命令更新所有已安装的PHP扩展。sudo yum update php-* # 更新所有PHP扩展
yum remove或dnf remove命令,格式同安装。sudo yum remove php-mysqlnd # 卸载mysqlnd扩展
安装完成后,通过以下命令查看已启用的PHP扩展:
php -m # 列出所有已加载的扩展
或创建info.php文件(内容为<?php phpinfo(); ?>),通过浏览器访问查看扩展信息。
若所需扩展不在YUM/DNF仓库中,可通过源码编译安装。步骤如下:
编译前需安装开发工具链和PHP头文件:
sudo yum groupinstall "Development Tools" # 安装gcc、make等工具
sudo yum install php-devel # 安装PHP头文件(编译扩展必需)
从PHP官方网站或GitHub下载扩展源码包(如imagick),并解压:
wget https://pecl.php.net/get/imagick-3.7.0.tgz # 示例:imagick扩展
tar -zxvf imagick-3.7.0.tgz
cd imagick-3.7.0
执行以下命令完成编译安装:
phpize # 准备编译环境
./configure # 配置编译选项(自动检测PHP环境)
make # 编译源码
sudo make install # 安装扩展(默认路径:/usr/lib64/php/modules/)
php.ini文件(位置可通过php --ini查看),添加扩展加载指令:extension=imagick.so # 替换为实际扩展名
sudo systemctl restart httpd # Apache
sudo systemctl restart php-fpm # PHP-FPM(Nginx)
同样通过php -m或info.php文件确认扩展是否加载成功。
php.ini文件是否正确添加了extension=xxx.so指令,或扩展文件是否存在于PHP模块目录(可通过php -i | grep extension_dir查看)。yum deplist <package>查看依赖关系,或尝试启用更多仓库(如Remi)。通过以上方法,可高效管理CentOS系统中PHP的依赖库,满足不同项目的需求。推荐优先使用YUM/DNF管理,仅在必要时选择源码编译。