# 项目名称
项目介绍
## 目录
- [安装指南](#一、安装指南) 
    - [克隆项目](#克隆项目) 
    - [准备工作](#准备工作)
    - [ffmpeg安装](#ffmpeg安装) 
    - [安装依赖](#安装依赖)
    - [配置](#配置)
        - [运行目录](#运行目录)
        - [apache](#apache)
        - [nginx](#nginx)
        - [.env](#env)
- [数据库](#二、数据库)
- [网站初始信息](#三、初始信息)
## 一、安装指南
### 克隆项目
```bash
git clone http://47.76.126.2:3000/seven/bot-28.git
```
### 准备工作
需要先安装好运行环境,推荐使用宝塔服务器,安装LNMP的架构,建议使用nginx作为服务器,不建议使用apache。需要安装以下软件:
|  所需环境 | 版本 | 备注 | 推荐版本 |
|---------|----|----|---|
| linux    | \>= 7.0 |     | 7.9 |
| nginx    | \>= 1.17 |     | 最新的 |
| php | \>= 8.0.2 |   8.0.2 ~ 8.2   | 8.2.9 |
| mysql    | \>= 5.7 | 必须要5.7及以上     | 5.7 |
| node     | >= 22 
### 安装依赖
```bash
# 安装依赖
composer install
# 创建符号链接
php artisan storage:link
```
### 配置
- #### 运行目录:
    - 部署完成后,请修改 【运行目录】 为 `public` ,这里以宝塔为例:
    
- #### apache:
```apache
        Options +FollowSymlinks -Multiviews
        RewriteEngine on
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
# 可根据实际情况进行修改
        Header set Accept-Ranges bytes
        Header set Access-Control-Allow-Origin "*"
        Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
        Header set Access-Control-Allow-Headers "Content-Type, Authorization, X-Requested-With"
        Header set Access-Control-Allow-Credentials "true"
```
- #### nginx:
```nginx
location / {
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Max-Age' 3600;
        if ($request_method = 'OPTIONS') {
            # OPTIONS 请求直接返回 200
            return 204;
        } 
        #try_files $uri $uri/ /index.php?$query_string;        
        if (!-e $request_filename) {
            rewrite ^/index.php(.*)$ /index.php?s=$1 last;
            rewrite ^(.*)$ /index.php?s=$1 last;
            break;
        }
}
```
- #### .env:
    (1) 将 `example.env` 重命名为 `.env`
    
    (2) 修改以下配置项
```bash
# 以下配置仅为示例
# App
APP_NAME=lovingtalk
APP_DEBUG=false
APP_URL=http://localhost:8080
# 数据库
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=bot
DB_USERNAME=root
DB_PASSWORD=123456
DB_PREFIX=bot_
# 电子邮件
MAIL_MAILER=smtp
MAIL_ENCRYPTION=tls
MAIL_PORT=587
MAIL_FROM_NAME="${APP_NAME}"
MAIL_HOST=
MAIL_FROM_ADDRESS=""
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_EXP=600  # 邮件验证码有效期(秒)
```
## 二、数据库
- 请依次导入以下文件
|序号|文件|说明|
|---|---|---|
|1|[/sql/sql_prod.sql](/sql/sql_prod.sql)|初始数据|
## 三、初始信息
- 通过部署的域名访问程序后台系统,登录后请及时修改密码!!!
- 初始账号密码: 
    - 用户名:`admin`
    - 密码:`123456`
`注意:登录后请及时修改管理员密码,防止泄露。`
## 四、设置机器人回调地址、菜单等
- .env设置机器人信息
- 访问 https://域名/api/setWebHook
## 五、定时任务每5秒执行
- 先创建队列表
    - php artisan queue:table
    - php artisan migrate
- 修改.env配置 使用数据库做队列
    QUEUE_CONNECTION=database
## 六、安装wkhtmltopdf网页图片
- apt install wkhtmltopdf
- yum install wkhtmltopdf