docker run -d -p 8080:8080 --name xianyu-auto-reply --privileged=true registry.cn-shanghai.aliyuncs.com/zhinian-software/xianyu-auto-reply:1.0
19:10
pre[class*="language-"] {
background: #2d2d2d !important;
color: #f8f8f2 !important;
padding: 10px;
border-radius: 10px;
overflow-x: auto;
margin-top: 8px;
font-size: 13px;
white-space: pre-wrap;
word-wrap: break-word;
max-height: 400px;
}
17:22
pk8kKC4abUsTueuqEzQqxX6IF8aG0OsfOBNbzrYSEWo=
17:27
MC60H-DWHD5-H80U9-6V85M-8280D
18:31
# 创建数据目录
mkdir -p xianyu-auto-reply
# 一键启动容器
docker run -d \
-p 8080:8080 \
-v $PWD/xianyu-auto-reply/:/app/data/ \
--name xianyu-auto-reply \
--privileged=true \
registry.cn-shanghai.aliyuncs.com/zhinian-software/xianyu-auto-reply:1.0
# 访问系统
# http://localhost:8080
16:58
ssh Timx@192.168.0.123 5666
14:18
version: '3.8'
services:
xianyu-auto-reply:
image: registry.cn-shanghai.aliyuncs.com/zhinian-software/xianyu-auto-reply:1.0
container_name: xianyu-auto-reply
restart: always
ports:
- "8080:8080"
volumes:
- ./xianyu-auto-reply:/app/data
privileged: true
environment:
- TZ=Asia/Shanghai
network_mode: bridge
17:33
version: '3.8'
services:
xianyu-auto-reply:
image: registry.cn-shanghai.aliyuncs.com/zhinian-software/xianyu-auto-reply:1.0
container_name: xianyu-auto-reply
restart: always
ports:
- "8080:8080"
volumes:
- ./xianyu-auto-reply:/app/data
privileged: true
environment:
- TZ=Asia/Shanghai
network_mode: bridge
飞牛nas成功
18:03
version: '3.8'
services:
xianyu-auto-reply:
image: registry.cn-shanghai.aliyuncs.com/zhinian-software/xianyu-auto-reply:1.0
container_name: xianyu-auto-reply
restart: always
ports:
- "8080:8080"
volumes:
- ./xianyu-auto-reply:/app/data
privileged: true
environment:
- TZ=Asia/Shanghai
network_mode: bridge
18:11
version: '3.8'
services:
xianyu-auto-reply:
image: registry.cn-shanghai.aliyuncs.com/zhinian-software/xianyu-auto-reply:1.0
container_name: xianyu-auto-reply
restart: always
ports:
- "8080:8080"
volumes:
- ./xianyu-auto-reply:/app/data
privileged: true
environment:
- TZ=Asia/Shanghai
network_mode: bridge
18:12
基于飞牛os用docker compose部署一个存储切片m3u8的可视化页面,上传的切片支持返回直连,让外界内网穿透访问并播放视频
11:05
基于飞牛os用docker compose部署一个存储切片m3u8的可视化页面,上传的切片支持返回直连,让外界内网穿透访问并播放视频,token支持外部对接上传,所有功能需要登入账号密码其他我没想到的问题你可自主搜索发挥
11:09
在飞牛os上,用docker compose部署一个存储切片m3u8的可视化页面,上传的切片支持返回直连,让外界内网穿透访问并播放视频,项目支持生成token让外部对接上传,所有功能需要登入账号密码其他我没想到的问题你可自主搜索发挥
11:22
在飞牛os上,用docker compose部署一个存储切片m3u8的可视化页面,上传的切片返回直连m3u8,让外界内网穿透访问并播放视频,项目支持生成token让外部对接上传,所有功能需要登入账号密码
11:23
用php部署一个存储切片m3u8的可视化页面,上传的切片返回直连m3u8,让外部访问并播放视频,项目支持生成token让外部对接上传,所有功能需要登入账号密码
11:25
Timx@192.168.36.130
09:38
ssh Timx@192.168.36.130
10:03
# 查看 www 目录及文件权限
ls -la www/
# 修复权限(允许读取和执行)
sudo chmod -R 755 www/ # 递归设置权限
sudo chown -R $USER:$USER www/ # 确保当前用户拥有所有权
12:49
ssh Timx@192.168.0.116
11:39
方法 2:如果方法 1 失败(可能是纯 Debian 系统)
bash
# 添加Debian专用的PHP源
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
# 添加源的GPG密钥
wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -
# 更新源列表
sudo apt-get update
13:40
三、重新安装 PHP 8.0 及 FPM
bash
# 安装PHP 8.0核心组件和FPM
sudo apt-get install -y php8.0 php8.0-fpm
# 安装必要的扩展(视频上传代码需要)
sudo apt-get install -y php8.0-cli php8.0-common php8.0-zip php8.0-curl
# 验证安装
php -v # 应显示PHP 8.0.x版本信息
13:40
# 安装PHP 8.0核心组件和FPM
sudo apt-get install -y php8.0 php8.0-fpm
# 安装必要的扩展(视频上传代码需要)
sudo apt-get install -y php8.0-cli php8.0-common php8.0-zip php8.0-curl
# 验证安装
php -v # 应显示PHP 8.0.x版本信息
13:41
四、启动并设置 PHP-FPM 开机自启
bash
# 启动服务
sudo systemctl start php8.0-fpm
# 设置开机自启
sudo systemctl enable php8.0-fpm
# 检查服务状态
sudo systemctl status php8.0-fpm
13:42
#!/bin/bash
# 脚本名称: nginx.sh
# 作者: Brian
# 版本: 1.2
# 描述: 此脚本用于在飞牛系统上快速配置Nginx网站服务,支持PHP和MySQL。
# 使用方法:将脚本文件放在网站根目录,运行bash nginx.sh,根据提示设置网站名称和端口即可
# 网站配置模块
configure_website() {
# 配置网站 #
WebLocal=$PWD # 网站根目录
# 请求用户输入
read -p "请输入网站名称(建议英文,例如:test):" WebName
while true; do
read -p "请输入网站端口(例如:8091):" Web_PORT
# 检查端口是否为数字
if ! [[ "$Web_PORT" =~ ^[0-9]+$ ]]; then
echo "错误:端口号必须为数字,请重新输入。"
continue
fi
# 检查端口范围
if [ "$Web_PORT" -lt 1 ] || [ "$Web_PORT" -gt 65535 ]; then
echo "错误:端口号必须在 1 到 65535 之间,请重新输入。"
continue
fi
# 检查端口是否被占用
if ss -tuln | grep -q ":$Web_PORT"; then
echo "错误:端口 $Web_PORT 已被占用,请选择其他端口。"
continue
fi
# 如果所有检查通过,退出循环
break
done
# 修改权限
sudo chown -R www-data:www-data $WebLocal
sudo chmod -R 755 $WebLocal
# 创建Nginx配置文件
cat > /etc/nginx/sites-available/$WebName <<EOF
server {
listen $Web_PORT default_server;
listen [::]:$Web_PORT default_server;
root $WebLocal;
index index.php index.html index.htm;
server_name _;
location / {
try_files \$uri \$uri/ =404;
}
# 配置 PHP 支持
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
}
# 禁止访问 .htaccess 文件
location ~ /\.ht {
deny all;
}
}
EOF
# 创建符号链接
sudo rm -f /etc/nginx/sites-enabled/$WebName # 删除已存在的符号链接
sudo ln -s /etc/nginx/sites-available/$WebName /etc/nginx/sites-enabled/
# 检查Nginx配置
sudo nginx -t
if [ $? -ne 0 ]; then
echo "错误:Nginx 配置检查失败,请检查配置文件。"
exit 1
fi
# 重启Nginx
sudo systemctl restart nginx
# 创建网站信息文件
INFO_FILE="${WebLocal}/website_info"
echo "网站名称: $WebName" > "$INFO_FILE"
echo "网站端口: $Web_PORT" >> "$INFO_FILE"
echo "网站根目录: $WebLocal" >> "$INFO_FILE"
echo "创建时间: $(date)" >> "$INFO_FILE"
chmod 644 "$INFO_FILE"
echo "配置完成,网站已启动。"
echo "访问地址:http://<服务器IP>:$Web_PORT"
echo "网站信息已保存到: $INFO_FILE"
}
# 检查 Nginx 是否已经在运行
if systemctl is-active --quiet nginx; then
echo "Nginx 已经在运行,跳过更新和升级步骤,直接配置网站。"
configure_website
exit 0
else
echo "Nginx 未运行,开始检查和安装..."
# 更新系统包列表
echo "正在更新系统包列表..."
sudo apt update
# 升级已安装的包
echo "正在升级已安装的包..."
sudo apt upgrade -y
# 检查是否已安装 nginx
if ! command -v nginx &> /dev/null; then
echo "Nginx 未安装,正在安装 Nginx..."
while true; do
read -p "请输入 Nginx 监听端口(例如:8090):" Nginx_PORT
# 检查端口是否为数字
if ! [[ "$Nginx_PORT" =~ ^[0-9]+$ ]]; then
echo "错误:端口号必须为数字,请重新输入。"
continue
fi
# 检查端口范围
if [ "$Nginx_PORT" -lt 1 ] || [ "$Nginx_PORT" -gt 65535 ]; then
echo "错误:端口号必须在 1 到 65535 之间,请重新输入。"
continue
fi
# 检查端口是否被占用
if ss -tuln | grep -q ":$Nginx_PORT"; then
echo "错误:端口 $Nginx_PORT 已被占用,请选择其他端口。"
continue
fi
# 如果所有检查通过,退出循环
break
done
echo "端口 $Nginx_PORT 可用,继续配置 Nginx..."
sudo apt install nginx -y
# 修改 Nginx 配置文件监听端口
NGINX_CONF="/etc/nginx/sites-available/default"
if [ -f "$NGINX_CONF" ]; then
echo "修改 Nginx 配置文件以监听 $Nginx_PORT 端口..."
sudo sed -i "s/80 default_server/$Nginx_PORT default_server/g" "$NGINX_CONF"
else
echo "Nginx 配置文件 $NGINX_CONF 不存在,请检查路径。"
exit 1
fi
else
echo "Nginx 已安装,跳过安装。"
fi
# 检查是否已安装 php-fpm
if ! dpkg -l | grep -q php8.2-fpm; then
echo "php8.2-fpm 未安装,正在安装 php8.2-fpm..."
sudo apt install php8.2-fpm -y
else
echo "php8.2-fpm 已安装,跳过安装。"
fi
# 检查是否已安装 php-mysql
if ! dpkg -l | grep -q php-mysql; then
echo "php-mysql 未安装,正在安装 php-mysql..."
sudo apt install php-mysql -y
else
echo "php-mysql 已安装,跳过安装。"
fi
# 启动 Nginx 和 php8.2-fpm
sudo systemctl start nginx
sudo systemctl start php8.2-fpm
# 设置 Nginx 和 php8.2-fpm 开机自启
sudo systemctl enable nginx
sudo systemctl enable php8.2-fpm
# 查询 Nginx 和 php8.2-fpm 状态
echo "Nginx 状态:"
sudo systemctl status nginx --no-pager
echo "php8.2-fpm 状态:"
sudo systemctl status php8.2-fpm --no-pager
# 配置网站
configure_website
fi
15:14
b8c189eaf1675aed179977de394863c8
16:43
方案 2:修改站点专属配置(更推荐,不影响全局)
如果你的项目在 /etc/nginx/sites-available/ 下有单独配置(比如默认的 default 文件),优先修改这个,避免影响其他站点:
进入站点配置文件夹(这一步 cd 是对的):
bash
cd /etc/nginx/sites-available/
查看文件夹内的配置文件(确认你的站点配置名,通常是 default):
bash
ls # 列出所有文件,会看到类似 default、your-site 等文件名
编辑站点配置文件(以 default 为例,若你的文件名不同,替换成实际名称):
bash
sudo vim default # 或 sudo nano default
添加参数到 server { ... } 块内:
找到 server { ... } 块(每个站点配置的核心),在里面添加大文件限制参数:
nginx
server {
listen 80;
server_name 你的域名或IP; # 原有配置
root /var/www/你的项目目录; # 原有配置
# 新增:大文件上传限制(放在 server 块内任意位置,推荐开头)
client_max_body_size 500M;
client_body_timeout 1800s;
client_header_timeout 1800s;
# 其他原有配置(如 location / { ... } 等,不要删除)
}
保存并退出(同方案 1 的保存步骤)。
第三步:验证配置并重启 Nginx
检查配置是否有误(关键步骤,避免修改错误导致 Nginx 启动失败):
bash
sudo nginx -t
若提示 nginx: configuration file /etc/nginx/nginx.conf test is successful,说明配置正确;
若提示错误,按错误信息修改(比如括号不匹配、参数拼写错误)。
重启 Nginx 使配置生效:
bash
sudo systemctl restart nginx
确认 Nginx 启动正常:
bash
sudo systemctl status nginx
看到 active (running) 说明重启成功。
18:18
ssh Timx@192.168.1.4
11:32
ssh Timx@192.168.1.5
13:05
user www-data;
worker_processes auto;
pid /run/nginx.pid;
error_log /var/log/nginx/error.log;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
##
# Gzip Settings
##
gzip on;
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}
14:13
sudo nano /etc/nginx/sites-available/ts
14:32
/etc/nginx/nginx.conf
15:02
sudo nano /etc/nginx/nginx.conf
15:02
系统版本 发布时间 硬件支持范围 主要新功能 支持状态
macOS Catalina 10.15.7 (19H15) 2019 年 MacBook (2015+),iMac (2012+),Mac Pro (2013+) - 彻底淘汰 32 位应用
- iTunes 拆分为 Music/TV/Podcasts
- Sidecar(iPad 当副屏) 已停止更新
macOS Big Sur 11.7.10 (20G1427) 2020 年 MacBook (2015+),MacBook Air (2013+),MacBook Pro (2013+),iMac (2014+),Mac mini (2014+),Mac Pro (2013+) - 全新 UI 风格(类似 iOS)
- 首个支持 Apple Silicon (M1)
- 控制中心 仅安全更新
macOS Monterey 12.7.4 (21H1123) 2021 年 MacBook (2016+),MacBook Air (2015+),MacBook Pro (2015+),iMac (2015+),Mac mini (2014+),Mac Pro (2013+) - 通用控制 (Universal Control)
- 快捷指令 (Shortcuts)
- AirPlay to Mac 仅安全更新
macOS Ventura 13.7.5 (22H527) 2022 年 MacBook (2017+),MacBook Air (2018+),MacBook Pro (2017+),iMac (2017+),Mac mini (2018+),Mac Pro (2019+),iMac Pro (2017) - 舞台管理器 (Stage Manager)
- 连续互通相机 (iPhone 当 Mac 摄像头)
- 系统设置 UI 改版 最新安全更新中
macOS Sonoma 14.7.5 (23H527) 2023 年 MacBook Air (2018+),MacBook Pro (2018+),iMac (2019+),Mac mini (2018+),Mac Pro (2019+),Mac Studio (2022+) - 桌面小组件 (Widget)
- 游戏模式 (Game Mode)
- Safari 用户配置文件
- 改进视频会议效果 最新正式版
macOS Sequoia 15.4 (24E248) 2024 年 预计仅支持 2019+ Intel 和所有 Apple Silicon(M 系列) - iPhone 镜像 (iPhone Mirroring)
- Apple Intelligence (AI 功能, 限新设备)
- 多屏幕小组件优化
00:16
🔹 1. 发布时间 & 支持周期
macOS Catalina (10.15, 2019年发布)
最后一个支持 Intel 仅64位 的系统,不再支持 32 位应用。
目前已停止官方安全更新(除非特例)。
macOS Big Sur (11, 2020年发布)
首次大改 UI(类似 iOS/iPadOS 风格)。
支持 Apple Silicon (M1 芯片) 的首个系统。
macOS Monterey (12, 2021年发布)
引入 通用控制 (Universal Control)、快捷指令 (Shortcuts)。
加强 M1 支持。
macOS Ventura (13, 2022年发布)
新功能:舞台管理器 (Stage Manager)、连续互通相机 (Continuity Camera)。
停止对 Intel 一些老机型支持。
macOS Sonoma (14, 2023年发布)
新功能:桌面小组件(Widget)、游戏模式 (Game Mode)。
Safari 用户配置文件、多项安全增强。
macOS Sequoia (15, 2024年发布)
新功能:iPhone 镜像 (iPhone Mirroring)、AI 辅助功能 (Apple Intelligence,部分机型)。
多屏幕小组件支持更完善。
🔹 2. 硬件支持
Catalina:支持 2012-2013 年的 Mac。
Big Sur:最低支持到 2013/2014 款 Mac。
Monterey:最低支持到 2014/2015 款 Mac。
Ventura:砍掉了 2014–2016 部分 Intel Mac,要求至少 2017。
Sonoma:只支持 2018 年后的 Mac。
Sequoia:预计继续砍 Intel,主要面向 Apple Silicon。
🔹 3. 功能差异
Catalina:32 位彻底淘汰;iTunes 被拆成 Apple Music、Apple TV、Apple Podcasts。
Big Sur:UI 重新设计,首个 M1 芯片支持。
Monterey:通用控制、快捷指令。
Ventura:舞台管理器、连续互通相机。
Sonoma:桌面小组件、游戏模式。
Sequoia:iPhone 镜像、AI 功能(仅限新设备)。
🔹 4. 安全 & 更新
新系统(Ventura 及以后) 有更快的 快速安全响应更新 (Rapid Security Response)。
老系统(Catalina/Big Sur) 基本只收最后的安全补丁,不再新增功能。
00:16
#!/bin/bash
# 脚本名称: nginx.sh
# 作者: Brian
# 版本: 1.5
# 描述: 飞牛系统快速配置Nginx网站,支持PHP、MySQL和HLS跨域,增加上传大小限制
# 使用方法:放在网站根目录,运行 bash nginx.sh
configure_website() {
WebLocal=$PWD # 网站根目录
read -p "请输入网站名称(建议英文,例如:test):" WebName
while true; do
read -p "请输入网站端口(例如:8091):" Web_PORT
if ! [[ "$Web_PORT" =~ ^[0-9]+$ ]]; then
echo "错误:端口号必须为数字,请重新输入。"
continue
fi
if [ "$Web_PORT" -lt 1 ] || [ "$Web_PORT" -gt 65535 ]; then
echo "错误:端口号必须在 1 到 65535 之间,请重新输入。"
continue
fi
if ss -tuln | grep -q ":$Web_PORT"; then
echo "错误:端口 $Web_PORT 已被占用,请选择其他端口。"
continue
fi
break
done
# 设置上传大小限制(可根据需要修改这些值)
UPLOAD_MAX_SIZE="100M"
POST_MAX_SIZE="100M"
MEMORY_LIMIT="256M"
sudo chown -R www-data:www-data $WebLocal
sudo chmod -R 755 $WebLocal
# 删除默认站点,避免端口冲突
sudo rm -f /etc/nginx/sites-enabled/default
# 创建Nginx配置文件
cat > /etc/nginx/sites-available/$WebName <<EOF
server {
listen $Web_PORT default_server;
listen [::]:$Web_PORT default_server;
root $WebLocal;
index index.php index.html index.htm;
server_name _;
# Nginx 上传限制
client_max_body_size $UPLOAD_MAX_SIZE;
client_body_buffer_size 16M;
location / {
try_files \$uri \$uri/ =404;
}
# PHP 支持
location ~ \.php\$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
# PHP 上传参数
fastcgi_param PHP_VALUE "upload_max_filesize=$UPLOAD_MAX_SIZE
post_max_size=$POST_MAX_SIZE
memory_limit=$MEMORY_LIMIT";
}
# 禁止访问 .ht 文件
location ~ /\.ht {
deny all;
}
# HLS 跨域配置
location ~* \.(m3u8|ts)$ {
add_header Access-Control-Allow-Origin * always;
add_header Access-Control-Allow-Methods 'GET, OPTIONS' always;
add_header Access-Control-Allow-Headers 'Range' always;
add_header Access-Control-Expose-Headers 'Content-Length, Content-Range' always;
if (\$request_method = OPTIONS) {
add_header Content-Length 0;
add_header Content-Type text/plain;
return 204;
}
try_files \$uri =404;
}
}
EOF
# 配置PHP上传限制
PHP_INI_FILE="/etc/php/8.2/fpm/php.ini"
if [ -f "$PHP_INI_FILE" ]; then
sudo sed -i "s/^upload_max_filesize.*/upload_max_filesize = $UPLOAD_MAX_SIZE/" "$PHP_INI_FILE"
sudo sed -i "s/^post_max_size.*/post_max_size = $POST_MAX_SIZE/" "$PHP_INI_FILE"
sudo sed -i "s/^memory_limit.*/memory_limit = $MEMORY_LIMIT/" "$PHP_INI_FILE"
echo "已更新PHP上传限制配置"
else
echo "警告:未找到PHP配置文件 $PHP_INI_FILE,PHP上传限制可能未生效"
fi
# 创建符号链接
sudo ln -sf /etc/nginx/sites-available/$WebName /etc/nginx/sites-enabled/
# 检查配置并重启服务
sudo nginx -t && sudo systemctl restart nginx
sudo systemctl restart php8.2-fpm
# 保存网站信息
INFO_FILE="${WebLocal}/website_info"
echo "网站名称: $WebName" > "$INFO_FILE"
echo "网站端口: $Web_PORT" >> "$INFO_FILE"
echo "网站根目录: $WebLocal" >> "$INFO_FILE"
echo "最大上传大小: $UPLOAD_MAX_SIZE" >> "$INFO_FILE"
echo "创建时间: $(date)" >> "$INFO_FILE"
chmod 644 "$INFO_FILE"
echo "配置完成,网站已启动。"
echo "访问地址:http://<服务器IP>:$Web_PORT"
echo "最大上传限制:$UPLOAD_MAX_SIZE"
echo "网站信息已保存到: $INFO_FILE"
}
# 安装和启动环境
install_env() {
sudo apt update
sudo apt upgrade -y
# 安装 Nginx
if ! command -v nginx &> /dev/null; then
sudo apt install nginx -y
fi
# 安装 PHP-FPM
if ! dpkg -l | grep -q php8.2-fpm; then
sudo apt install php8.2-fpm -y
fi
# 安装 PHP MySQL 扩展
if ! dpkg -l | grep -q php-mysql; then
sudo apt install php-mysql -y
fi
# 启动并设置开机自启
sudo systemctl enable nginx php8.2-fpm
sudo systemctl start nginx php8.2-fpm
}
# 主逻辑
if systemctl is-active --quiet nginx; then
echo "Nginx 已运行,直接配置网站。"
configure_website
else
echo "Nginx 未运行,开始安装和配置..."
install_env
configure_website
fi
10:15
<!DOCTYPE html>
<!-- saved from url=(0044)https://blog.twofei.com/1603/standalone.html -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style>
.live-photo {
position: relative;
overflow: hidden;
border-radius: var(--border-radius);
max-width: min(400px, 100%);
height: auto !important;
margin: 1em auto;
container-type: inline-size;
}
.live-photo .container {
position: absolute;
width: 100%;
height: 100%;
}
.live-photo .container img, .live-photo .container video {
position: absolute;
width: 100%;
height: 100%;
object-fit: cover;
}
.live-photo .container img {
transition: opacity 1s ease, transform 1s ease;
}
.live-photo .container video {
transition: transform 1s ease;
}
.live-photo.zoom .container img, .live-photo.zoom .container video {
transform: scale(1.1);
}
.live-photo.zoom .container img {
opacity: 0;
}
.live-photo.zoom .icon img {
animation: spin 5s linear infinite;
}
.live-photo .icon {
display: inline-flex;
align-items: center;
padding: 2px;
border-radius: var(--border-radius);
position: relative;
left: 10px;
top: 10px;
height: 22px;
background-color: rgba(240, 255, 255, 0.6705882353);
cursor: pointer;
user-select: none;
}
.live-photo .icon img {
width: 22px;
height: 22px;
}
.live-photo .icon span {
padding: 3px;
color: #606060;
font-size: 80%;
}
@container (max-width: 200px) {
.live-photo .icon span {
display: none;
}
}
.live-photo .warning {
padding: 4px 6px;
margin: 10px;
color: #9a6700;
border-radius: var(--border-radius);
position: absolute;
left: 0;
top: 40px;
background-color: rgba(240, 255, 255, 0.6705882353);
transition: opacity 0.5s linear;
}
.live-photo .warning.show {
opacity: 1 !important;
display: inline-block !important;
}
</style>
<script>
document.addEventListener('DOMContentLoaded', () => {
document.querySelectorAll('.live-photo').forEach(livePhoto => {
const container = livePhoto.querySelector('.container');
const icon = livePhoto.querySelector('.icon');
const video = container.querySelector('video');
const image = container.querySelector('img');
const warning = livePhoto.querySelector('.warning');
// TODO 优化:等图片可用的时候再把视频显示出来,测试出现
// 过视频比图片先加载完成,导致 flicker。
// 尽可能修复 Safari 无法播放的问题
// if (/WebKit/.test(navigator.userAgent)) {
// NOTE: 为了避免预加载,不应该提前 load。
// video.load();
// }
// fix: 鼠标进入 → 开始加载 → 鼠标离开(加载成功前) → 加载失败。
let within = false;
const start = async (e) => {
e.stopPropagation();
e.preventDefault();
within = true;
try {
video.currentTime = 0;
await video.play();
livePhoto.classList.add('zoom');
}
catch(e) {
console.log(e);
if (within && e instanceof DOMException) {
if (['NotAllowedError','AbortError'].includes(e.name)) {
warning.innerText = '浏览器未允许视频自动播放权限,无法播放实况照片。';
} else if (['NotSupportedError'].includes(e.name)) {
warning.innerText = '视频未加载完成或浏览器不支持播放此视频格式。';
} else {
warning.innerText = `其它错误:${e}`;
}
warning.classList.add('show');
}
}
};
const leave = (e) => {
livePhoto.classList.remove('zoom');
warning.classList.remove('show');
// await play() 可能一直卡住不返回。
// 在 pause 之前设置,如果 await play() 还没
// 成功返回,就会进入异常处理。
within = false;
video.pause();
};
icon.addEventListener('mouseenter', start);
icon.addEventListener('mouseleave', leave);
image.addEventListener('touchstart', start);
image.addEventListener('touchend', leave);
image.addEventListener('touchcancel', leave);
video.addEventListener('ended', () => {
livePhoto.classList.remove('zoom');
});
});
});
</script>
</head>
<body>
<div class="live-photo" style="width: 302px; height: 403px; aspect-ratio: 0.74937963;">
<div class="container">
<video src="1.mp4" playsinline="" preload="metadata"></video>
<img src="./standalone_files/1.avif" alt="" width="302" height="403" loading="lazy">
</div>
<div class="icon">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGvklEQVR4nO2ce4gVVRzHP7vr3dp1JfOFWWGvzXLLtXzTm95qURQVltrDIJI0LaKEkiAjDLW0gsRqe2FrEhT0R2gvFSmxNR/rHybbw0pLrXyUq1YbB74Dh8X2njMzd+7cdT4wMLN7zsyZ35zH73UuZGRkZGRkZGRkZBSH3kBPnZcD7wHzdF0JNAPv6LoMeBy4gaOcSuv8e+AnnXcBtgFrrHJbgLd13Qf4F1il625AI3ATRxGvAr8BfXX9FPC89f9qoKqD+pcC/XVeL4G+ouuuEuaxdCKqgHusYWqG4Hqge0z3P9sS+GNAG3AvnYg79FJPJ/CsU4HZGuqGW3WUHKcAV1vz1Axr2CXJPmAnJcjH6nWnF7kdFwIjdd4DGEqJcCXwBFBBeliqj1pHSnkBWCZVJI2MBl7Ks8IXleXS50pBhbhOi1qaRgim5+UoDZZLfzSLXVF5GPgTGExpcTJwESlgEvAtcBaliRkxs4Cr6ATUA9OBJbJUjLl3SIc5/1r/mwYMiumZA7Qyf0jCNAALY7hPNwlts17E52iWMGsituEyoB8JYlxKP+gFoiw45uV3WwL5GVgEjAfOl+2c09ELGAJMkONgu1VvFzA1BvXpzCStpaoI+tQAoMkSwKfAGE+VwghrLPC5dZ+vgNqQbSqX2fcdBWaQZRqF1b/26oW3xDR5Xwts1T336mOEYYZ6ckHZLrXFDOMwXpnDetEG+e7iwsyDb+re5hnjSCkTpbqE6XmH9YLGH1goZuoZh2S6+dJTHm7Tq1PDAM0vhRZeeyHuCTEnDpOF8nLcjeqvIWJ0NTwn+yZr2CbFW3rm2hD27jkKK8TKBDXoIc9606wFI845z2VODBaWB0gB5Vp9c55K8m69ROCdTpLRevZOz49nFsjVwAcUmemWnudDneLCm4D9Ojbpb77O0BVqw4OeAvxCXvVYOE92qPEy+7BZjXfVy0wMeAHwdwfmm/nf/HZx5Xyrv6m3kSJyvRpxt0edess8czGxKuXNNnUOAM8BwzX0zDFCseNWlVnmKETz7B0hXflVIfXdI3J8yOG7yLH8ApU3Nva5eT7MNpU1PdGF11Tex8o4A/jLSjFJnCVqtHEM5KNOQ/NAHuHZQmxVnYGOyn+blV/jqlCvjcu0MzrVJ57deb0abbwq+Zinsj5fe77qzHUoO1Rl11EkVmoV9FFId6nRQTpHRzSrrLECXBnhsTj0ttQZH6rjUqjLQ2jzB9Vol4k+8M7UeOqYgfclH8eorBn2Pnyjoygc7AQCXCk9MjKN0sxNTyzkEB7ucf+RCQzh2HhftmxFiEVkiMciYucIuqo9cxzKDiv2IkKIObBRjTZOCFc1ptXR2zNYU4SrGnOn2rIYv7jx78CzFIlpanSQOeqqlmzLI0QjvB9V1lgrLjSo/BTcOUGjziQOROZiufGNQuoTO2lTCMDFlMtZplyrBDpSC4s5RmnYBovTMkfPkCnzi+q49NaCMEQ27W2e9ZrVcBM9c6FSguvImXBYPS/nacdv8Gx7dcL+yw6HsQk9+lAnC2OjQgH7dD4nRC9aFcIORsPXHLFykqc5V2OpM8UI0gSurF9D9KY3lEsYG2PVmEc8601Vva0xpGDgqWi36NmTSQEm1/kz4ArPel2UMdCmoFRSLNYz14RQwS4HTiRF1Frmmgk5Fpon9aw/QiS5B45gk09dEEwm040h6o2xAuszExCeCaxfE6K+sZufUXZ/QTDeiX9CunnG6cXa5GOsiXnOC4btoRAqV2KYL3NzxFDjHmthCZN+caTVtsUatmF6Hko6N8p66qmVuzxQjldICD75fTkpyYGeFywYUTb2tMhgSITVsjTKQtavUMbATksAOxQAmig3fC9ZJ5U6HybHQINlngV63uQYtiz0cHS/xcJSBZ7LIt6nq4LeG0Ok+G6QnhnV5LrF0e2WeuokkEb57nbLeXBQFs06RdamxOgY6KuP8SVFYoycpy7hyLQyqZh7RqZKrSlG8lAUTpNaFVvmQRSOo/R4V0PXhEdTw0KtpGY1SzsmYerRtO0snS0fWlp75Gjl/AU/dpFq6vUDEK5paEkwV8P2AkqAxWpswYxyRy6xnB+VKfgJAq+k9NuttJD7IuwiisIWaQmp3aXu6gIzvfF1Ck8/ueIHWhHFKM6PVJCTrVpr7VhaF+PGvjrZyki3a9MPXnRaZsk8C/b83q+fgwqcAdXy7/0fo6xUuD5y1AaRv3Ltv4t9n0eaKGvnAFipTPxA/WmSW6nC+n+TVXe/9M1AYCZOfBdHMd0VMg14sd2upo8kxIDxjjk3GRkZGRkZGRkZGRSK/wDiCstGS04B5wAAAABJRU5ErkJggg==" class="no-zoom static" loading="lazy">
<span>实况</span>
</div>
<div class="warning" style="opacity: 0;"></div>
</div>
</body></html>
10:05
#!/bin/bash
# 脚本名称: nginx.sh
# 作者: Brian
# 版本: 2.0
# 描述: 飞牛系统快速配置Nginx网站,支持PHP、MySQL和HLS跨域
# 新增停止/启动/删除/查看网站功能,新增MySQL和phpMyAdmin支持
# 使用方法:放在网站根目录,运行 bash nginx.sh
configure_website() {
WebLocal=$PWD
read -p "请输入网站名称(建议英文,例如:test):" WebName
while true; do
read -p "请输入网站端口(例如:8091):" Web_PORT
if ! [[ "$Web_PORT" =~ ^[0-9]+$ ]]; then
echo "错误:端口号必须为数字,请重新输入。"
continue
fi
if [ "$Web_PORT" -lt 1 ] || [ "$Web_PORT" -gt 65535 ]; then
echo "错误:端口号必须在 1 到 65535 之间,请重新输入。"
continue
fi
if ss -tuln | grep -q ":$Web_PORT"; then
echo "错误:端口 $Web_PORT 已被占用,请选择其他端口。"
continue
fi
break
done
# 询问是否需要为该网站创建数据库
read -p "是否需要为该网站创建MySQL数据库? [y/n] " create_db
if [ "$create_db" = "y" ] || [ "$create_db" = "Y" ]; then
create_database $WebName
fi
sudo chown -R www-data:www-data $WebLocal
sudo chmod -R 755 $WebLocal
sudo rm -f /etc/nginx/sites-enabled/default
cat > /etc/nginx/sites-available/$WebName <<EOF
server {
listen $Web_PORT default_server;
listen [::]:$Web_PORT default_server;
root $WebLocal;
index index.php index.html index.htm;
server_name _;
client_max_body_size 1024M;
location / {
try_files \$uri \$uri/ =404;
}
location ~ \.php\$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location ~* \.(m3u8|ts)$ {
add_header Access-Control-Allow-Origin * always;
add_header Access-Control-Allow-Methods 'GET, OPTIONS' always;
add_header Access-Control-Allow-Headers 'Range' always;
add_header Access-Control-Expose-Headers 'Content-Length, Content-Range' always;
if (\$request_method = OPTIONS) {
add_header Content-Length 0;
add_header Content-Type text/plain;
return 204;
}
try_files \$uri =404;
}
}
EOF
sudo ln -sf /etc/nginx/sites-available/$WebName /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl restart nginx
INFO_FILE="${WebLocal}/website_info"
echo "网站名称: $WebName" > "$INFO_FILE"
echo "网站端口: $Web_PORT" >> "$INFO_FILE"
echo "网站根目录: $WebLocal" >> "$INFO_FILE"
echo "创建时间: $(date)" >> "$INFO_FILE"
chmod 644 "$INFO_FILE"
echo "配置完成,网站已启动。"
echo "访问地址:http://<服务器IP>:$Web_PORT"
echo "网站信息已保存到: $INFO_FILE"
}
install_env() {
sudo apt update
sudo apt upgrade -y
# 安装Nginx
if ! command -v nginx &> /dev/null; then
sudo apt install nginx -y
fi
# 安装PHP
if ! dpkg -l | grep -q php8.2-fpm; then
sudo apt install php8.2-fpm -y
fi
if ! dpkg -l | grep -q php-mysql; then
sudo apt install php-mysql -y
fi
# 安装MySQL
install_mysql
# 安装phpMyAdmin
install_phpmyadmin
# 配置PHP
PHP_INI="/etc/php/8.2/fpm/php.ini"
sudo sed -i 's/^upload_max_filesize.*/upload_max_filesize = 1024M/' $PHP_INI
sudo sed -i 's/^post_max_size.*/post_max_size = 1024M/' $PHP_INI
sudo sed -i 's/^memory_limit.*/memory_limit = 1024M/' $PHP_INI
sudo systemctl enable nginx php8.2-fpm mysql
sudo systemctl restart nginx php8.2-fpm mysql
}
install_mysql() {
if ! command -v mysql &> /dev/null; then
echo "正在安装MySQL..."
# 设置非交互式安装,设置root密码
read -p "请设置MySQL root用户密码: " mysql_root_pass
read -p "请再次输入MySQL root用户密码: " mysql_root_pass_confirm
while [ "$mysql_root_pass" != "$mysql_root_pass_confirm" ]; do
echo "两次输入的密码不一致,请重新输入"
read -p "请设置MySQL root用户密码: " mysql_root_pass
read -p "请再次输入MySQL root用户密码: " mysql_root_pass_confirm
done
# 保存MySQL密码到临时文件
echo "mysql-server mysql-server/root_password password $mysql_root_pass" | sudo debconf-set-selections
echo "mysql-server mysql-server/root_password_again password $mysql_root_pass" | sudo debconf-set-selections
# 安装MySQL服务器
sudo apt install mysql-server -y
# 执行安全配置
echo "正在进行MySQL安全配置..."
mysql -u root -p"$mysql_root_pass" -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$mysql_root_pass';"
mysql -u root -p"$mysql_root_pass" -e "DELETE FROM mysql.user WHERE User='';"
mysql -u root -p"$mysql_root_pass" -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
mysql -u root -p"$mysql_root_pass" -e "DROP DATABASE IF EXISTS test;"
mysql -u root -p"$mysql_root_pass" -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';"
mysql -u root -p"$mysql_root_pass" -e "FLUSH PRIVILEGES;"
echo "MySQL安装和安全配置完成"
else
echo "MySQL已安装,跳过安装步骤"
fi
}
install_phpmyadmin() {
if [ ! -f /usr/share/phpmyadmin/index.php ]; then
echo "正在安装phpMyAdmin..."
# 非交互式配置phpMyAdmin
sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/dbconfig-install boolean true"
sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/app-password-confirm password "
sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/mysql/admin-pass password "
sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/mysql/app-pass password "
sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/reconfigure-webserver multiselect nginx"
sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl -y
# 配置Nginx支持phpMyAdmin
if [ ! -f /etc/nginx/conf-available/phpmyadmin.conf ]; then
sudo tee /etc/nginx/conf-available/phpmyadmin.conf <<EOF
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files \$uri =404;
root /usr/share/;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
EOF
sudo ln -s /etc/nginx/conf-available/phpmyadmin.conf /etc/nginx/conf-enabled/
sudo systemctl restart nginx
fi
echo "phpMyAdmin安装完成"
else
echo "phpMyAdmin已安装,跳过安装步骤"
fi
}
create_database() {
local db_prefix=$1
local db_name="${db_prefix}_db"
local db_user="${db_prefix}_user"
# 生成随机密码
local db_pass=$(openssl rand -base64 12)
read -p "请输入MySQL root密码: " mysql_root_pass
# 创建数据库和用户
echo "正在为网站创建数据库..."
mysql -u root -p"$mysql_root_pass" -e "CREATE DATABASE IF NOT EXISTS $db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -u root -p"$mysql_root_pass" -e "CREATE USER IF NOT EXISTS '$db_user'@'localhost' IDENTIFIED BY '$db_pass';"
mysql -u root -p"$mysql_root_pass" -e "GRANT ALL PRIVILEGES ON $db_name.* TO '$db_user'@'localhost';"
mysql -u root -p"$mysql_root_pass" -e "FLUSH PRIVILEGES;"
# 保存数据库信息到网站信息文件
INFO_FILE="${WebLocal}/website_info"
echo "数据库名称: $db_name" >> "$INFO_FILE"
echo "数据库用户: $db_user" >> "$INFO_FILE"
echo "数据库密码: $db_pass" >> "$INFO_FILE"
echo "数据库主机: localhost" >> "$INFO_FILE"
echo "数据库创建完成,信息已保存到网站信息文件"
echo "数据库名称: $db_name"
echo "数据库用户: $db_user"
echo "数据库密码: $db_pass"
echo "请妥善保存以上数据库信息!"
}
stop_website() {
echo "正在停止网站服务..."
sudo systemctl stop nginx
sudo systemctl stop php8.2-fpm
sudo systemctl stop mysql
echo "网站服务已停止。"
}
start_website() {
echo "正在启动网站服务..."
sudo systemctl start nginx
sudo systemctl start php8.2-fpm
sudo systemctl start mysql
echo "网站服务已启动。"
}
delete_website() {
read -p "请输入要删除的网站名称:" WebName
if [ -f /etc/nginx/sites-available/$WebName ]; then
# 询问是否删除关联的数据库
read -p "是否同时删除与该网站关联的数据库? [y/n] " delete_db
if [ "$delete_db" = "y" ] || [ "$delete_db" = "Y" ]; then
read -p "请输入MySQL root密码: " mysql_root_pass
db_name="${WebName}_db"
db_user="${WebName}_user"
mysql -u root -p"$mysql_root_pass" -e "DROP DATABASE IF EXISTS $db_name;"
mysql -u root -p"$mysql_root_pass" -e "DROP USER IF EXISTS '$db_user'@'localhost';"
mysql -u root -p"$mysql_root_pass" -e "FLUSH PRIVILEGES;"
echo "数据库 $db_name 及用户 $db_user 已删除"
fi
sudo rm -f /etc/nginx/sites-available/$WebName
sudo rm -f /etc/nginx/sites-enabled/$WebName
sudo nginx -t && sudo systemctl reload nginx
echo "网站 $WebName 已删除(其他网站不受影响)。"
else
echo "未找到网站 $WebName 配置文件。"
fi
}
list_websites() {
echo "已配置的网站列表:"
if [ -d /etc/nginx/sites-available ]; then
ls -1 /etc/nginx/sites-available
else
echo "未找到 /etc/nginx/sites-available 目录。"
fi
# 显示数据库列表
echo -e "\n已创建的数据库:"
read -p "请输入MySQL root密码查看数据库列表: " mysql_root_pass
mysql -u root -p"$mysql_root_pass" -e "SHOW DATABASES;" | grep -vE 'Database|information_schema|performance_schema|mysql|sys'
}
# 主菜单
echo "=========================="
echo " Nginx 网站管理脚本"
echo "=========================="
echo "1) 配置网站"
echo "2) 安装环境并配置网站"
echo "3) 停止网站服务"
echo "4) 删除网站配置"
echo "5) 启动网站服务"
echo "6) 查看已配置网站列表"
echo "7) 单独安装MySQL数据库"
echo "8) 单独安装phpMyAdmin"
echo "=========================="
read -p "请选择操作 [1-8]: " choice
case $choice in
1) configure_website ;;
2) install_env; configure_website ;;
3) stop_website ;;
4) delete_website ;;
5) start_website ;;
6) list_websites ;;
7) install_mysql ;;
8) install_phpmyadmin ;;
*) echo "无效选择" ;;
esac
17:58
@旁人: -novid -nojoy -high -freq 240 +fps_max 0
02:15
cd /vol1/1000/www/mysql
10:15
#!/bin/bash
# 获取用户输入的服务器备份名称
read -p "请输入服务器备份名称: " server_backup_name
# 确保用户输入了至少一个备份路径
while :; do
echo "请输入要备份的文件目录(绝对路径),一行一个,回车结束:"
while IFS= read -r line; do
[[ -z "$line" ]] && break # 如果是空行则结束循环
source_dirs+=("$line") # 将输入的路径添加到数组中
done
if [ ${#source_dirs[@]} -eq 0 ]; then
echo "错误:必须设置至少一个备份路径。"
else
break
fi
done
# 确保用户输入了定时时间
while :; do
read -p "请输入自定义的cron时间格式(例如,每天凌晨2点为 0 2 * * *): " custom_cron_time
if [[ -z "$custom_cron_time" ]]; then
echo "错误:必须设置定时时间。"
else
break
fi
done
# 设置WebDAV相关变量
WEBDAV_URL="http://127.0.0.1:5244/dav/阿里云盘/${server_backup_name}/" #我自己的地址是 http://127.0.0.1:5244/dav/阿里云盘/
WEBDAV_USER="Alist账户"
WEBDAV_PASSWORD="Alist密码"
# 创建备份脚本
backup_script="/root/${server_backup_name}备份到webdav.sh"
cat << 'EOF' > "$backup_script"
#!/bin/bash
# 定义WebDAV相关变量
WEBDAV_URL="${WEBDAV_URL}"
WEBDAV_USER="${WEBDAV_USER}"
WEBDAV_PASSWORD="${WEBDAV_PASSWORD}"
EOF
# 为每个目录追加备份命令到脚本
for source_dir in "${source_dirs[@]}"; do
DIR_NAME=$(basename "$source_dir")
cat << EOF >> "$backup_script"
# 动态生成备份文件名,包含当前日期和时间
BACKUP_NAME="${DIR_NAME}-\$(date +%Y-%m-%d_%H-%M-%S).tar.gz"
BACKUP_PATH="/tmp/\$BACKUP_NAME"
# 压缩指定目录
tar -czf "\$BACKUP_PATH" "$source_dir"
# 上传到WebDAV
curl -T "\$BACKUP_PATH" -u \$WEBDAV_USER:\$WEBDAV_PASSWORD \$WEBDAV_URL
# 清理本地备份文件
rm "\$BACKUP_PATH"
EOF
done
# 替换变量占位符
sed -i "s|\${WEBDAV_URL}|$WEBDAV_URL|g" "$backup_script"
sed -i "s|\${WEBDAV_USER}|$WEBDAV_USER|g" "$backup_script"
sed -i "s|\${WEBDAV_PASSWORD}|$WEBDAV_PASSWORD|g" "$backup_script"
# 赋予执行权限
chmod +x "$backup_script"
# 设置cron作业
(crontab -l 2>/dev/null; echo "$custom_cron_time $backup_script") | crontab -
# 输出信息
echo "备份任务已设置,以下是所有信息。"
echo "需要备份路径: ${source_dirs[*]}"
echo "备份脚本路径: $backup_script"
echo "定时规则: $custom_cron_time"
13:48
{
"code": "0",
"isBlindBox": 0,
"memberid": 0,
"msg": "成功",
"orderId": "dbe6c53ce06143deb7da04402d4e81da",
"provinceid": "4057",
"url": "https://unipayphone.wostore.cn/sitepay/member_pay.html?torder=bf33d5b4389d4a70837afdcbd1d28ae6&sign=bc0564d6e9d59f982f2268403227c2a8"
}
11:58
因此,9950X3D的总三级缓存容量为原生L3缓存和3D V-Cache的总和,即 64MB + 64MB = 128MB。加上它自带的16MB二级缓存,总共是144MB的缓存容量
00:05
shadowrocket://add/sub://aHR0cHM6Ly9wb2tlbGluay54bi0tNGdzdm1oNzRjd3hpLmNuL2FwaS92MS9jbGllbnQvc3Vic2NyaWJlP3Rva2VuPTQ1YjJjYmMyNWE2YjYyYWZiZDI5ZTgxYWJhNWFkMDMw?remark=%E5%AE%9D%E5%8F%AF%E6%A2%A6%E6%98%9F%E4%BA%91
09:53
杏雨梨云启动维护系统2025乙巳版之仲夏更新.rar
16:59
## this is the all-in-one, standalone Discourse Docker container template
##
## After making changes to this file, you MUST rebuild
## /var/discourse/launcher rebuild app
##
## BE *VERY* CAREFUL WHEN EDITING!
## YAML FILES ARE SUPER SUPER SENSITIVE TO MISTAKES IN WHITESPACE OR ALIGNMENT!
## visit http://www.yamllint.com/ to validate this file as needed
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Uncomment these two lines if you wish to add Lets Encrypt (https)
# - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"
## which TCP/IP ports should this container expose?
## If you want Discourse to share a port with another webserver like Apache or nginx,
## see https://meta.discourse.org/t/17247 for details
expose:
- "52000:80" # http
# - "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## Set db_shared_buffers to a max of 25% of the total memory.
## will be set automatically by bootstrap based on detected RAM, or you can override
#db_shared_buffers: "256MB"
## can improve sorting performance, but adds memory usage per-connection
#db_work_mem: "40MB"
## Which Git revision should this container use? (default: latest)
#version: latest
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## How many concurrent web requests are supported? Depends on memory and CPU cores.
## will be set automatically by bootstrap based on detected CPUs, or you can override
#UNICORN_WORKERS: 3
## TODO: The domain name this Discourse instance will respond to
## Required. Discourse will not work with a bare IP number.
DISCOURSE_HOSTNAME: 'b.xsv.me'
## Uncomment if you want the container to be started with the same
## hostname (-h option) as specified above (default "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: List of comma delimited emails that will be made admin and developer
## on initial signup example 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: '2506317561@qq.com'
## TODO: The SMTP mail server used to validate new accounts and send notifications
# SMTP ADDRESS is required
# WARNING: SMTP password should be wrapped in quotes to avoid problems
DISCOURSE_SMTP_ADDRESS: smtp.qq.com
#DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_USER_NAME: 2506317561@qq.com
DISCOURSE_SMTP_PASSWORD: "embfrkdcfzsnecgc"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default: true)
#DISCOURSE_SMTP_DOMAIN: discourse.example.com # (required by some providers)
#DISCOURSE_NOTIFICATION_EMAIL: 2506317561@qq.com # (address to send notifications from)
#DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: peer # (optional, default: peer, valid values: none, peer, client_once, fail_if_no_peer_cert)
#DISCOURSE_SMTP_AUTHENTICATION: plain # (default: plain, valid values: plain, login, cram_md5)
## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
#LETSENCRYPT_ACCOUNT_EMAIL: me@example.com
## The http or https CDN address for this Discourse instance (configured to pull)
## see https://meta.discourse.org/t/14857 for details
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## The maxmind geolocation IP account ID and license key for IP address lookups
## see https://meta.discourse.org/t/-/173941 for details
#DISCOURSE_MAXMIND_ACCOUNT_ID: 123456
#DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
## The Docker container is stateless; all data is stored in /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## Plugins go here
## see https://meta.discourse.org/t/19157 for details
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
## Any custom commands to run after building
run:
- exec: echo "Beginning of custom commands"
## If you want to set the 'From' email address for your first registration, uncomment and change:
## After getting the first signup email, re-comment the line. It only needs to run once.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec: echo "End of custom commands"
19:30
/var/discourse/shared/standalone/backups/default
23:04
knng jzva ivjf xbau
23:18
livoke7677@moondyal.com
19:57
个人云盘系统
一个简单、美观、安全的PHP云盘系统,支持文件上传、下载、管理和直链分享。
✨ 特性
📤 简单上传 - 支持点击上传或拖拽上传,自动生成直链
🔗 直链分享 - 每个文件自动生成唯一直链,可直接访问下载
🔐 管理员系统 - 安全的登录认证,保护文件管理功能
⬇️ 快速下载 - 一键下载文件或通过直链直接下载
🗑️ 安全删除 - 通过删除码验证,防止误删
📊 文件管理 - 显示文件大小、上传时间、下载次数、直链
🎨 现代UI - 采用渐变色彩,简洁美观
📱 响应式设计 - 支持手机和桌面设备
🔒 安全防护 - CSRF保护、密码加密、安全验证
蓝奏云
https://xyz111.lanzoue.com/iaRUZ3c5i1uf
系统要求
• PHP 7.0 或更高版本
• MySQL 5.6 或更高版本
上传解压配置信息,点击安装即可使用
关键信息打码 求审核放过[泪]
08:31