在 Debian 10/11 上使用 ppa 源升级安装 PHP 8.1

By 大伟哥 | 2022-04-06,周三, 09:58

Drupal 9 虽然支持 PHP 7.3 和 PHP 7.4,但 Drupal 官方已经不推荐了,现在推荐的是PHP 8.0 和 PHP 8.1,至于后面发布的 Drupal 10, 则要求必须是 PHP 8.1 版本以上,连8.0都不支持了。为了更好的性能和更平滑的版本升级,大伟哥决定把现在用的PHP 7.3/7.4 升级到面向未来的 PHP 8.1。

而大伟哥目前使用的 Debian 10 和 Debian 11 默认源里是没有 PHP 8.0/8.1 的,要升级到 PHP 8.1, 有以下三种方法:

1. 下载最新的 PHP 8.1 源代码编译安装。这种方式看起来极客,用起来却比较麻烦,对于大伟哥这样的懒人不太合适,比较适合那种享受把所有的事情都掌控在自己手里的感觉的朋友选用。

2.使用服务器管理脚本或者控制面板。这种方式用起来也不错,其中脚本工具比较简单,节省服务器资源,而控制面板可以图形化操作,更加适合对服务器了解不多的新手。这里给大家推荐两个国人开发有中文支持的工具,一个是脚本工具OneinStack, 另一个是安全高效的服务器运维面板宝塔

3.添加含有 PHP 新版本的 Debian 源,后续使用最习惯的 Debian 包管理工具 apt 进行安装和升级。这是最不需要更改使用习惯的方法,可以让大伟哥花最少的时间和精力放在系统维护上。至于 Debian 的 PHP 源,我们选择大家都推荐的 deb.sury.org,也就是大名鼎鼎的 Ondřej Surý PHP仓库。Ondřej Surý是资深的 Debian 开发者,从PHP 5时期就开始负责 Debian 的PHP软件的打包与维护更新,可以说现在Debian 和 Ubuntu Server稳定版里的 PHP 软件包基本上都是出自 Ondřej Surý 之手,因此使用这个ppa源在安全性上是没有问题的。

以下是安装过程:

一、更新 Debian 系统

sudo apt update && sudo apt upgrade -y

二、安装必要的依赖包:

sudo apt-get install ca-certificates apt-transport-https software-properties-common wget curl lsb-release -y

三、下载安装 Ondřej Surý PHP 仓库的GPG密钥并导入:

curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x

然后再次更新 Debian 源:

sudo apt update
sudo apt upgrade

四、大伟哥使用的是 Apache 配合 PHP-FPM 模式运行 Drupal, 因此安装 Apache 的 fcgid 模块、 PHP 8.1 及 Drupal 需要的其他模块:

sudo apt install libapache2-mod-fcgid php8.1 php8.1-common php8.1-fpm php8.1-cli php8.1-xml php8.1-mysql php8.1-mbstring php8.1-curl php8.1-gd php8.1-opcache php8.1-imagick php8.1-apcu php8.1-zip

五、启动php8.1-fpm, apache 的 fcgi 和 php8.1-fpm 配置,停用原来的 php7.3-fpm 配置,最后重启 Apache 服务:

sudo service php8.1-fpm start
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.1-fpm
sudo a2disconf php7.3-fpm
sudo service apache2 restart

这样,Debian 系统下的 PHP 8.1 就升级安装完成了。

添加新评论

此字段内容将保密,不会被其他人看见。
  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。
验证码
发布评论前,请通过下面的验证,以免被当作垃圾评论机器人屏蔽。
10 + 2 =
计算出这道简单的算术题并键入答案。例如、1+3,就输入 4。