Skip to content

Commit

Permalink
docs: 完善迁移文档
Browse files Browse the repository at this point in the history
  • Loading branch information
熊孝兵 committed Mar 12, 2024
1 parent e6c5181 commit 85b9f42
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 10 deletions.
2 changes: 1 addition & 1 deletion docs/enterprise/v1/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ description: Lsky Pro 企业版 V 1.x|使用文档
- 支持在线增量更新、跨版本更新

## 安装要求
- PHP >= 8.0.2
- PHP >= 8.1
- BCMath PHP 扩展
- Ctype PHP 扩展
- DOM PHP 拓展
Expand Down
23 changes: 20 additions & 3 deletions docs/enterprise/v1/quick-start/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,35 @@ description: 安装 Lsky Pro 企业版本
## 推荐运行环境
- Nginx 1.21+
- Mysql 5.7+
- PHP 8.0+
- PHP 8.2+
- Redis 7.0+
- Supervisor

## 第一步,准备安装
1. 使用 `php -v` 命令查看并确认 cli php 命令行版本是否符合要求,最低需要 8.0.2
1. 使用 `php -v` 命令查看并确认 cli php 命令行版本是否符合要求,最低需要 8.1

![php version](/installation/php-version.png)

2. 使用 `php -m`,确保已经安装必要的拓展。
2. 使用命令确保已经安装必要的拓展:
```shell
php -m | grep -E 'fileinfo|mysqli|curl|mbstring|imagick|openssl|PDO|redis|session'
```

![php modules](/installation/php-modules.png)

然后打开 `php.ini` 文件,搜索查找 `disable_functions`,将该值清空,例如:

```
...
; This directive allows you to disable certain functions.
; It receives a comma-delimited list of function names.
; https://php.net/disable-functions
disable_functions =
...
```

清空后重启 PHP 服务。

::: tip 提示
- 通常情况下大部分拓展都是预装的,如果没有需要自行编译安装。
- 必须程序必须用到的拓展有且不限于 `curl``fileinfo``ftp``imagick``PDO``openssl``pcntl``redis``zip`
Expand Down Expand Up @@ -137,5 +153,6 @@ service crond restart
至此,完成安装。

::: tip 提示
- 队列和计划任务未配置成功会导致上传图片后无法生成缩略图、邮件无法发送、水印无法处理等异常情况。
- 验证队列处理进程有没有正确配置,可以通过查看上传的图片是否生成了缩略图进行判断。
:::
102 changes: 96 additions & 6 deletions docs/enterprise/v1/quick-start/migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,99 @@ description: 迁移兰空图床企业版

# 迁移兰空图床

- 首先需要保证新的环境满足兰空图床的运行要求,例如是否安装了 `fileinfo``imagick``redis` 拓展,是否启用了必要的函数等等。
- 打包时请注意程序中 `.` 符号开头的文件,这些可能在某些文件管理程序中被隐藏,请不要忽略了这些文件。
- 删除 `public` 目录下所有的符号链接,然后执行命令重新生成 `php artisan lsky:symlinks`
- 如果你使用了本地的储存策略,需要进入后台编辑该策略,修改路径保存一下以重新生成符号连接。
- 迁移完成以后请将跟目录所有文件夹、子文件夹、文件的权限改为 0755,所有组/权限组改为 www:www
- 参考安装文档中的命令行配置,配置好队列处理进程和计划任务处理进程 **(重要)**
::: warning 注意
由于程序使用了符号连接的方式实现其图片可以存在磁盘的任意位置,因此迁移兰空图床需要进行一些额外的操作。符号链接[百度百科](https://baike.baidu.com/item/%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5/7177630),可以简单理解为 Windows 系统中的快捷方式。
:::

### 1. 打包
一般情况下,程序的 `public` 目录中会存在多个个系统保留目录名,目录结构如下:
```
└─ public
├─ css 系统层叠式样式表
├─ fonts 系统字体文件
├─ i 程序默认本地储存的符号链接(可能不存在)
├─ img 系统图片文件
├─ js 系统 javascript 文件
├─ thumbnails 程序图片缩略图的符号链接
├─ uploads 系统图片上传的符号链接(例如相册封面、背景图等)
└─ ...
```

符号链接映射关系:

`public/thumbnails` -> `storage/app/thumbnails`
`public/uploads` -> `storage/app/public`
`public/i` -> `storage/app/uploads`

迁移前,我们先将 `public` 中的 `thumbnails``uploads``i` 等所有符号链接删除。然后备份数据库,打包程序目录。

::: tip 为什么要删除符号链接?
如果不删除符号链接,打包压缩程序目录时,会将符号链接所指向的文件也打包进去,导致迁移后符号链接失效,无法找到对应的文件。
:::

::: warning 注意
打包时请注意程序中 `.` 符号开头的文件,这些可能在某些文件管理程序中被隐藏,请不要忽略了这些文件。
:::

### 2. 准备新服务器
首先需要打开新服务器的 SSH 终端,使用命令查看 PHP 版本是否正确:

```shell
php -v
```

然后确认该 PHP 版本的拓展是否都已经安装了:

```shell
php -m | grep -E 'fileinfo|mysqli|curl|mbstring|imagick|openssl|PDO|redis|session'
```

然后打开 `php.ini` 文件,搜索查找 `disable_functions`,将该值清空,例如:

```
...
; This directive allows you to disable certain functions.
; It receives a comma-delimited list of function names.
; https://php.net/disable-functions
disable_functions =
...
```

修改后重启 PHP 服务。 然后确保新服务器已安装 PHP 5.7+ 以及 Redis 7.0+。

### 3. 迁移到新服务器

将打包后的代码和数据库文件,上传到新服务器站点目录解压,并导入数据库。

打开根目录 `.env` 文件,修改数据库连接信息:

```
APP_DEBUG=true 开启调试模式
DB_CONNECTION=mysql 数据库类型
DB_HOST=127.0.0.1 数据库连接地址
DB_PORT=3306 数据库连接端口
DB_DATABASE=lsky_pro 数据库名称
DB_USERNAME=root 数据库用户名
DB_PASSWORD=root 数据库密码
REDIS_HOST=127.0.0.1 Redis 连接地址,一般默认就好
REDIS_PASSWORD=null Redis 连接密码,一般默认就好
REDIS_PORT=6379 Redis 连接端口,一般默认就好
```

将以上配置修改为你的环境对应配置值,然后配置站点伪静态、运行目录、设置站点文件权限。具体操作可参考安装章节[第二步-准备运行环境](/docs/enterprise/v1/quick-start/installation.html#第二步-准备运行环境)

### 4. 生成符号链接

进入 SSH 终端,进入站点目录,然后执行重新生成符号链接命令:
```shell
php artisan lsky:symlinks
```

::: warning 注意
如果你使用了本地的储存策略,需要进入后台编辑该策略,重新保存一下以生成对应储存的符号连接。
:::

### 5. 配置异步队列和计划任务

参考安装文档中的[最后一步-命令行配置-重要](/docs/enterprise/v1/quick-start/installation.html#最后一步-命令行配置-重要),配置配置异步队列和计划任务 **(重要)**

0 comments on commit 85b9f42

Please sign in to comment.