Skip to content

这是你在 Windows 上编译并部署到阿里云 ECS 的实际操作步骤清单。

一、在 Windows(Git Bash)中编译 Linux 程序

  1. 打开 Git Bash,进入你的项目目录。

    bash
    cd /d/ideaProject/ezbookkeeping
  2. 设置编译环境变量,然后使用项目脚本编译。

    bash
    export GOOS=linux
    export GOARCH=amd64
    export CGO_ENABLED=0
    ./build.sh backend
    ./build.sh frontend

    编译成功后,项目根目录下会生成 ezbookkeeping(Linux程序)和 dist(前端资源)文件夹。

  3. (验证) 检查生成的文件是否正确。

    bash
    file ezbookkeeping

    输出应包含 “ELF 64-bit LSB executable”,说明是 Linux 可执行文件。

二、上传文件到阿里云 ECS

  1. 在 ECS 上创建目录。

    bash
    ssh root@你的ECS_IP
    mkdir -p /home/ezbookkeeping
  2. 本地的 Git Bash 中,上传必需的文件。

    bash
    scp ezbookkeeping root@你的ECS_IP:/home/ezbookkeeping/
    scp -r dist conf templates LICENSE root@你的ECS_IP:/home/ezbookkeeping/

三、在 ECS 上配置和启动

  1. 登录 ECS,进入目录并设置权限。

    bash
    ssh root@你的ECS_IP
    cd /home/ezbookkeeping
    chmod +x ezbookkeeping
  2. 创建 Systemd 服务文件/etc/systemd/system/ezbookkeeping.service)。

    bash
    sudo tee /etc/systemd/system/ezbookkeeping.service <<-'EOF'
    [Unit]
    Description=EzBookkeeping Web Server
    After=network.target
    [Service]
    Type=simple
    User=root
    WorkingDirectory=/home/ezbookkeeping
    ExecStart=/home/ezbookkeeping/ezbookkeeping server run
    Restart=always
    RestartSec=5
    [Install]
    WantedBy=multi-user.target
    EOF
  3. 启动服务

    bash
    sudo systemctl daemon-reload
    sudo systemctl start ezbookkeeping
    sudo systemctl enable ezbookkeeping
    sudo systemctl status ezbookkeeping
  4. 验证

    bash
    # 检查进程和端口
    sudo ss -tlnp | grep :8080
    # 本地测试
    curl -I http://localhost:8080/

四、最后一步(必须做)

阿里云ECS控制台 配置安全组,为实例的 入方向 添加一条规则:

  • 协议类型自定义 TCP
  • 端口范围8080/8080
  • 授权对象0.0.0.0/0(或你的具体IP)

完成后,即可通过 http://你的ECS公网IP:8080 访问。

五、快速排错命令

  • 看日志:sudo journalctl -u ezbookkeeping -f
  • 测程序:cd /home/ezbookkeeping && ./ezbookkeeping server run
  • 查端口:sudo ss -tlnp | grep :8080

六、本地启动命令

  1. 后端

    bash
    PS D:\ideaProject\ezbookkeeping> go run ezbookkeeping.go server run
  2. 前端

    bash
    npm run serve

按以上步骤操作,即可完成部署。