惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
Vercel News
Vercel News
Recent Announcements
Recent Announcements
B
Blog RSS Feed
Y
Y Combinator Blog
M
MIT News - Artificial intelligence
MongoDB | Blog
MongoDB | Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
D
Docker
Jina AI
Jina AI
IT之家
IT之家
人人都是产品经理
人人都是产品经理
L
LangChain Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
MyScale Blog
MyScale Blog
博客园 - 叶小钗
The GitHub Blog
The GitHub Blog
The Cloudflare Blog
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog

Allen Hua 的网络博客

由于 Linux 桌面没有一个好用的天气程序就写了一个跨平台的CheckitoutWeather 给 caesium-image-compressor 图片压缩程序构建了 Linux AppImage v2.8.5 最新版 debian13(debian trixie)安装了nvidia闭源驱动后从x11切换到wayland的方法 山间摩旅追风,偶遇一场绚烂晚霞 最近使用debian系统的一些心得 机械革命无界14Pro笔记本debian forky成功驱动内置扬声器和麦克风 记录 typecho 1.2.0 升级到 1.3.0 过程 开发了一款openwrt插件:文本剪贴板 解决机械革命笔记本内屏高刷240Hz闪屏问题 使用 Java 写了一个局域网端口扫描器 - Allen Hua 的网络博客 openwrt使用外置根extroot机制扩展根分区大小 - Allen Hua 的网络博客 将机场ss节点批量转换成ss字符串链接批量添加到passwall - Allen Hua 的网络博客 给机械革命钛钽plus换屏:NY2换成NZ2 - Allen Hua 的网络博客 记录一次pve宿主机和上面的debian虚机无故down机事件 - Allen Hua 的网络博客 给图床部署cdn腾讯云的edgeone并排查Cache-Control max-age 3600的问题 - Allen Hua 的网络博客 从高山草甸到徽派古村:武功山反穿与皖浙赣自驾行记 - Allen Hua 的网络博客 增程器就是充电宝?别被忽悠了 - Allen Hua 的网络博客 浦口龙虎巷扫街,记录人间真实 博客图片压缩方案更新|AVIF|WebP|MozJPEG|标准JPEG Windows 电脑使用 Obs Studio 录制各个网站视频/桌面画面教程 为typecho博客添加latex支持 新能源汽车之纯电车使用交流慢充和直流快充的充电损耗对比 2025年3月更新全国5A景区名录 2025最新查看小米/红米手机电池健康度和循环次数方法 完美解决 seafile FILE_SERVER_ROOT 配置导致的内网外网不能同时访问和上传下载的问题 纯css实现typecho博客文章文字spoiler剧透效果 我对Typecho Facile主题的一些修改,图片懒加载优化,样式定制 2024年8月我的宜昌 - 重庆 - 川西小环线自驾旅行分享 2022年打卡南京市区人防工程纳凉点 2024年带着A7C2+腾龙28-200 再次来到红山森林动物园
斐讯 N1 Debian9 安装 php8.1 和 composer
Allen Hua · 2022-05-01 · via Allen Hua 的网络博客
阅读量:2259

warning: 这篇文章距离上次修改已过1486天,其中的内容可能已经有所变动。

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,所以需要定制添加一个源。于是参考了这篇 文章

  1. 安装基础软件包

    $ sudo apt update && sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2
  2. 添加 sury 的软件源

    $ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
  3. 导入仓库的 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 xxxxIgn:7 https://packages.sury.org/php stretch InRelease

    这和我之前遇到的问题一样,读者可以参考 此文

    解决这个问题

    $ gpg --keyserver keyserver.ubuntu.com --recv B188E2B695BD4743 && gpg --export --armor B188E2B695BD4743 | sudo apt-key add -
  4. 更新索引

    导入成功后再次更新索引

    $ sudo apt update
  5. 安装 php8.1 以及一些扩展

    $ sudo apt install -y php8.1 php-cli php-common php-zip php8.1-curl php8.1-xml
  6. 查看 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

主要参考 文章

  1. 安装基础依赖

    $ 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],不用安装。

  2. 下载并安装 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 的镜像可用。