Files
cloud-chip.cn/deploy.sh
T
Lucanlee b60e637fd9 deploy.sh 增加配置缓存重建步骤
git pull 之后执行 php artisan config:clear 与 config:cache,避免修改 config/*(如本次 PDO 弃用修复)后 Laravel 仍读旧缓存导致改动不生效。config:cache 失败时仅告警不中断部署。
2026-08-08 22:38:36 +08:00

92 lines
2.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# 部署脚本
# 路径: /www/wwwroot/cloud-chip.cn/deploy.sh
# 配置项
SOURCE_DIR="/www/wwwroot/cloud-chip.cn"
PUBLIC_DIR="/www/wwwroot/cloud-chip.cn/public"
LOG_FILE="/www/wwwroot/cloud-chip.cn/deploy.log"
# 记录日志函数
log_message() {
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
echo "[$timestamp] $1" >> "$LOG_FILE"
}
# 解决 Git 2.35.2+ 的「dubious ownership」拦截:把本仓库加入安全目录白名单
# (Webhook 进程用户与仓库所有者不一致时会 fatal 报错,加这一行即可)
git config --global --add safe.directory "$SOURCE_DIR" 2>/dev/null || true
# 主逻辑
log_message "开始部署..."
# 进入源码目录
cd "$SOURCE_DIR" || {
log_message "错误: 无法进入源码目录 $SOURCE_DIR"
exit 1
}
# 拉取最新代码
log_message "拉取最新代码..."
git -c safe.directory="$SOURCE_DIR" pull origin main
if [ $? -eq 0 ]; then
log_message "代码拉取成功"
else
log_message "错误: 代码拉取失败"
exit 1
fi
# 清除并重建配置缓存:改了 config/* 后必须执行,否则 Laravel 仍读旧缓存,修改不生效
# 注意:若以 root 执行,生成的 bootstrap/cache/config.php 归 root 所有;
# 若 PHP-FPM 以 www 运行,请确保该文件对 www 可读(或部署后统一 chown -R www:www
log_message "重建配置缓存..."
php artisan config:clear
php artisan config:cache
if [ $? -eq 0 ]; then
log_message "配置缓存已重建"
else
log_message "警告: 配置缓存重建失败(请检查 php 是否在 PATH 中,或 config 含闭包无法缓存)"
fi
# 安装依赖(如果需要)
# log_message("安装依赖...")
# npm install
# if [ $? -eq 0 ]; then
# log_message("依赖安装成功")
# else
# log_message("错误: 依赖安装失败")
# exit 1
# fi
# 构建项目(如果需要)
# log_message("构建项目...")
# npm run build
# if [ $? -eq 0 ]; then
# log_message("项目构建成功")
# else
# log_message("错误: 项目构建失败")
# exit 1
# fi
# 复制到运行目录(如果需要)
# log_message("复制到运行目录...")
# cp -r dist/* "$PUBLIC_DIR"/
# if [ $? -eq 0 ]; then
# log_message("文件复制成功")
# else
# log_message("错误: 文件复制失败")
# exit 1
# fi
# 重启服务(如果需要)
# log_message("重启服务...")
# systemctl restart nginx
# if [ $? -eq 0 ]; then
# log_message("服务重启成功")
# else
# log_message("错误: 服务重启失败")
# exit 1
# fi
log_message "部署完成!"
exit 0