安装多个PHP版本:
# Ubuntu/Debian
sudo apt install php7.4-fpm php8.0-fpm php8.1-fpm
# CentOS/RHEL
sudo yum install php74-php-fpm php80-php-fpm php81-php-fpm
配置PHP-FPM: 每个PHP版本有独立的配置文件,通常位于:
/etc/php/7.4/fpm/pool.d/www.conf
/etc/php/8.0/fpm/pool.d/www.conf
确保每个版本监听不同的端口或套接字:
listen = /run/php/php7.4-fpm.sock
listen = /run/php/php8.0-fpm.sock
Nginx服务器块配置:
server {
listen 80;
server_name site1.example.com;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
}
server {
listen 80;
server_name site2.example.com;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
}
}
server {
listen 80;
server_name example.com;
# PHP 7.4 用于 /legacy/ 路径
location ~ ^/legacy/.+\.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
# PHP 8.0 用于其他路径
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
}
}
安装多个PHP版本(同Nginx部分)
配置Apache虚拟主机:
<VirtualHost *:80>
ServerName site1.example.com
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
<VirtualHost *:80>
ServerName site2.example.com
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.0-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
启用不同PHP版本模块:
sudo a2dismod php7.4
sudo a2enmod php8.0
sudo systemctl restart apache2
使用.htaccess指定PHP版本:
<IfModule mod_php7.c>
# PHP 7 配置
</IfModule>
<IfModule mod_php8.c>
# PHP 8 配置
</IfModule>
<VirtualHost *:80>
ServerName example.com
<Directory "/var/www/html/legacy">
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
</FilesMatch>
</Directory>
<Directory "/var/www/html">
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.0-fpm.sock|fcgi://localhost"
</FilesMatch>
</Directory>
</VirtualHost>
重启服务:
# Nginx
sudo systemctl restart nginx
# PHP-FPM
sudo systemctl restart php7.4-fpm php8.0-fpm
# Apache
sudo systemctl restart apache2
验证PHP版本: 创建phpinfo.php文件:
<?php phpinfo(); ?>
访问该文件查看当前使用的PHP版本
兼容性检查:
性能考虑:
通过以上配置,您可以根据不同网站、目录或路径灵活地使用不同版本的PHP。