Debian12 安装 PHP8.3

当前 Debian12 官方源中带的 PHP 版本是8.2,而 PHP8.2 的 Active Support 到今年年底(31 Dec 2024),所以直接装8.3吧,可以用的时间长一点。

首先安装sury源

#!/bin/sh
# To add this repository please do:
if [ "$(whoami)" != "root" ]; then
    SUDO=sudo
fi
${SUDO} apt-get update
${SUDO} apt-get -y install lsb-release ca-certificates curl
${SUDO} curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
${SUDO} dpkg -i /tmp/debsuryorg-archive-keyring.deb
${SUDO} sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
${SUDO} apt-get update

注意,如果安装sury源时报错:

The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY B188E2B695BD4743

意思是系统缺少sury源的公钥。只要把公钥下载到系统就可以了,执行以下命令添加公钥:
wget -qO /etc/apt/trusted.gpg.d/sury-php.gpg https://packages.sury.org/php/apt.gpg
公钥添加完成后,执行apt update刷新包列表即可。

然后执行以下命令安装PHP8.3:

apt install -y php8.3-fpm php8.3-mysql php8.3-mbstring php8.3-curl php8.3-xml php8.3-imagick php8.3-zip php8.3-gd php8.3-intl php8.3-bcmath

如果需要支持 Laravel 框架,那么最后一个 bcmath 扩展是必须的。


同理,如果要安装php8.4,那么安装命令就是:

apt install -y php8.4-fpm php8.4-mysql php8.4-mbstring php8.4-curl php8.4-xml php8.4-imagick php8.4-zip php8.4-gd php8.4-intl php8.4-bcmath

Debian11 升级 Debian12

今天通过博客园首页链接购买了37块钱的天翼云,发现 Debian 最新版本只到11,那么就来升级一下吧。

1、更新当前系统apt updateapt full-upgrade,更新完后发现有一个包没有被升级0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.,执行apt list --upgradable -a看了一下,输出如下:

root@vm:~# apt list --upgradable -a
Listing... Done
base-files/oldstable 11.1+deb11u11 amd64 [upgradable from: 11.1+deb11u1]
base-files/now 11.1+deb11u1 amd64 [installed,upgradable to: 11.1+deb11u11]

应该是一个涉及核心系统的包,手动升级一下吧: apt-get install base-files。

2、更新完成后,更换 Debian12 的源,首先备份当前源 mv /etc/apt/sources.list /etc/apt/sources.list.old,然后写入 Debian12 的源,这里用的是清华的源:

cat > /etc/apt/sources.list << EOF
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware

deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
EOF

3、继续更新系统apt updateapt full-upgrade,期间会有一些提示信息,根据需要选择。

更新完后,查看系统版本cat /etc/debian_version, 我这里显示的是12.7,嗯,最新版本 Debian 已经更新好了。

Debian 大版本升级还是一如既往的丝滑,从来没有让我失望过👍💖。

注:本文始发于我的博客园 https://www.cnblogs.com/art ,之后重新发于本站。

Debian 更换国内清华源

1、备份原文件 mv /etc/apt/sources.list /etc/apt/sources.list.old

2、写入新源,以下是 Debian 11 的:

cat > /etc/apt/sources.list << EOF
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
 
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
 
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
 
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security/ bullseye-security main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security/ bullseye-security main contrib non-free
EOF

如果是 Debian 12:

cat > /etc/apt/sources.list << EOF
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware

deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
EOF

注:

deb 指向的是编译好的二进制软件包。
deb-src 指向的是软件的源代码包,可以使用apt source命令下载软件的源代码并自行编译。

注:本文始发于我的博客园 https://www.cnblogs.com/art ,之后重新发于本站。

PHP 常用代码片断

记录了一些PHP常用的代码片段,方便查阅使用。

<?php
// 判断请求类型
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
}

//php 判断是否为 ajax 请求
if (isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"]) == "xmlhttprequest") {
    // ajax 请求的处理方式 
} else {
    // 正常请求的处理方式 
}

// PHP设置页面编码:
header("Content-type:text/html; charset=utf-8");

header("Content-type:application/json;charset=utf-8");

// PHP获取当前时间:
date("Y-m-d H:i:s");

// PHP获取页面执行时间:
// 在脚本最后添加
echo microtime(TRUE) - $_SERVER['REQUEST_TIME_FLOAT'];

// PHP header跳转:
header("Location: http://www.baidu.com/");

// PHP清空所有session:
session_destroy();

// 获取昨天日期
date("Y-m-d", strtotime("-1 day"));

// 当前时间:
date('Y年m月d日 H点i分s秒', time());

 

 

Debian 全局安装composer

在 debian 上安装 compoer ,以便能够在任何地方随时执行compoer 命令,安装方法如下:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php composer-setup.php --install-dir=/usr/bin --filename=composer
rm -rf composer-setup.php
chmod +x /usr/bin/composer
composer --version

Composer 使用阿里云的源

(1). 配置只在当前项目生效

composer config repo.packagist composer https://mirrors.aliyun.com/composer/

取消当前项目配置

composer config --unset repos.packagist

(2)配置全局生效

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

取消全局配置

composer config -g --unset repos.packagist

Composer版本号前面`^`和`~`的区别

~1.2.3表示: 1.2.3 <= 版本号 < 1.3.0

^1.2.3表示: 1.2.3 <= 版本号 < 2.0.0

~1.2 表示: 1.2.0 <= 版本号 < 2.0.0

安装格式

composer require “扩展包:版本号”

composer require “扩展包 版本号”

composer require “predis/predis:2.0”  指定某个版本

如果版本号前有~^都是下载某个范围最新版本