Files
coolcoth.com/deploy.sh
T
2026-08-08 15:53:53 +08:00

55 lines
2.3 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.
#!/usr/bin/env bash
# ============================================================
# 酷冰甲官网 - 一键部署脚本(上传文件后运行一次)
# 用法:
# bash deploy.sh # 文件模式(默认,无需数据库)
# DB=1 bash deploy.sh # 先改好 config/config.php 的 mysql 段再跑
# ============================================================
set -e
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
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"
else
echo " 当前非 root,跳过 chown(如保存失败请手动: chown -R www:www storage public/assets/css"
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
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 且账号安全"