在解决PHP依赖前,需确保系统包是最新的,并安装编译PHP或扩展所需的工具。运行以下命令:
sudo yum update -y # 更新系统包 sudo yum groupinstall "Development Tools" -y # 安装开发工具组(含gcc、make等) 这些工具是编译PHP源码或扩展的必备组件。
CentOS默认仓库中的PHP扩展可能不完整,需添加EPEL(Extra Packages for Enterprise Linux)和Remi仓库(提供最新PHP版本及扩展):
sudo yum install epel-release -y # 安装EPEL仓库 sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y # 安装Remi仓库(CentOS 7) # CentOS 8用户需将命令中的7替换为8 安装后,可通过sudo yum repolist验证仓库是否添加成功。
通过Yum安装PHP核心依赖(如php-common、php-cli)及常用扩展(如php-mysqlnd、php-gd、php-mbstring),这是最安全、便捷的方式:
sudo yum install php php-common php-cli -y # 安装PHP核心 sudo yum install php-mysqlnd php-gd php-mbstring php-xml php-curl -y # 安装常用扩展 安装完成后,重启Web服务器(Apache/Nginx)使扩展生效:
# Apache用户 sudo systemctl restart httpd # Nginx+PHP-FPM用户 sudo systemctl restart nginx php-fpm 可通过php -m命令查看已安装的扩展列表。
若所需扩展不在Yum仓库中(如redis、swoole),需从源代码编译安装:
# 安装编译依赖 sudo yum install php-devel gcc make autoconf libtool -y # 下载扩展源码(以redis为例) wget https://github.com/phpredis/phpredis/archive/refs/tags/5.3.7.tar.gz tar -zxvf 5.3.7.tar.gz cd phpredis-5.3.7 # 编译安装 phpize # 准备编译环境 ./configure # 配置编译选项 make # 编译 sudo make install # 安装扩展(默认路径:/usr/lib64/php/modules/) # 启用扩展 echo "extension=redis.so" | sudo tee -a /etc/php.ini # 添加扩展配置 sudo systemctl restart php-fpm # 重启PHP-FPM(或Apache) 编译前需确保系统已安装扩展所需的所有依赖(如redis扩展需php-devel、gcc等)。
若遇到依赖冲突(如旧版本扩展与新PHP版本不兼容),可通过以下方式解决:
sudo yum-config-manager --enable remi-php74,再安装扩展;sudo yum remove <conflicting-extension>卸载旧扩展,再安装兼容版本;php -v确认当前PHP版本,确保扩展支持该版本。php -m | grep <extension_name>(如php -m | grep redis),若输出扩展名称则表示加载成功;php -i | grep error_log获取),根据日志提示调整配置。通过以上步骤,可解决CentOS中PHP的大部分依赖问题。需注意,安装扩展前需确认其与当前PHP版本的兼容性,避免因版本不匹配导致的问题。