Ubuntu系统多版本PHP自由切换
# 简介
在本文中,我们将解释如何使用OndřejSurýPPA在Ubuntu及其衍生产品中安装所有受支持的PHP版本,以及Apache和Nginx Web服务器的大多数请求的PHP扩展。我们还将解释如何设置要在Ubuntu系统上使用的PHP的默认版本。
# 查看Ubuntu系统当前默认安装的PHP版本
我使用的系统版本Ubuntu20.0.2
,默认源安装版本是 PHP8。如果需要安装此版本,可以执行命令sudo apt-get update
,再执行sudo apt install php
。
~ $ sudo apt show php
Package: php
Version: 2:8.0+82+ubuntu20.04.1+deb.sury.org+1
Priority: optional
Section: php
Source: php-defaults (82+ubuntu20.04.1+deb.sury.org+1)
Maintainer: Debian PHP Maintainers <team+pkg-php@tracker.debian.org>
Installed-Size: 13.3 kB
Depends: php8.0
Download-Size: 6,960 B
APT-Sources: http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 Packages
Description: server-side, HTML-embedded scripting language (default)
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
open source general-purpose scripting language that is especially suited
for web development and can be embedded into HTML.
.
This package is a dependency package, which depends on latest stable
PHP version (currently 8.0).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 使用PPA在Ubuntu上安装PHP(5.6,7.0,7.1,7.2,7.4,8.0)
执行命令,添加软件源:
// 如果不可用。
sudo apt install python-software-properties
// 上面不可用时,software-properties-common包是 python-software-properties的替代包。
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 安装不同支持的PHP版本,Apache和Nginx
# Apache服务器
sudo apt install php5.6
sudo apt install php7.0
sudo apt install php7.1
sudo apt install php7.2
sudo apt install php7.4
sudo apt install php8.0
1
2
3
4
5
6
2
3
4
5
6
# Nginx服务器
sudo apt install php5.6-fpm
sudo apt install php7.1-fpm
sudo apt install php7.2-fpm
sudo apt install php7.4-fpm
sudo apt install php8.0-fpm
1
2
3
4
5
2
3
4
5
# 安装PHP扩展
要安装任何 PHP 模块,只需指定 PHP 版本并使用自动完成功能查看所有模块,如下所示。
# 验证版本和扩展
php -v
php -m
1
2
2
# 在Ubuntu中设置默认PHP版本
可以使用update-alternatives
命令设置要在系统上使用的默认PHP版本,在设置之后,请检查 PHP 版本以确认如下:
root at ubuntu in /etc/php
$ sudo update-alternatives --set php /usr/bin/php5.6
root at ubuntu in /etc/php
$ php -v
PHP 5.6.40-50+ubuntu20.04.1+deb.sury.org+1 (cli)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with the ionCube PHP Loader + ionCube24 v10.3.9, Copyright (c) 2002-2019, by ionCube Ltd.
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 设置Apache搭配使用的PHP版本
要设置将与 Apache Web 服务器一起使用的 PHP 版本,请使用以下命令。首先禁用当前版本与a2dismod
命令,然后让你想用的一个a2enmod
命令。
root at ubuntu in /etc/php
$ sudo a2dismod php5.6
Module php5.6 disabled.
To activate the new configuration, you need to run:
systemctl restart apache2
root at ubuntu in /etc/php
$ sudo a2enmod php7.2
Considering dependency mpm_prefork for php7.2:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php7.2:
Enabling module php7.2.
To activate the new configuration, you need to run:
systemctl restart apache2
root at ubuntu in /etc/php
$ systemctl restart apache2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 设置系统默认PHP版本并查找配置文件
从一个版本切换到另一个版本后,您可以通过运行以下命令找到您的PHP配置文件。
root at ubuntu in /etc/php
$ sudo update-alternatives --set php /usr/bin/php5.6
root at ubuntu in /etc/php
$ php -i | grep "Loaded Config"
Loaded Configuration File => /etc/php/5.6/cli/php.ini
1
2
3
4
5
6
2
3
4
5
6
# 查看已安装的PHP版本
root at ubuntu in /etc/php
$ ls
5.6 7.0 7.1 7.2 7.4 8.0
1
2
3
2
3
系统默认使用的 PHP 版本可以与 Apache 使用的 PHP 版本不同。
上次更新: 2023/09/16, 02:28:15