# 服务器与宝塔

> 运行环境、宝塔站点、SSL 与 MySQL

# 4. 宝塔安装运行环境

进入：

```text
宝塔 → 软件商店
```

安装：

```text
Nginx
MySQL 8
Node.js 版本管理器
```

Node.js 选择：

```text
22 LTS
```

终端确认：

```bash
node -v
npm -v
```

Node 应为：

```text
v22.x.x
```

安装 PM2：

```bash
npm install -g pm2
pm2 -v
```

---


# 5. 创建宝塔网站和 SSL

先解析域名 A 记录到服务器 IPv4。

宝塔：

```text
网站 → 添加站点
```

建议：

```text
域名：xjtu.example.com
根目录：/www/wwwroot/graduate-os
PHP：纯静态 / 不使用 PHP
数据库：本步骤先不创建也可以
```

然后：

```text
网站 → xjtu.example.com → SSL → Let's Encrypt
```

申请证书并开启强制 HTTPS。

## 很重要：宝塔 SSL 配置不要乱覆盖

宝塔站点配置里通常有：

```text
#CERT-APPLY-CHECK--START
...
#CERT-APPLY-CHECK--END

#SSL-START
#error_page 404/404.html;
...
#SSL-END
```

**不要修改宝塔提示不能修改的 SSL 注释 404 行。**

如果宝塔提示：

```text
请勿修改SSL相关配置中注释的404规则
```

说明你改到了受保护位置。恢复该行，把自定义反代/安全配置放到正常 Nginx 区域，或直接用宝塔 GUI 的「反向代理 / 访问限制」。

---


# 6. 创建 MySQL 数据库

宝塔：

```text
数据库 → MySQL → 添加数据库
```

建议：

```text
数据库名：graduate_os
用户名：graduate_os
字符集：utf8mb4
权限：本地服务器
```

建议数据库密码只用字母数字的强随机值，避免 `DATABASE_URL` URL 编码问题。

可以生成：

```bash
openssl rand -hex 24
```

记录数据库密码。

**3306 不需要开放公网。**

---
