之前使用过开源版的兰空图床做了个拍照屏,但是开源版已不再进行修复(除非有重大BUG可能会考虑)。这次狠心买了新的LskyPro+ V2版。在发布文章时,整体比较新,文档还不完全,在这里把踩过的坑记录一下。
购买和下载源码
这里就自行前往官网,注册账号购买吧,如果喜欢这篇文章,可以的话可以填写我的邀请码rsjwy 以支持我。
安装
宝塔安装
建议使用宝塔安装,安装好nginx、mysql、php。相关环境请看官网要求
配置环境
装好宝塔后,安装niginx,版本用推荐的版本即可;Supervisor直接使用宝塔Supervisor管理器处理。php版本>=8.2,并且配置好插件和函数,相关要求前往官网查看。本次使php8.2版本,只需要添加fileinfo和imagemagickc这两个插件即可;同时也要把被禁用的函数从禁用列表内移除,在宝塔php8.2版本,需要移除下面的这些被禁用的函数。
创建站点
在面板网站创建站点,可以在这里直接创建数据库,指定运行环境为你安装的php版本。

创建完成后,在网站设置里设置运行环境为/public

然后设置伪静态,代码如下
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ ^/livewire {
expires off;
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .*\.(jpg|jpeg|webp|avif|bmp|gif|png|tif|tiff|jp2|j2k|jpf|jpm|jpg2|j2c|jpc|jpx|heic|heif)$ {
try_files $uri $uri/ /index.php?$query_string;
}
执行安装脚本
设置玩环境后,执行sudo ./install.sh 指令,根据提示完成剩下配置。
配置消息队列
前往之前安装的Supervisor管理器,添加守护进程。
运行目录指定你自己的!!!宝塔网站目录的执行用户一般是www

配置计划任务
计划任务命令为下面的这串代码,即每分钟执行一次。前往宝塔面板的计划任务添加。
* * * * * cd /www/wwwroot/app.com && php artisan schedule:run >> /dev/null 2>&1
收尾
如果在网站和用户之间有cdn或者waf,反代时反代了80端口,会存在请求https返回http,这个在官网有介绍原因。在反代侧增加如下配置
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;至此,部署完成
docker安装
docker里的nginx需要修改,默认可能会存在无法上传大于1M文件的情况,需要进行修改,这里不再赘述,建议使用宝塔部署
修改docker compose
这里就是基于docker安装,Dockerfile在压缩包根目录下的docker文件夹内,也可以自定义docker-compose文件自定义部署,下面将会修改本文件,以使用已存在的mysql数据库。
上传源码以及解压就不再叙述,将从修改文件开始。这里将不再使用内置的脚本,直接修改docker-compose文件进行自定义。
如果服务器在境内,请首先配置加速域名,以方便拉取所需资源,可在docker镜像监控获取可用加速地址。
做好前置步骤后,我们进入解压出来的目录下,进入docker目录,打开docker-compose文件
注意,尽量不要使用挂载目录形式,会导致已拷贝的文件在docker内被覆盖,推荐使用卷挂载。
但是经过测试,创建卷时,即使指定了挂载路径(数据实际存放位置),但是仍然会在默认位置创建文件,占用两份空间。问过AI没有好方案,只有迁移整体的docker卷root目录。根据实际需要来。
本次将手动复制数据的形式实现,故删除了命名卷的指定。解压时直接把代码解压到/opt/data/Lsky/code目录下。
services:
app:
build:
context: ..
dockerfile: ./docker/Dockerfile
image: lsky-pro-plus
container_name: lsky-pro-plus
environment:
#环境变量(配置信息),
ports:
- #访问端口:80
networks:
- 1panel-network
volumes:
- /opt/data/Lsky/code:/var/www
- /opt/data/Lsky/data:/var/www/data
restart: unless-stopped
networks:
1panel-network:
external: true有一个BUG,我目前没了解透彻具体原因,当配置的mysql地址为IP地址,则会一直陷入一个等待循环,就是docker文件夹下的entrypoint.sh内的一个等待sql启动。所以改为使用1Panel的容器网络,来通过这个网络访问MySQL。
构建
在docker目录下,执行docker-compose up -d --build 命令构建镜像,并等待启动
注意!!构建后的镜像不要离开服务器,因为内部存储了docker-compose文件,并且有你的密钥,属于敏感数据。
访问容器的日志,看到Installation successful!即为配置成功!访问网页即可使用。
使用
API接口
访问API文档查看相关信息,注意,在接口前添加/api/v2/ 才可以正确使用接口,Token登录自己的账户页面创建和设置访问权限。
评论