From ef02d3e9e4a892a045d364e6802e2bf141f51aae Mon Sep 17 00:00:00 2001 From: lucanlee Date: Sat, 8 Aug 2026 21:06:29 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A6=81=E4=B8=A4=E6=AC=A1=E9=83=BD=E5=BE=97?= =?UTF-8?q?=E8=A7=A6=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy.sh | 118 ++++++++++++++++++++-------------- public/.htaccess_D4zD6.tar.gz | Bin 1003 -> 0 bytes 2 files changed, 70 insertions(+), 48 deletions(-) delete mode 100644 public/.htaccess_D4zD6.tar.gz diff --git a/deploy.sh b/deploy.sh index 0c98bf0..d4010df 100644 --- a/deploy.sh +++ b/deploy.sh @@ -1,54 +1,76 @@ -#!/usr/bin/env bash -# ============================================================ -# 酷冰甲官网 - 一键部署脚本(上传文件后运行一次) -# 用法: -# bash deploy.sh # 文件模式(默认,无需数据库) -# DB=1 bash deploy.sh # 先改好 config/config.php 的 mysql 段再跑 -# ============================================================ -set -e +#!/bin/bash +# 部署脚本 +# 路径: /www/wwwroot/coolcoth.com/deploy.sh -echo "==> 检测 PHP 环境 ..." -# 优先用 PATH 里的 php;找不到时自动探测宝塔等常见安装路径 -PHP_BIN="$(command -v php || true)" -if [ -z "$PHP_BIN" ]; then - for p in /www/server/php/74/bin/php /www/server/php/80/bin/php \ - /www/server/php/81/bin/php /www/server/php/82/bin/php \ - /www/server/php/83/bin/php /usr/local/php/bin/php \ - /usr/bin/php7.4 /usr/bin/php; do - if [ -x "$p" ]; then PHP_BIN="$p"; break; fi - done -fi -if [ -z "$PHP_BIN" ]; then - echo "✗ 未找到 php 命令,请先安装 PHP 7.4+ 并将其加入 PATH" - exit 1 -fi -"$PHP_BIN" -v | head -1 +# 配置项 +SOURCE_DIR="/www/wwwroot/coolcoth.com" +PUBLIC_DIR="/www/wwwroot/coolcoth.com/public" +LOG_FILE="/www/wwwroot/coolcoth.com/deploy.log" -echo "==> 设置目录写权限 ..." -# 关键点:宝塔/虚拟主机上 PHP 进程通常以 www 用户运行, -# 上传后的文件若归 root,则 www 无写权限,后台保存会被静默丢弃。 -# 这里把数据目录与生成 CSS 的目录一并 chown 给 www(仅 root 可执行 chown)。 -if [ "$(id -u)" -eq 0 ]; then - chown -R www:www storage 2>/dev/null || true - chown -R www:www public/assets/css 2>/dev/null || true - echo " 已将 storage / public/assets/css 属主改为 www" +# 记录日志函数 +log_message() { + local timestamp=$(date '+%Y-%m-%d %H:%M:%S') + echo "[$timestamp] $1" >> "$LOG_FILE" +} + +# 主逻辑 +log_message("开始部署...") + +# 进入源码目录 +cd "$SOURCE_DIR" || { + log_message("错误: 无法进入源码目录 $SOURCE_DIR") + exit 1 +} + +# 拉取最新代码 +log_message("拉取最新代码...") +git pull origin main +if [ $? -eq 0 ]; then + log_message("代码拉取成功") else - echo " 当前非 root,跳过 chown(如保存失败请手动: chown -R www:www storage public/assets/css)" + log_message("错误: 代码拉取失败") + exit 1 fi -chmod -R 755 storage 2>/dev/null || true -chmod -R 755 storage/data 2>/dev/null || true -chmod -R 755 public/assets 2>/dev/null || true -chmod -R 755 public/assets/css 2>/dev/null || true -echo "==> 初始化数据 (install/install.php) ..." -"$PHP_BIN" install/install.php +# 安装依赖(如果需要) +# log_message("安装依赖...") +# npm install +# if [ $? -eq 0 ]; then +# log_message("依赖安装成功") +# else +# log_message("错误: 依赖安装失败") +# exit 1 +# fi -echo "" -echo "✓ 部署完成!" -echo " 前台: http://你的域名/" -echo " 后台: http://你的域名/admin (默认账号 admin / admin888)" -echo "" -echo "安全建议(生产环境务必执行):" -echo " 1) 部署成功后删除安装目录: rm -rf install" -echo " 2) 修改后台密码: 后台 -> 设置 -> 管理员" -echo " 3) 若用 MySQL: 确认 config/config.php 的 driver=mysql 且账号安全" +# 构建项目(如果需要) +# 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 \ No newline at end of file diff --git a/public/.htaccess_D4zD6.tar.gz b/public/.htaccess_D4zD6.tar.gz deleted file mode 100644 index 0c682cf8d3701a09551895c7c103e0d7beeb4a8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1003 zcmVWmrDsV6>oS zI1=qy7?Pub#NipWjU*a(_#=^^SRUEtWseo(V)_g6RN= zzQ>$;IE+IIK%iJG{_DK|djElP1}#L^;$#i1M#9~l z_2zWntNwca=T4*gxPG|b_;$CsS81Hp-kcr;-!Z(<|5e=)Kfo|YCM4mKX@JJVGw*K2 zs~q}~U+p!&dr_~x^p2j^k9NF+O7r-Mh}@P1uPtE%F%asLhvtJou#Rpzm?8iT1LP>Q zIMRaGBCYB3eQ_H<-Ksx((s=Z|e&@&6wO7siwff;#_1(wyZ*HHz_#F&{NkOjWL1;5P zhOB~{!`x*B%k7p)Gzes@sJYm}u3_igEZlZ&LvvY?xEf|+IxHZU-89@UFmcPK;hLJ5 zsBT~VXh_l;vhdrSTe0T{6ZvdRwM}9(L^s1*%(mROUH_{tf$BEQq0Y-rPw`)MhSn4D z#ZXDll*6Oz5V;%?UTl%ns;{C zt!SEXY+DQ{NlQZ|#QH>D?ZDf6>fNh&Cspr<=RFUSddk)u0|C?4KF=elAl>=TPC8)ed`v}|T!T^}V|M>?Vu zQDw~*=cX(+Bd1v9icN72TS_sHEJdX@W1W%F;csLz${MvfQvJvv6r1(eisrJuXQO19 zcC-z##~HCHS29R-DCQy&6P6TV`P@WoN?gp*=q$jNYB(CoIN3$pgxF%UfKX)EP#g96 zHAGF!m|uzB0&~a~89_hExv{IC027P#k-Tl8R#z2ur?Ax|uxyHgw%QKMif2e{madci zTcvsYu)cHa^>4fNle>-6d)~7L!;MEJA~s*o_(Z!K7ZocYkhb~NqB3D* z`=A11I1I!<89^EvG9MBmmf2ceWD6D`Qz<6=qH1i4ibu8x%3V%DtV;@VSihWr6>=Z@ z*XspEx;P7wqOI%WmsSiH4EKFm+=alq^JU}om*IwMNH-uyUBly=mUcLCxVUjRqMgu- ziKUhJMxyO?o{LrXTyHh{d>mo#z_7R+2L}AI4HR);G5_~}0Et8*kw_#Gi9{liNF)-8 ZL?V$$Boc{4B9VOf{0-0*xzzwD004V;_T&Hn