首先通过命令 php -v
查看系统当前安装的PHP版本,明确应用程序所需的PHP版本范围(如旧应用可能需要PHP 5.6,新应用可能需要PHP 7.4+),这是解决兼容性问题的基础。
CentOS默认仓库的PHP版本通常较旧,需添加EPEL(Extra Packages for Enterprise Linux)和Remi仓库以获取最新稳定版本:
sudo yum install epel-release
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php74
sudo yum update php && sudo yum install php php-fpm php-mysql php-gd php-mbstring
;sudo yum install php74 php74-php-fpm php74-php-mysqlnd php74-php-opcache
。Development Tools
和php-devel
):wget https://www.php.net/distributions/php-7.4.33.tar.gz
tar -zxvf php-7.4.33.tar.gz
cd php-7.4.33
./configure --prefix=/usr/local/php74 --enable-mbstring --enable-zip --with-openssl --with-mysqli
make && sudo make install
编译后需手动配置php.ini
并更新环境变量。PHP应用依赖多种扩展(如数据库、加密、XML处理),需通过Yum安装并启用:
sudo yum install php-mysql php-gd php-mbstring php-xml php-curl php-opcache
phpize
→./configure
→make && make install
,然后在php.ini
中取消对应扩展前的注释(如extension=sockets.so
)。sudo systemctl restart httpd
,Nginx+PHP-FPM用sudo systemctl restart php-fpm && sudo systemctl restart nginx
。mysql_connect()
→mysqli_connect()
或PDO)。php.ini
中的error_reporting
和display_errors
,避免敏感信息泄露(如生产环境设为E_ALL & ~E_NOTICE & ~E_STRICT
)。若需在同一服务器运行多个PHP版本(如旧应用用PHP 5.6,新应用用PHP 8.0),可通过以下方式实现:
remi-php56
、remi-php80
),用sudo yum install php56 php56-php-fpm
和sudo yum install php80 php80-php-fpm
分别安装,再通过update-alternatives
或修改Web服务器配置切换版本。/usr/local/php56
、/usr/local/php80
),通过update-alternatives
管理命令链接或修改环境变量切换。php -v
确认版本正确。info.php
(内容为<?php phpinfo(); ?>
),通过浏览器访问查看PHP版本、加载的扩展及配置信息。