老实说,strapi的安装真的不是一件容易的事情。
第一步想简单化,于是就用Docker compose来安装,结果并不容易,官方文档不可用,改了半天终于跑起来,然后,嘿嘿,dockerhub上的strapi:latest 早就过期很久了。
于是又琢磨它那个Docker build版本的,问题是,都在宿主机环境build出来了,然后再放到Docker镜像中跑,岂不是脱裤子放屁,多此一举么。
于是回到原点,需要在CLI环境下安装,然后要部署到正式生产环境。
步骤如下:
一、装mysql 8.0
1apt install wget lsb-release gnupg -y
2
3wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
4
5dpkg -i mysql-apt-config_0.8.29-1_all.deb
6
7apt update
8
9apt install mysql-server
二、装NVM,nodejs和yarn
1curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
2
3source ~/.nvm/nvm.sh
4
5nvm ls-remote
6
7nvm install v20.19.5
8
9node -v
10
11npm install -g yarn
12
13npm list -g
三、初始化strapi
1mkdir /data
2
3cd /data
4
5yarn create strapi
6
7# 我们要跳过它那个免费30天的grow方案
8# 然后数据库是 mysql , 填入mysql的一系列参数
9# 使用ts
四、配置strapi
1# 加入自己的域名
2vi /data/strapi/config/server.ts
3
4export default ({ env }) => ({
5 host: env('HOST', '0.0.0.0'),
6 port: env.int('PORT', 1337),
7 url: 'https://blog.rendoumi.com',
8 app: {
9 keys: env.array('APP_KEYS'),
10 },
11});
12
13
14# 建立新文件
15vi /data/strapi/src/admin/vite.config.ts
16
17import { defineConfig, mergeConfig } from 'vite';
18
19export default (config) => {
20 return mergeConfig(config, defineConfig({
21 resolve: {
22 alias: {
23 '@': '/src',
24 },
25 },
26 server: {
27 allowedHosts: true
28 }
29 }));
30};
五、安装nginx,运行程序
1apt install nginx
2
3# 注释掉无用配置
4vi /etc/nginx/nginx.conf
5
6# include /etc/nginx/sites-enabled/*;
7
8
9
10# 新增配置
11vi /etc/nginx/conf.d/strapi.conf
12
13upstream strapi {
14 server 127.0.0.1:1337;
15}
16
17server {
18 # Listen HTTP
19 listen 80;
20 server_name blog.rendoumi.com;
21
22 # Redirect HTTP to HTTPS
23 return 301 https://$host$request_uri;
24}
25
26server {
27 # Listen HTTPS
28 listen 443 ssl;
29 server_name webcms.yoov.com;
30
31 # SSL config
32 ssl_certificate /usr/local/bin/certs/certificates/blog.rendoumi.com.crt;
33 ssl_certificate_key /usr/local/bin/certs/certificates/blog.rendoumi.com.key;
34
35 # Proxy Config
36 location / {
37 proxy_pass http://strapi;
38 proxy_http_version 1.1;
39 proxy_set_header X-Forwarded-Host $host;
40 proxy_set_header X-Forwarded-Server $host;
41 proxy_set_header X-Real-IP $remote_addr;
42 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
43 proxy_set_header X-Forwarded-Proto $scheme;
44 proxy_set_header Host $http_host;
45 proxy_set_header Upgrade $http_upgrade;
46 proxy_set_header Connection "Upgrade";
47 proxy_pass_request_headers on;
48 }
49}
50
51
52cd /data/strapi
53
54yarn develop
然后登录就可以了,诡异的是第四步,如果不gen vite.config.ts,那nginx代理访问local host:1337上会出问题。