在Ubuntu系统中,有时需要同时安装多个PHP版本,以满足不同项目的需求,如何在Ubuntu上设置多个PHP版本呢?本文将详细介绍在Ubuntu系统中安装和配置多个PHP版本的步骤。
更新系统软件包列表:
sudo apt update
安装一些必要的软件包:
sudo apt install software-properties-common
为了能够安装多个PHP版本,我们需要添加PHP的PPA(Personal Package Archive)仓库,以下命令将添加PHP 7.4和PHP 8.0的PPA仓库:
sudo add-apt-repository ppa:ondrej/php
添加完PPA仓库后,再次更新软件包列表:
sudo apt update
我们可以开始安装PHP了,以下命令将安装PHP 7.4和PHP 8.0:
sudo apt install php7.4 php7.4-cli php7.4-fpm php7.4-curl php7.4-xml php7.4-mysql php7.4-gd php8.0 php8.0-cli php8.0-fpm php8.0-curl php8.0-xml php8.0-mysql php8.0-gd
安装完成后,我们可以通过以下命令查看已安装的PHP版本:
php7.4 -v
php8.0 -v
我们需要配置PHP-FPM,备份默认的PHP-FPM配置文件:
sudo cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/www.conf.bak
sudo cp /etc/php/8.0/fpm/pool.d/www.conf /etc/php/8.0/fpm/pool.d/www.conf.bak
修改PHP 7.4和PHP 8.0的配置文件,设置不同的监听端口,以下以PHP 7.4为例,将监听端口设置为9000:
sudo nano /etc/php/7.4/fpm/pool.d/www.conf
找到以下内容:
;listen = /run/php/php7.4-fpm.sock
修改为:
listen = 127.0.0.1:9000
同理,修改PHP 8.0的监听端口为9001:
sudo nano /etc/php/8.0/fpm/pool.d/www.conf
找到以下内容:
;listen = /run/php/php8.0-fpm.sock
修改为:
listen = 127.0.0.1:9001
重启PHP-FPM服务使配置生效:
sudo systemctl restart php7.4-fpm
sudo systemctl restart php8.0-fpm
我们可以检查PHP-FPM服务是否正常运行:
sudo systemctl status php7.4-fpm
sudo systemctl status php8.0-fpm
配置Nginx服务器以支持多个PHP版本,创建一个新的Nginx配置文件:
sudo nano /etc/nginx/sites-available/php74
添加以下内容:
server {
listen 80;
server_name php74.test;
root /var/www/php74;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
同理,为PHP 8.0创建一个新的Nginx配置文件:
sudo nano /etc/nginx/sites-available/php80
添加以下内容:
server {
listen 80;
server_name php80.test;
root /var/www/php80;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass 127.0.0.1:9001;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
启用Nginx配置文件并创建软链接:
sudo ln -s /etc/nginx/sites-available/php74 /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/php80 /etc/nginx/sites-enabled/
重启Nginx服务使配置生效:
sudo systemctl restart nginx
我们可以通过访问php74.test
和php80.test
来测试不同版本的PHP了,在浏览器中输入这两个地址,如果看到PHP信息页面,说明配置成功。
至此,Ubuntu系统中多个PHP版本的安装和配置就完成了,通过以上步骤,我们可以根据项目需求灵活切换不同的PHP版本,以满足开发需求。