diff --git a/src/zh/guide/install.md b/src/zh/guide/install.md index 641f3f44..c77d3022 100644 --- a/src/zh/guide/install.md +++ b/src/zh/guide/install.md @@ -1,5 +1,9 @@ # 安装 Lsky Pro+ +兰空图床提供了两种安装方式,普通安装和 docker 安装,推荐使用 [docker 安装](#docker-安装)。 + +## 普通安装 + 在开始安装之前,请确保您已经阅读过前面的[环境要求](./requirement)章节,将必要的环境配置好。 注意,本次安装教程是在**没有安装**服务器控制面板的情况下进行的,仅供参考,如果您使用控制面板进行操作,实际情况可能有所不同。 @@ -8,7 +12,7 @@ 由于 PHP 存在两种运行方式:FPM 和 CLI,通常情况下服务器这两种环境中的 PHP 版本是一致的,但是由于集成环境软件存在多个不同版本的 PHP,这就会导致两种环境 PHP 版本不一致,这种情况下就可能会造成很多小伙伴在[配置消息队列](./install#第四步-配置队列)时非常困惑。 ::: -## 第一步,创建站点 +### 第一步,创建站点 首先我们必须创建一个新的站点,用来搭建兰空图床,如果您需要使用 mysql,您可能还需要创建一个 mysql 数据库。在本次教程中,我们使用推荐的 sqlite3 数据库。 @@ -50,7 +54,7 @@ cd /www/wwwroot/app.com unzip lsky-pro.zip ``` -## 第二步,配置伪静态 +### 第二步,配置伪静态 我们需要将程序的运行目录配置为 `public`,即站点的 Nginx 配置文件的站点根目录应该设置为 `/www/wwwroot/app.com/public`,配置示例: @@ -88,7 +92,7 @@ location ~ .*\.(jpg|jpeg|webp|avif|bmp|gif|png|tif|tiff|jp2|j2k|jpf|jpm|jpg2|j2c 将内容复制后,添加到站点的 nginx 伪静态配置文件中。 -## 第三步,开始安装 +### 第三步,开始安装 解压后的站点根目录存在一个安装脚本文件 `install.sh`,我们给该脚本赋予可执行权限: @@ -104,7 +108,7 @@ chmod +x install.sh 然后根据脚本提示安装即可。 -## 第四步,配置消息队列 +### 第四步,配置消息队列 兰空图床在生成缩略图、图片处理以及发送邮件等等功能中,这些耗时任务都需要使用消息队列来执行,我们可以使用 `php artisan queue:work` 命令来运行消息队列。 @@ -155,4 +159,97 @@ grep -E "^User|^Group" /etc/httpd/conf/httpd.conf sudo supervisorctl reread && sudo supervisorctl update && sudo supervisorctl start "lsky-pro-worker:*" ``` -至此,程序安装完成。 \ No newline at end of file +至此,程序安装完成。 + +## Docker 安装 + +### 下载源码 + +因 PHP 源码的特殊性,兰空图床不提供构建好的镜像,需要通过本地构建镜像,然后运行。 + +我们需要下载源码,然后把源码上传至安装了 docker 的服务器中,然后使用终端登录服务器,进入源码根目录。 + +### 构建本地镜像 + +```shell +docker build -t lsky-pro-plus -f docker/Dockerfile . +``` + +### 创建数据目录 + +为了方便查看上传文件、缓存、日志、数据库等,这些通常需要映射到宿主机。执行以下命令快速创建程序运行时需要的文件夹和数据库文件(您也可以手动创建,但是不能不创建): + +```shell +mkdir -vp data/{cache,logs,private,public,uploads} \ +&& touch data/database.sqlite \ +&& chmod -R 777 data/{public,uploads} +``` + +目录和文件解释: + +- `data/cache` 缓存目录 +- `data/logs` 日志文件存放目录 +- `data/private` 上传的私有文件目录,例如支付证书文件等 +- `data/public` 上传的公开文件目录,例如头像等 +- `data/uploads` 自定义储存上传的图片 +- `data/database.sqlite` 数据库文件 + +### 启动并运行 + +```shell{4-6} +APP_DATA="./data" \ +APP_PORT="8080" \ +APP_NAME="Lsky Pro+" \ +APP_URL="http://localhost" \ +APP_SERIAL_NO="test" \ +APP_SECRET="test" \ +ADMIN_USERNAME="admin" \ +ADMIN_EMAIL="admin@qq.com" \ +ADMIN_PASSWORD="123456" \ +docker-compose up -d +``` + +::: warning +请务必正确填写配置后执行,否则会导致安装失败,如果安装失败,可能需要删除容器后重启执行运行。 +```shell +docker stop lsky-pro-plus +docker rm lsky-pro-plus +``` + +有时候你还可能需要删除镜像和储存卷: +```shell +docker rmi -f lsky-pro-plus +``` +::: + +参数解释: + +- `APP_DATA` 持久化数据储存位置,可以是绝对路径或相对路径 +- `APP_PORT` 宿主机运行端口,默认为 8080 +- `APP_NAME` 应用名称 +- `APP_URL` 站点 url +- `APP_SERIAL_NO` 许可证编号 +- `APP_SECRET` 许可证密钥 +- `ADMIN_USERNAME` 管理员用户名,只能包含英文字母、数字、中横线(-)或下划线(_) +- `ADMIN_EMAIL` 管理员邮箱 +- `ADMIN_PASSWORD` 管理员密码 + +请务必填写正确后执行。执行以下命令查看服务运行日志,便于排查问题: + +```shell +docker logs -f lsky-pro-plus +``` + +-f 参数用于实时跟踪日志输出。 + +然后可以访问 http://localhost:8080 预览站点。通过反向代理提供对外服务。 + +::: tip +成功运行后当前目录的程序文件会持久化储存在 [Docker Volume](https://docs.docker.com/engine/storage/volumes/#create-and-manage-volumes) 中,然后映射必要的文件到宿主机(APP_DATA 定义的位置)。 + +这意味着,若后续不需要重新构建容器了,除了您设置的 `APP_DATA` 的目录,则其他程序文件都可以删除,节省服务器储存。后续的源代码或其他文件,都通过 [Docker Volume](https://docs.docker.com/engine/storage/volumes/#create-and-manage-volumes) 管理。 +::: + +::: danger 警告 +请不要将本地镜像上传至 docker hub 或打包后分发,否则可能会泄漏许可证编号或密钥等隐私数据。 +::: \ No newline at end of file