Files
AI-Chat/INSTALL.md

123 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 安装指南
## 环境要求
| 组件 | 最低版本 | 说明 |
|------|----------|------|
| PHP | 8.0+ | 需启用 PHP-FPM |
| MySQL | 5.7+ | 或 MariaDB 10.3+ |
| Nginx | 1.18+ | 或其他支持 PHP-FPM 的 Web 服务器 |
| Composer | 2.0+ | PHP 依赖管理工具 |
### PHP 扩展要求
- PDO含 PDO MySQL 驱动)
- cURL
- JSON
- mbstring
- OpenSSL
## 安装方式
### 方式一:宝塔面板安装(推荐)
宝塔面板提供图形化界面,最适合快速部署。
#### 1. 安装宝塔面板环境
在宝塔面板中安装以下组件:
- Nginx任意版本
- PHP 8.0(注意选择正确版本)
- MySQL 5.7 或 8.0
#### 2. 创建网站
1. 登录宝塔面板
2. 点击"网站" → "添加站点"
3. 填写域名PHP 版本选择 **PHP 8.0**
4. 数据库选择"不创建"(安装向导中会创建)
#### 3. 上传代码
将项目代码上传到网站目录(例如 `/www/wwwroot/your-domain.com/`),或使用 Git 克隆。
#### 4. 安装 PHP 依赖
在宝塔终端中执行:
```bash
cd /www/wwwroot/your-domain.com
composer install
```
#### 5. 设置目录权限
```bash
chmod 755 uploads/
chmod 755 config/
```
#### 6. 配置 Nginx
1. 在宝塔面板中找到你的站点 → 设置 → 配置文件
2. 将网站根目录修改为 `/www/wwwroot/your-domain.com/public`
3. 参考 `docs/baota-nginx-snippet.conf` 中的配置片段,添加到 server 块中
4. 保存配置
#### 7. 运行安装向导
访问 `http://your-domain.com/install.php`,按照向导步骤:
1. **环境检查** — 系统自动检查 PHP 版本和扩展
2. **数据库配置** — 填写 MySQL 连接信息
3. **应用配置** — JWT 密钥(可自动生成)
4. **管理员账户** — 设置管理员用户名和密码
5. **AI 供应商** — 配置至少一个 AI 服务供应商
### 方式二:手动安装
#### 1. 安装环境
```bash
# Ubuntu/Debian
sudo apt update
sudo apt install php8.0-fpm php8.0-mysql php8.0-curl php8.0-mbstring php8.0-xml
sudo apt install mysql-server nginx composer
```
#### 2. 部署代码
```bash
cd /var/www
git clone <repository-url> ai-chat
cd ai-chat
composer install
```
#### 3. 设置权限
```bash
chown -R www-data:www-data /var/www/ai-chat
chmod 755 uploads/ config/
```
#### 4. 配置 Nginx
参考 `docs/nginx.conf` 配置 Nginx 站点。
#### 5. 运行安装向导
访问 `http://your-domain.com/install.php` 完成安装。
## 常见问题
### Q: 安装页面空白?
检查 PHP 版本是否 >= 8.0,以及 PHP 扩展是否已安装。
### Q: 500 错误?
检查 Nginx 错误日志:`tail -f /var/log/nginx/error.log`
### Q: 数据库连接失败?
确认 MySQL 服务正在运行,且数据库账号密码正确。
### Q: SSE 流式响应不工作?
确认 Nginx 配置中已禁用缓冲(参考 baota-nginx-snippet.conf