本文目录导读:

- 系统级 PHP 版本配置
- 使用 phpbrew 管理多版本
- Docker 方式配置
- XAMPP/WAMP/MAMP 集成环境
- 修改 PHP 配置文件
- 命令行版本切换脚本
- 项目级 .php-version 文件
- 配置验证
- Web 服务器配置
- 建议
我来详细介绍 PHP 版本配置的几种主要方法:
系统级 PHP 版本配置
Linux (Ubuntu/Debian) 使用 apt-get
# 查看可用版本 sudo apt-get update sudo apt-cache search php | grep "^php[0-9]" # 安装特定版本 sudo apt-get install php7.4 sudo apt-get install php8.1 sudo apt-get install php8.2 # 切换版本(使用 update-alternatives) sudo update-alternatives --config php
Linux (CentOS/RHEL) 使用 yum/dnf
# 添加 EPEL 和 Remi 仓库 sudo yum install epel-release sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm # 启用特定版本 sudo yum --enablerepo=remi-php74 install php sudo yum --enablerepo=remi-php81 install php
使用 phpbrew 管理多版本
# 安装 phpbrew curl -L -O https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar chmod +x phpbrew.phar sudo mv phpbrew.phar /usr/local/bin/phpbrew # 初始化 phpbrew init echo "source ~/.phpbrew/bashrc" >> ~/.bashrc # 安装 PHP 版本 phpbrew install 7.4 +default phpbrew install 8.1 +default phpbrew install 8.2 +default # 切换版本 phpbrew switch php-8.1.0 phpbrew use php-8.1.0
Docker 方式配置
docker-compose.yml
version: '3.8'
services:
php74:
image: php:7.4-apache
ports:
- "8074:80"
volumes:
- ./projects/:/var/www/html/
php81:
image: php:8.1-apache
ports:
- "8081:80"
volumes:
- ./projects/:/var/www/html/
php82:
image: php:8.2-apache
ports:
- "8082:80"
volumes:
- ./projects/:/var/www/html/
XAMPP/WAMP/MAMP 集成环境
XAMPP 控制面板
- 打开 XAMPP Control Panel
- Apache -> Config -> PHP (php.ini)
- 或者直接替换 PHP 版本文件夹
WAMP 切换版本
# WAMP 图标 -> PHP -> Version -> 选择版本 # 或者直接修改配置文件 C:\wamp64\bin\php\php7.4.26\ C:\wamp64\bin\php\php8.1.0\
修改 PHP 配置文件
php.ini 关键配置
# 版本相关设置 [PHP] engine = On short_open_tag = On precision = 14 # 错误报告 error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT display_errors = On display_startup_errors = On # 资源限制 memory_limit = 128M max_execution_time = 30 max_input_time = 60 upload_max_filesize = 2M post_max_size = 8M # 时区设置 date.timezone = Asia/Shanghai
命令行版本切换脚本
创建版本切换脚本 switchphp.sh
#!/bin/bash
# PHP 版本切换脚本
PHP_VERSIONS=(
"/usr/bin/php7.4"
"/usr/bin/php8.1"
"/usr/bin/php8.2"
)
echo "可用的 PHP 版本:"
for i in "${!PHP_VERSIONS[@]}"; do
echo "$((i+1)). ${PHP_VERSIONS[$i]}"
done
read -p "请选择版本 (1-${#PHP_VERSIONS[@]}): " choice
if [ "$choice" -ge 1 ] && [ "$choice" -le "${#PHP_VERSIONS[@]}" ]; then
selected=${PHP_VERSIONS[$((choice-1))]}
sudo update-alternatives --set php $selected
echo "已切换到 PHP: $selected"
php -v
else
echo "无效选择"
fi
项目级 .php-version 文件
创建项目版本配置
# 在项目根目录创建 .php-version 文件 echo "7.4" > .php-version # 或使用 .phpenv-version echo "8.1" > .phpenv-version # PHP 版本管理器自动读取
配置验证
# 查看当前 PHP 版本 php -v # 查看详细配置 php -i | grep "Loaded Configuration File" php -i | grep "PHP Version" # 查看模块 php -m # 测试 PHP 文件 php -r "echo phpversion();"
Web 服务器配置
Apache 配置
# httpd.conf 或 .htaccess
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
# 或指定 PHP 版本
# SetHandler "proxy:fcgi://127.0.0.1:9074"
</FilesMatch>
Nginx 配置
# nginx.conf
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
# 或
# fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
建议
- 开发环境:使用 Docker 或 phpbrew 管理多版本
- 生产环境:保持稳定版本,使用 Docker 隔离
- 项目兼容:确保所有依赖支持目标版本
- 安全更新:及时更新到安全的次要版本
- 测试环境:模拟生产环境配置
选择适合你开发流程的版本管理方式,确保项目稳定运行。