首页 / 安装部署

一键安装(全量 / 升级 / 离线包)

使用 installFull.sh 全量安装 PostgreSQL 与发财CMS,单独安装或升级程序,手动安装 deb/rpm 包,以及安装完成后的验证。

先选安装方式

你的服务器状态 推荐命令 做了什么
全新服务器,没有 PostgreSQL installFull.sh(全量一键安装) 安装 PostgreSQL → 创建数据库用户与库 → 安装发财CMS 并写入数据库配置
自己配置数据库 / 只装或升级程序 facycms/install.sh(单独安装) 仅下载并安装 facy 的 deb/rpm 包,不动数据库
服务器不能联网下载 手动安装 deb/rpm 包 本地执行 installPackage.sh <包路径>
视频教程安装部署:从空服务器到服务运行 4:46
安装部署:从空服务器到服务运行

步骤章节(点击跳转)

空格 播放/暂停 · 方向键左右 快退/快进 5 秒 · F 全屏 · 画面由代码实时渲染,配音与配乐为 64kbps 单声道 MP3

环境检查、一键全量安装脚本(installFull.sh)的执行过程、80/443 端口选项、安装完成后的访问地址与 facy.service 服务管理。

方式一:全新服务器全量安装(推荐)

以 root 或 sudo 执行(脚本内部会检查 root):

sh
u=https://download.facycms.com/installFull.sh; if command -v curl >/dev/null 2>&1; then curl -fsSL "$u" -o install.sh; else wget -q -O install.sh "$u"; fi; chmod +x install.sh; sudo ./install.sh

脚本 installFull.sh 的执行流程:

  1. 检查是否 root,否则报错 请使用 root 用户执行。
  2. 下载并执行 PostgreSQL 安装脚本 http://download.facycms.com/pgsql/install.sh(需要 bash)。
  3. 等待 PostgreSQL 就绪(最多 30 秒),以 postgres 用户创建数据库用户和数据库:
    • 数据库主机 localhost,端口 5432
    • 库名 facycms,用户名 facycms,密码 Aa123456.
  4. 下载 http://download.facycms.com/facycms/install.sh,携带上述数据库参数并加上 --db-config 执行 —— 这会把连接信息写入 /usr/local/facy/data/core/database.conf。

全量脚本使用固定的默认数据库密码

installFull.sh 里数据库密码是写死的 Aa123456.。数据库默认只监听本机,风险可控,但上线后请修改:

sh
sudo -u postgres psql -c "ALTER ROLE facycms WITH PASSWORD '新的强密码';"
facyManager db set -host localhost -port 5432 -database facycms -username facycms -password '新的强密码'
facyManager db ping
systemctl restart facy.service

安装过程中的两个提问

首次安装(非升级)时,脚本会询问两个问题,输入 y 表示开启,直接回车表示不开启:

text
80 端口? [y/N]:
HTTPS? [y/N]:
提问 回答 y 的效果(config.yaml) 什么时候选 y
80 端口? frontend.port 改为 80,前台直接监听 80 服务器上没有 Nginx/宝塔,由发财CMS 直接对外
HTTPS? ssl.enabled 改为 true,前台启用 HTTPS(443) 同上,需要 HTTPS 且准备用发财CMS 的证书管理

有 Nginx / 宝塔时两个都回答 n

如果公网 80/443 已经由 Nginx 或宝塔 Nginx 监听,两个问题都直接回车(n),安装完成后再配置反向代理把域名转发到 6166。否则会端口冲突。

安装完成后的输出

脚本最后会检查服务状态,并打印访问地址和服务管理命令,类似:

text
服务状态:已运行
安装完成。
访问地址:
前台:
  http://服务器IP:6166
后台:
  http://服务器IP:6188
服务管理:
启动:systemctl start facy.service
状态:systemctl status facy.service
重启:systemctl restart facy.service
停止:systemctl stop facy.service

(如果你回答了开启 80 端口,前台地址会省略端口号。)

方式二:单独安装或升级程序

适合已有 PostgreSQL、想自己管理数据库,或者升级已有站点:

sh
u=https://download.facycms.com/facycms/install.sh; if command -v curl >/dev/null 2>&1; then curl -fsSL "$u" -o install.sh; else wget -q -O install.sh "$u"; fi; chmod +x install.sh; sudo ./install.sh

这个脚本再去下载 installPackage.sh,由它识别系统类型(有 dpkg 用 .deb,有 rpm 用 .rpm),下载对应安装包、校验 MD5,再安装。已安装则进入"升级"模式,升级时不会再询问 80/HTTPS,也不会覆盖 data/、static/、logs/。

单独安装后,首次访问后台会同时要求填写数据库连接,见首次登录。

方式三:手动安装离线包

installPackage.sh 接受一个本地安装包路径作为参数:

sh
sudo ./installPackage.sh /path/to/facy_<版本>-1_amd64.deb      # Debian / Ubuntu
sudo ./installPackage.sh /path/to/facy-<版本>-1.x86_64.rpm     # RHEL 系

安装包可从 download.facycms.com 下载,命令中的 <版本> 请替换为你下载的安装包版本号。脚本还支持 --db-config(把环境变量 DB_HOST/DB_PORT/DB_NAME/DB_USER/DB_PASSWORD 写入 database.conf)。

安装包做了什么

deb/rpm 包的安装后脚本(postinstall.sh)会:

  • 创建 /usr/local/facy、logs/,首次安装时从 /usr/share/facy/defaults 复制默认 data/ 与 static/;
  • 给 facy、facyManager 赋可执行权限,并在 /usr/local/bin 创建同名软链接;
  • 安装 systemd 单元 /etc/systemd/system/facy.service,enable 并启动。

systemd 单元内容如下(来自 install/packaging/systemd/facy.service):

ini
[Unit]
Description=faCaiCMS facy service
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/usr/local/facy
ExecStart=/usr/local/facy/facy
Restart=on-failure
RestartSec=5s
UMask=0022
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

服务管理

操作 命令
查看状态 systemctl status facy.service
是否开机自启 / 是否运行 systemctl is-enabled facy.service / systemctl is-active facy.service
启动 / 停止 / 重启 `systemctl start
开机自启 开 / 关 `systemctl enable
实时日志 journalctl -u facy.service -f
最近 100 行 journalctl -u facy.service -n 100 --no-pager
本次启动以来 journalctl -u facy.service -b --no-pager

安装验证清单

  1. systemctl status facy.service 显示 active (running);
  2. ss -lntp | grep -E '6166|6188' 能看到 facy 在监听两个端口;
  3. curl -I http://127.0.0.1:6166 与 curl -I http://127.0.0.1:6188 都有响应;
  4. 浏览器打开 http://服务器IP:6188 能看到后台初始化页面;
  5. 打不开时依次排查:云厂商安全组/防火墙 → Nginx 反向代理 → journalctl 日志。

首次启动日志里的 ERROR

首次启动时,日志里可能出现一条 初始化落地页内存缓存失败: 落地页 HTML 为空,这是还没有配置落地页时的提示,不影响启动和使用。

下一步:选择访问架构(直连 / Nginx / Cloudflare),然后首次登录。

发财CMS 使用教程