旧版宝塔面板(非Go项目)如何部署AnQiCMS?

AnQiCMS 是一个基于 Go 语言开发的企业级内容管理系统,以其高效、安全、可定制的特性,成为众多中小企业和内容运营团队的理想选择。作为一名长期与 AnQiCMS 打交道的网站运营人员,我深知系统部署的便捷性对于运营效率的重要性。尽管 AnQiCMS 推荐使用较新宝塔面板的 Go 项目功能进行部署,但很多用户可能仍在使用旧版宝塔面板,或者出于特定需求,希望通过非 Go 项目的方式来部署。本文将详细阐述如何在旧版宝塔面板(非 Go 项目)环境下,部署并运行 AnQiCMS,帮助您轻松搭建起功能强大的内容管理平台。

准备 AnQiCMS 安装包

部署 AnQiCMS 的第一步是获取其核心程序。您可以前往 AnQiCMS 的官方网站下载最新稳定版的 Linux 安装包,通常它是一个压缩文件,例如 anqicms-linux-v3.x.x.zip

下载完成后,登录您的宝塔面板。在左侧菜单中选择“文件”,导航到服务器的 /www/wwwroot/ 目录。在此目录下,创建一个新的文件夹,建议以您将要绑定的域名来命名,例如 yourdomain.com。进入新创建的文件夹,将之前下载的 AnQiCMS Linux 安装包上传至此。上传完毕后,右键点击压缩包,选择“解压”将其内容释放到当前文件夹。

数据库环境准备

AnQiCMS 需要一个 MySQL 数据库来存储其所有数据。在部署之前,请确保您的服务器上已经安装并运行了 MySQL 数据库服务。如果您尚未安装,可以在宝塔面板的“软件商店”中搜索并安装 MySQL。

安装完成后,您需要创建一个新的数据库和对应的数据库用户,并为其设置一个强密码。或者,如果您是宝塔面板的 Docker 版 MySQL,可以获取其 root 用户的密码。在 AnQiCMS 的初始化安装过程中,您将需要提供这些数据库连接信息,以确保系统能够正确地与数据库进行交互。

配置网站环境(Nginx 或 Apache)

在旧版宝塔面板中,通常没有直接针对 Go 语言项目的独立管理功能,因此我们需要通过配置 Nginx 或 Apache 的反向代理来实现网站的访问。

首先,在宝塔面板的左侧菜单中选择“网站”,然后点击“添加站点”或“添加通用项目”。在这里,您需要填写您的网站域名,例如 www.yourdomain.com。网站的根目录可以先保持默认。选择 PHP 版本时,由于 AnQiCMS 是 Go 语言程序,并非 PHP 应用,您可以选择“纯静态”以避免加载不必要的 PHP 环境。在此步骤中,无需创建 FTP 和数据库。

站点创建成功后,点击该站点右侧的“设置”按钮。进入设置页面后,选择“网站目录”选项卡,将运行目录修改为 AnQiCMS 安装路径下的 /public 文件夹,例如 /www/wwwroot/yourdomain.com/public。这是因为 AnQiCMS 程序的静态资源默认存放在此目录。

接下来,根据您的 Web 服务器类型(Nginx 或 Apache)配置伪静态规则或反向代理:

Nginx 配置:

在站点设置页面中,切换到“伪静态”选项卡。清空现有内容,并粘贴以下 Nginx 伪静态规则。这些规则的作用是将所有对您域名的请求转发到 AnQiCMS 应用程序监听的本地端口(默认为 8001),同时处理静态文件的直接访问。

location @AnqiCMS {
    proxy_pass http://127.0.0.1:8001;
    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
}
error_page 404 =200  @AnqiCMS;
location / {
   try_files $uri $uri/index.html @AnqiCMS;
}

保存这些规则,并重启 Nginx 以使其生效。

Apache 配置:

如果您使用的是 Apache 作为 Web 服务器,则无需在“伪静态”规则中填写内容。您应该在站点设置中,找到“反向代理”选项,并启用它。在目标 URL 一栏中填写 AnQiCMS 监听的地址和端口,即 http://127.0.0.1:8001。保存配置并重启 Apache 服务。

启动 AnQiCMS 应用程序

由于我们没有使用宝塔的 Go 项目功能,我们需要通过系统自带的计划任务来管理 AnQiCMS 程序的启动和停止。

在 AnQiCMS 的安装目录(例如 /www/wwwroot/yourdomain.com/)下,创建两个 shell 脚本文件:start.shstop.sh

start.sh 的内容如下:

#!/bin/bash
### check and start AnqiCMS
# author fesion
# the bin name is anqicms
BINNAME=anqicms
BINPATH=/www/wwwroot/yourdomain.com

# check the pid if exists
exists=`ps -ef | grep '\<anqicms\>' |grep -v grep |wc -l`
echo "$(date +'%Y%m%d %H:%M:%S') $BINNAME PID check: $exists" >> $BINPATH/check.log
echo "PID $BINNAME check: $exists"
if [ $exists -eq 0 ]; then
    echo "$BINNAME NOT running"
    cd $BINPATH && nohup $BINPATH/$BINNAME >> $BINPATH/running.log 2>&1 &
fi

请注意,您需要将 BINPATH=/www/wwwroot/yourdomain.com 替换为 AnQiCMS 的实际安装路径。如果您的 AnQiCMS 可执行文件名不是 anqicms,也需要相应修改 BINNAMEgrep 命令中的名称。

stop.sh 的内容如下:

#!/bin/bash
### stop anqicms
# author fesion
# the bin name is anqicms
BINNAME=anqicms
BINPATH="$( cd "$( dirname "$0"  )" && pwd  )"

# check the pid if exists
exists=`ps -ef | grep '\<anqicms\>' |grep -v grep |awk '{printf $2}'`
echo "$(date +'%Y%m%d %H:%M:%S') $BINNAME PID check: $exists" >> $BINPATH/check.log
echo "PID $BINNAME check: $exists"
if [ $exists -eq 0 ]; then
    echo "$BINNAME NOT running"
else
    echo "$BINNAME is running"
    kill -9 $exists
    echo "$BINNAME is stop"
fi

同样,根据您的实际情况修改 BINNAME

保存这两个脚本后,在宝塔面板的左侧菜单中选择“计划任务”。添加一个类型为“Shell脚本”、执行周期为“每分钟”的计划任务,任务名称可以命名为“启动 AnQiCMS”,脚本内容填写 sh /www/wwwroot/yourdomain.com/start.sh(请替换为您的实际路径)。这个任务将确保 AnQiCMS 进程在意外停止后能够自动重启。

为了立即启动 AnQiCMS,您可以在计划任务列表中手动点击“启动 AnQiCMS”任务旁边的“执行”按钮。

初始化 AnQiCMS 网站

完成上述所有配置后,您可以在浏览器中访问您绑定的域名。如果一切顺利,您将看到 AnQiCMS 的初始化安装界面。

在该界面上,您需要填写之前准备好的数据库信息(数据库地址、用户名、密码等),并设置您的后台管理员账号和密码。完成这些步骤后,点击“安装”按钮,AnQiCMS 将完成数据库的初始化和基本配置。

访问 AnQiCMS 后台

安装成功后,系统会提示您进入网站前台或后台。AnQiCMS 的后台访问地址通常是 您的域名/system/。例如,如果您的网站是 http://www.yourdomain.com/,那么后台地址就是 http://www.yourdomain.com/system/

首次登录后台,请务必修改默认的管理员账号和密码,以增强网站安全性。默认的管理员账号是 admin,默认密码是 123456

现在,您已经成功在旧版宝塔面板上部署了 AnQiCMS。您可以开始创建内容、管理页面、优化 SEO,并利用 AnQiCMS 强大的功能来提升您的网站运营效率。


常见问题解答 (FAQ)

Q1: 如果我想在同一台服务器上部署多个 AnQiCMS 站点,应该如何操作?

A1: 在同一台服务器上部署多个 AnQiCMS 站点时,每个 AnQiCMS 实例都需要监听一个独立的端口。您需要在每个 AnQiCMS 安装目录下的 config.json 文件中,修改 port 参数为一个不同的端口号,例如 8002、8003 等。同时,您还需要为每个站点在宝塔面板中创建独立的网站配置,并修改 Nginx 或 Apache 的反向代理规则,将各自的域名请求转发到对应 AnQiCMS 实例监听的端口。此外,每个站点也应有独立的启动脚本 (start.sh),其中 `BIN