斐讯 N1 Debian9 安装 php8.1 和 composer
Debian 9 的源 php 版本还是 php7.0
$ sudo dpkg --get-selections |grep php
php-cli install
php-common install
php-zip install
php7.0-cli install
php7.0-common install
php7.0-json install
php7.0-opcache install
php7.0-readline install
php7.0-zip install
因为我要在 N1 这台机器上构建 arm64 架构的兰空图床 docker image,所以需要安装 php8
,现决定安装 php8.1
卸载 php7.0
$ sudo apt remove php7.0-*
一、安装 php8.1 以及扩展
因为官方源没有 php8.1,所以需要定制添加一个源。于是参考了这篇 文章
-
安装基础软件包
$ sudo apt update && sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2
-
添加 sury 的软件源
$ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
-
导入仓库的 key
$ wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -
我在 N1 上执行这一步时遇到错误 gpg: no valid OpenPGP data found. 但是 amd64 的 debian11 上就正常.
在执行
sudo apt update
遇到错误GPG error: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY xxxx
,Ign:7 https://packages.sury.org/php stretch InRelease
这和我之前遇到的问题一样,读者可以参考 此文
解决这个问题
$ gpg --keyserver keyserver.ubuntu.com --recv B188E2B695BD4743 && gpg --export --armor B188E2B695BD4743 | sudo apt-key add -
-
更新索引
导入成功后再次更新索引
$ sudo apt update
-
安装 php8.1 以及一些扩展
$ sudo apt install -y php8.1 php-cli php-common php-zip php8.1-curl php8.1-xml
-
查看 php 版本
成功安装后查看 php 版本
$ php -v PHP 8.1.5 (cli) (built: Apr 22 2022 04:53:50) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.5, Copyright (c) Zend Technologies with Zend OPcache v8.1.5, Copyright (c), by Zend Technologies
二、安装 composer
主要参考 文章
-
安装基础依赖
$ sudo apt install curl php8.1-cli php8.1-mbstring git unzip
php-cli php-mbstring
php-cli 是 command-line interpreter for the PHP scripting language (default),安装了 8.1 的之后可以不用安装。mbstring 扩展也是 MBSTRING module for PHP [default],不用安装。
-
下载并安装 composer
$ curl -sS https://getcomposer.org/installer -o composer-setup.php # 通过 sha384 获取这个文件的摘要信息 $ sha384sum composer-setup.php # 如下输出 55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae composer-setup.php # 定义临时的 HASH 变量 $ HASH=55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae # 校验安装器是否合法 $ php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" # 如果输出 Installer verified 说明下载的文件完整性 ok # 全局安装 composer,安装后程序位于 /usr/local/bin/composer $ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer # 输出可能如下 All settings correct for using Composer Downloading... Composer (version 2.3.5) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
执行 composer 输出
dk@n1-debian:/etc/php$ composer
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.3.5 2022-04-13 16:43:00
至此 php8.1 和 composer 已安装完成。下一篇文章将构建兰空图床的 arm64 docker 镜像,因为我找遍了全网发现没人构建 arm64
的镜像,只有几个 amd64
的镜像可用。