在 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