老实说,strapi的安装真的不是一件容易的事情。

第一步想简单化,于是就用Docker compose来安装,结果并不容易,官方文档不可用,改了半天终于跑起来,然后,嘿嘿,dockerhub上的strapi:latest 早就过期很久了。

于是又琢磨它那个Docker build版本的,问题是,都在宿主机环境build出来了,然后再放到Docker镜像中跑,岂不是脱裤子放屁,多此一举么。

于是回到原点,需要在CLI环境下安装,然后要部署到正式生产环境。

步骤如下:

一、装mysql 8.0
apt install wget lsb-release gnupg -y

wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb

dpkg -i mysql-apt-config_0.8.29-1_all.deb

apt update

apt install mysql-server
二、装NVM,nodejs和yarn
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash

source ~/.nvm/nvm.sh

nvm ls-remote

nvm install v20.19.5

node -v

npm install -g yarn

npm list -g
三、初始化strapi
mkdir /data

cd /data

yarn create strapi

# 我们要跳过它那个免费30天的grow方案
# 然后数据库是 mysql , 填入mysql的一系列参数
# 使用ts
四、配置strapi
# 加入自己的域名
vi /data/strapi/config/server.ts

export default ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
  url: 'https://blog.rendoumi.com',
  app: {
    keys: env.array('APP_KEYS'),
  },
});


# 建立新文件
vi /data/strapi/src/admin/vite.config.ts

import { defineConfig, mergeConfig } from 'vite';

export default (config) => {
  return mergeConfig(config, defineConfig({
    resolve: {
      alias: {
        '@': '/src',
      },
    },
    server: {
      allowedHosts: true
    }
  }));
};
五、安装nginx,运行程序
apt install nginx

# 注释掉无用配置
vi /etc/nginx/nginx.conf

#        include /etc/nginx/sites-enabled/*;



# 新增配置
vi /etc/nginx/conf.d/strapi.conf

upstream strapi {
    server 127.0.0.1:1337;
}

server {
    # Listen HTTP
    listen 80;
    server_name blog.rendoumi.com;

    # Redirect HTTP to HTTPS
    return 301 https://$host$request_uri;
}

server {
    # Listen HTTPS
    listen 443 ssl;
    server_name webcms.yoov.com;

    # SSL config
    ssl_certificate /usr/local/bin/certs/certificates/blog.rendoumi.com.crt;
    ssl_certificate_key /usr/local/bin/certs/certificates/blog.rendoumi.com.key;

    # Proxy Config
    location / {
        proxy_pass http://strapi;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_pass_request_headers on;
    }
}


cd /data/strapi

yarn develop

然后登录就可以了,诡异的是第四步,如果不gen vite.config.ts,那nginx代理访问local host:1337上会出问题。

image-20251016092152030

六、升级
yarn strapi version 

npx @strapi/upgrade latest