-
Notifications
You must be signed in to change notification settings - Fork 19
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Wisp X
committed
Dec 4, 2024
1 parent
554529e
commit 8dd047a
Showing
1 changed file
with
102 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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:*" | ||
``` | ||
|
||
至此,程序安装完成。 | ||
至此,程序安装完成。 | ||
|
||
## 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="[email protected]" \ | ||
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 或打包后分发,否则可能会泄漏许可证编号或密钥等隐私数据。 | ||
::: |