Debian 默认官方源 sources.list

鉴于很多预装的VPS为厂商源而非官方源,在此记录一下官方源。

先备份apt源配置

mv /etc/apt/sources.list /etc/apt/sources.list.old

编辑sources.list文件

vi /etc/apt/sources.list

Debian 12/Bookworm

deb http://deb.debian.org/debian bookworm main non-free-firmware
deb-src http://deb.debian.org/debian bookworm main non-free-firmware

deb http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware
deb-src http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware

deb http://deb.debian.org/debian bookworm-updates main non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates main non-free-firmware

Debian 11/Bullseye

deb http://deb.debian.org/debian bullseye main
deb-src http://deb.debian.org/debian bullseye main

deb http://deb.debian.org/debian-security/ bullseye-security main
deb-src http://deb.debian.org/debian-security/ bullseye-security main

deb http://deb.debian.org/debian bullseye-updates main
deb-src http://deb.debian.org/debian bullseye-updates main

如果需要 contrib 、 non-free 和 non-free-firmware 组件,请在 main 之后添加 contrib non-free non-free-firmware

Debian 12/Bookworm

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware

deb http://deb.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware

deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware

Debian 11/Bullseye,无 non-free-firmware

deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free

deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free

deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free

如果需要 Backports、contrib 和非自由组件

Debian 12/Bookworm,请添加bookworm-backports

deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware

Debian 11/Bullseye,请添加bullseye-backports

deb http://deb.debian.org/debian bullseye-backports main contrib non-free
deb-src http://deb.debian.org/debian bullseye-backports main contrib non-free

其它更多请参考官方说明:

https://wiki.debian.org/SourcesList

另外,如果想要从Debian 11 升级到 Debian 12 的,可以查看这篇文章,感谢原文作者。

使用WP CLI批量更新WordPress站点

场景:一台Debian机器下有500+worpdrsss站点,需将所有站点的wordpress程序、主题、插件,还有Woocommerce商店都更新到最新版。

首先 sudo apt update && apt upgrade -y 更新一下。

安装 WP CLI

#安装 WP CLI
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

#检测phar文件工作状态
php wp-cli.phar --info

#给wp-cli.phar文件增加可执行权限,并调整为可使用wp命令来执行
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

#验证
wp --info

#输出如下
OS:     Linux 5.10.0-18-amd64 #1 SMP Debian 5.10.140-1 (2022-09-02) x86_64
Shell:  /bin/bash
PHP binary:     /www/server/php/80/bin/php
PHP version:    8.0.20
php.ini used:   /www/server/php/80/etc/php-cli.ini
MySQL binary:   /usr/bin/mysql
MySQL version:  mysql  Ver 14.14 Distrib 5.7.39, for Linux (x86_64) using  EditLine wrapper
SQL modes:
WP-CLI root dir:        phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:      phar://wp-cli.phar/vendor
WP_CLI phar path:       /root
WP-CLI packages dir:
WP-CLI cache dir:       /root/.wp-cli/cache
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.7.1

#更新 wp cli
wp cli update

执行批量更新

假设所有网站存放路径为 /www/web/ ,方法如下:

新建以下 update_wp.sh 文件

#!/bin/bash

for dir in /www/web/*; do
  if [[ -d "$dir" ]]; then
    echo "正在处理: $dir"
    cd "$dir" || { echo "错误: 无法切换到 $dir 目录"; continue; }
    wp core update || echo "注意: $dir wp内核升级失败"
    wp theme update --all || echo "注意: $dir 主题升级失败"
    wp plugin update --all || echo "注意: $dir 插件升级失败"
    wp rewrite flush || echo "注意: $dir 的rewrite刷新失败"
    echo "完成升级: $dir"
    echo "--------------------"
  fi
done
#给执行权限
chmod +x update_wp.sh

#执行脚本
./update_wp.sh

如果是用root用户执行的,会提示命令后面需要加上 --allow-root

#!/bin/bash

for dir in /www/web/*; do
  if [[ -d "$dir" ]]; then
    echo "正在处理: $dir"
    cd "$dir" || { echo "错误: 无法切换到 $dir 目录"; continue; }
    wp core update --allow-root || echo "注意: $dir wp内核升级失败"
    wp theme update --all --allow-root || echo "注意: $dir 主题升级失败"
    wp plugin update --all --allow-root || echo "注意: $dir 插件升级失败"
    wp rewrite flush --allow-root || echo "注意: $dir 的rewrite刷新失败"
    echo "完成升级: $dir"
    echo "--------------------"
  fi
done

有安装woocommer的需要再加一条商店数据库的更新

wp wc update || echo "注意: $dir woocommerce数据库更新失败"

以下为老方法,不建议使用

cd /www/web ,然后 vim wpexec.sh,内容如下,保存。

#!/bin/bash
DIR=`ls .`
for dir in ${DIR};do
	if [ -d ${dir} ];then
		echo $dir
		cp wpup.sh ${dir}
		cd ${dir}
		pwd
		./wpup.sh 
		cd ..
	fi
done

vim wpup.sh 内容如下,保存。这里要注意一下权限的问题,建议先单个执行wp core update看下。

#!/bin/bash
#更新wordrepss
wp core update --allow-root
#更新wordpress db
wp core update-db --allow-root
# 更新插件,排除 akismet和hello
wp plugin update --all --exclude=akismet,hello --allow-root
# 更新主题
wp theme update --all --allow-root
# 更新woocommerce db
wp wc update --allow-root

然后给文件增加可执行权限

chmod +x wpexec.sh
chmod +x wpup.sh

执行脚本

bash wpexec.sh

最后删除这2个文件

find . -maxdepth 2 -name 'wp*.sh' -delete

参考:

https://wp-cli.org/
https://developer.wordpress.org/cli/commands/
https://github.com/woocommerce/woocommerce/wiki/Upgrading-the-database-using-WP-CLI
https://blog.csdn.net/robinblog/article/details/8853628

如何在 Debian 上安装 Docker

下面以Debian 11为例安装Docker社区版。

来源:https://docs.docker.com/engine/install/debian/

在Debian 11上安装 Docker

删除旧版本

首先,卸载旧版本的 Docker 软件包,以及系统中的依赖项。但是,此卸载不会删除 /var/lib/docker/ 目录下的现有 Docker 卷、镜像和网络。

$ sudo apt-get remove docker docker-engine docker.io containerd runc

设置 Docker 存储库

更新apt包索引并安装包,以允许apt通过HTTPS使用存储库:

$ sudo apt-get update

$ sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

将 Docker 的 GPG 密钥添加到您的系统。

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

通过运行以下命令,将 Docker 存储库添加到系统。

$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装 Docker 引擎

更新apt包索引,安装最新版本的Docker Engine、containd和Docker Compose,或者执行下一步安装具体版本:

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

安装后检查 Docker 版本。

docker -v

输出:

Docker version 20.10.8, build 3967b7d

验证 Docker 安装

通过运行hello-world映像来验证Docker引擎是否正确安装。

$ sudo docker run hello-world