安企CMS的安装-源码编译安装

    发布时间:2026-09-15 10:55 更新时间:2026-09-15 10:55 阅读量:0

    适用人群:需要二次开发、定制功能,或官方提供的二进制包无法满足需求的开发者。

    难度:⭐⭐⭐⭐(需要熟悉 GoLang 和命令行操作)


    前置条件

    软件 版本要求 说明
    GoLang 1.13+(推荐 1.25+) 编译 Go 源码
    Git 任意版本 克隆代码仓库
    MySQL 5.6.35+ 运行数据库

    如果尚未安装 GoLang,请访问 https://go.dev/dl/ 下载安装。


    获取源码

    # 从 GitHub 克隆(推荐)
    git clone https://github.com/fesiong/anqicms.git
    
    # 或从 GitCode 镜像(国内用户)
    git clone https://gitcode.com/anqicms/anqicms.git
    
    # 进入项目目录
    cd anqicms
    

    编译准备

    设置 Go 代理(国内用户)

    go env -w GOPROXY=https://goproxy.cn,direct
    

    下载依赖

    go mod tidy
    go mod vendor
    

    编译可执行文件

    方法一:测试运行(不生成二进制文件)

    # 直接运行源码,用于调试和测试
    go run kandaoni.com/anqicms/main
    

    运行后,浏览器访问 http://127.0.0.1:8001 即可看到效果。

    方法二:生成二进制文件

    Windows 系统:

    go build -ldflags '-w -s -H=windowsgui' -o ./anqicms.exe kandaoni.com/anqicms/main
    
    • -w -s:去除调试信息,减小文件体积
    • -H=windowsgui:Windows GUI 模式,运行时不显示命令行窗口

    MacOS 系统:

    go build -ldflags '-w -s' -o ./anqicms kandaoni.com/anqicms/main
    

    Linux 系统:

    推荐使用项目自带的 Makefile:

    make
    

    编译完成后,在项目根目录下生成 release/ 目录,其中包含了完整的运行环境(可执行文件、模板文件、静态资源等):

    release/
    ├── anqicms               # 编译好的可执行文件
    ├── config.sample.json    # 配置文件示例
    ├── template/             # 模板目录
    ├── public/               # Web 根目录
    ├── system/               # 后台管理界面
    ├── locales/              # 多语言包
    ├── data/                 # 数据目录
    ├── start.sh              # 启动脚本
    ├── stop.sh               # 停止脚本
    └── doc/                  # 开发文档
    

    也可以直接编译:

    go build -ldflags '-w -s' -o ./anqicms kandaoni.com/anqicms/main
    

    交叉编译

    在不同平台上为目标平台编译:

    # 在 MacOS 上编译 Linux 版本
    GOOS=linux GOARCH=amd64 go build -ldflags '-w -s' -o ./anqicms-linux kandaoni.com/anqicms/main
    
    # 在 MacOS 上编译 Windows 版本
    GOOS=windows GOARCH=amd64 go build -ldflags '-w -s -H=windowsgui' -o ./anqicms.exe kandaoni.com/anqicms/main
    
    # 在 Linux 上编译 Windows 版本
    GOOS=windows GOARCH=amd64 go build -ldflags '-w -s -H=windowsgui' -o ./anqicms.exe kandaoni.com/anqicms/main
    

    GOOSGOARCH 是 Go 交叉编译的环境变量,分别指定目标操作系统和 CPU 架构。


    编译后端管理界面

    注意:如果从 GitHub 克隆代码,后台管理界面(system/ 目录)默认是空的,需要单独编译或下载。

    方式一:下载预构建包

    anqicms-admin Releases 下载最新版 system.zip,解压到 AnQiCMS 项目根目录下的 system 文件夹。

    # 下载 system.zip
    wget https://github.com/fesiong/anqicms-admin/releases/latest/download/system.zip
    
    # 解压到 system 目录
    unzip system.zip -d system/
    

    方式二:自行编译

    如果需要对后台管理界面进行二次开发,可以克隆 anqicms-admin 仓库自行构建(Vue.js 项目):

    git clone https://github.com/fesiong/anqicms-admin.git
    cd anqicms-admin
    
    # 安装依赖
    npm install
    
    # 构建
    npm run build
    
    # 构建产物在 dist/ 目录,将其复制到 anqicms 根目录下的 system/ 目录
    cp -r dist/* /path/to/anqicms/system/
    

    运行编译后的版本

    # 1. 将编译好的文件复制到目标目录
    # 2. 编辑 config.json 配置端口等信息
    # 3. 启动
    ./start.sh
    
    # 或直接运行
    ./anqicms
    
    # 首次运行会提示初始化,访问 http://127.0.0.1:8001 进入安装界面
    

    Makefile 常用命令

    项目根目录下的 Makefile 提供了便捷的编译命令:

    # 查看所有可用命令
    make help
    
    # 编译(生成 release 目录)
    make
    
    # 清理编译产物
    make clean
    
    # 运行测试
    make test
    
    # 查看版本号
    make version
    

    ❓ 执行 go run kandaoni.com/anqicms/main 时提示 go: not found 怎么办?

    说明 Go 语言环境没有安装或没有正确配置环境变量。

    # 检查 Go 是否安装
    go version
    # 如果输出 "command not found",说明没有安装
    
    # 安装 Go(Ubuntu/Debian 示例)
    apt install golang-go
    
    # 或从官网下载最新版
    # 访问 https://go.dev/dl/ 下载对应系统的安装包
    
    # 安装后验证
    go version
    # 应输出类似:go version go1.25.5 linux/amd64
    

    国内用户安装 Go 后还需要设置代理:

    go env -w GOPROXY=https://goproxy.cn,direct
    

    ❓ 编译出来的二进制包体积很大(上百 MB),能缩小吗?

    默认编译出来的二进制包包含调试信息和符号表,体积较大。通过以下方法可以显著缩小体积:

    方法 命令 效果
    去除调试信息 go build -ldflags '-w -s' 约减小 40%
    UPX 压缩 upx anqicms 约减小 70%

    完整优化命令

    # 编译时去除调试信息
    go build -ldflags '-w -s' -o ./anqicms kandaoni.com/anqicms/main
    
    # 安装 UPX(Ubuntu)
    apt install upx
    
    # 压缩二进包
    upx anqicms
    
    # 压缩后体积可降至 15-20 MB
    

    v3.6.1 之后官方已经做了体积优化(从 103 MB 降到 51 MB),源码编译时同样有效。

    ❓ 我修改了源码,编译后如何确认修改已经生效?

    几种验证方式:

    # 方式一:通过版本号验证(如果在代码中修改了版本号)
    ./anqicms --version
    
    # 方式二:通过编译时间戳验证
    ls -la ./anqicms
    # 查看文件的修改时间,确认是刚刚编译的
    
    # 方式三:直接验证功能
    # 如果你的修改是增加了某个新标签或新接口
    # 可以直接在浏览器中访问对应的 URL 确认
    
    # 方式四:校验文件 MD5(前后对比)
    md5sum ./anqicms
    # 每次编译的 MD5 都不同
    

    记住:每次修改源码后,必须重新编译并重启 AnQiCMS 进程,修改才会生效。重启后还要在后台更新缓存。

    继续阅读

    📑 📅
    安企CMS的安装-同一服务器多站点部署 2026-09-15
    安企CMS的安装-安装引导与初始化 2026-09-15
    安企CMS的安装-常见安装问题排查 2026-09-15
    安企CMS MCP 功能详解:内置 108 个工具,让 AI 直接帮你管理网站 2026-09-15
    安企CMS多站点使用PHP项目进行安装 2026-09-05
    安企CMS的安装-Docker 部署 2026-09-15
    安企CMS的安装-服务器手动部署 2026-09-15
    安企CMS的安装-PHPStudy(小皮面板)部署 2026-09-15
    安企CMS的下载与安装 2026-09-15
    认识安企CMS-官方资源与支持渠道 2026-09-15