在 Ubuntu 的运行环境配置 - swiftdo/vapor-blog GitHub Wiki

要使项目跑起来,需要做一下配置:

  • 复制产物
  • 安装数据库
  • 配置supervisor
  • 配置nginx
  • 配置项目运行参数

步骤在官方文档中都可找到,就不在这里描述。就亮下这边的配置,供参考。

复制产物

将 github action 编译好的产物vapor-app-artifact拷贝上传到Ubuntu的/www/wwwroot/iblog.com目录下,然后解压.

这里建议使用 final shell 工具

$ unzip -o vapor-app-artifact.zip
$ mv output_filename/* ./
$ tree ./
./
├── App
├── Public
└── Resources
    └── Views

Postgresql

安装好 postgresql 后,需要创建数据库。

$ sudo -u postgres psql #进入控制台
$ CREATE USER vapordbuser WITH PASSWORD 'blogdbpwd123' # 创建用户数据库
$ CREATE DATABASE blogdb; # 创建数据库
$ GRANT ALL PRIVILEGES ON DATABASE blogdb TO vapordbuser;

这样就创建了数据库用户vapordbuser,登录密码是 blogdbpwd123,数据库是 blogdb

配置supervisor

首先切换到配置目录:

$ cd /etc/supervisor/conf.d/
$ touch iblog-com.conf

假设我们的域名是iblog.com,那么建议创建iblog-com.conf配置文件,内容如下:

[program:iblog-com]
command=/www/wwwroot/iblog.com/App serve --env production --auto-migrate --port 11802 
directory=/www/wwwroot/iblog.com
autostart=true
autorestart=true
user=root
stdout_logfile=/var/log/supervisor/%(program_name)-stdout.log
stderr_logfile=/var/log/supervisor/%(program_name)-stderr.log

项目是部署在www/wwwroot/iblog.com/目录下。

配置Nginx

server {
    server_name iblog.com;
    #listen 443 ssl http2;
    listen 80;

    root /www/wwwroot/iblog.com/Public/;

    location @proxy {
        proxy_pass http://127.0.0.1:11802;
        proxy_pass_header Server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass_header Server;
        proxy_connect_timeout 3s;
        proxy_read_timeout 10s;
    }
    
    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        # try_files $uri $uri/ =404;
        try_files $uri @proxy; #这里是页面重定向、让80端口可以重定向到我们的服务器。
        #try_files $uri $uri/ /index.php?$query_string; 
    }

    access_log  /www/wwwlogs/iblog.com.log;
    error_log  /www/wwwlogs/iblog.com.error.log;
}

配置项目运行参数

阅读Vapor官方文档的 环境篇,我们用到了dotenv。

所以需要在 /www/wwwroot/iblog.com 配置.env文件

$ touch .env
$ vim .env

.env 文件内容如下:

DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_USERNAME=vapordbuser
DATABASE_PASSWORD=blogdbpwd123
DATABASE_NAME=blogdb
SMTP_HOST=smtp.163.com
SMTP_PORT=465
[email protected]
SMTP_PASSWORD=ZNZEIMJTGRWQSHOB

SMTP_* 这部分是邮箱的配置。

运行

$ supervisorctl reread
$ supervisorctl add iblog-com
$ supervisorctl start iblom-com