老实说,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上会出问题。

六、升级
yarn strapi version
npx @strapi/upgrade latest