PHP
多版本安装
# 安装EPEL源
yum install -y epel-release
# 安装Remi源
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
# 安装 yum 包管理器工具
yum install -y yum-utils
# 通过Remi指定PHP版本
yum-config-manager --enable remi-php74
# 安装PHP
yum install -y php74
# 验证安装的PHP版本
/usr/bin/php74 -v
/tmp 目录权限:find / -name "php74-php-fpm.service" 并修改PrivateTmp 改为 false更改 Nginx 配置文件:
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php74-php-fpm.sock; # 更改此处
fastcgi_index index.php;
include fastcgi.conf;
}
www:
# 检查用户是否存在:
id www
# 或
grep 'www' /etc/passwd
# 如果无输出,表示用户不存在。
# 创建用户 'www':
sudo useradd -r -s /sbin/nologin www
在CentOS 7上安装并切换PHP版本的步骤如下:
- 添加Remi仓库
首先安装EPEL仓库和Remi仓库:
sudo yum install epel-release -y
sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
启用PHP 5.6仓库并安装: 3. 安装PHP 7.x(如尚未安装)
启用PHP 7.x仓库并安装:
sudo yum-config-manager --enable remi-php74 # 假设安装7.4
sudo yum install php php-mysql php-gd php-mbstring -y
Apache使用mod_php模块,需调整加载的模块。
查找模块路径:
PHP 5.6模块:/usr/lib64/httpd/modules/libphp5.so
PHP 7.x模块:/usr/lib64/httpd/modules/libphp7.so
编辑Apache配置:
注释当前版本,启用目标版本: 5. 重启Apache生效 6. 切换命令行PHP版本使用alternatives管理CLI版本: 按提示选择版本编号。
- 验证PHP版本 访问 http://your-server/phpinfo.php 确认Apache使用的版本。
切换脚本示例
创建脚本简化切换(如switch_php5.sh和switch_php7.sh):
#!/bin/bash
# switch_php5.sh
sudo sed -i 's/^LoadModule php7_module/#&/' /etc/httpd/conf.modules.d/10-php.conf
sudo sed -i 's/^#LoadModule php5_module/LoadModule php5_module/' /etc/httpd/conf.modules.d/10-php.conf
sudo systemctl restart httpd
#!/bin/bash
# switch_php7.sh
sudo sed -i 's/^LoadModule php5_module/#&/' /etc/httpd/conf.modules.d/10-php.conf
sudo sed -i 's/^#LoadModule php7_module/LoadModule php7_module/' /etc/httpd/conf.modules.d/10-php.conf
sudo systemctl restart httpd
扩展安装:安装每个PHP版本对应的扩展(如php56-php-mysql和php74-php-mysql)。
配置文件:各版本的php.ini位于不同目录(如/etc/opt/remi/php56/php.ini和/etc/opt/remi/php74/php.ini)。
依赖冲突:使用Remi仓库的不同PHP版本包可避免冲突。
切换 PHP 版本: