lsky pro + alist 图床插件

10个月前 (07-14 14:43)阅读443回复0
admin
admin
  • 管理员
  • 注册排名1
  • 经验值160
  • 级别管理员
  • 主题32
  • 回复0
楼主

lecms程序lsky pro + alist 图床插件 ,兼容火车头发布,兼容草稿箱发布,兼容用户前台,管理员后台发布

lsky pro + alist配置如下:

I. 效果展示

传送门 → LeoHao' s Image Hub


个人仪表盘
已上传图片集合
图床控制台


II. 官方文档

LskyPro 兰空图床官方文档:docs.lsky.pro

AList 官方文档:alist.nn.ci

III. 部署步骤

注意:在部署开始前你应该拥有一台公网服务器,另外,以下步骤依赖于 Docker、Nginx 和 AList,请提前安装相关依赖并配置,本文档只对 LskyPro 图床的搭建步骤和必要的注意事项进行介绍。
并不是特别依赖docker 可以进行宝塔部署

Step1. 配置安装服务


安装

curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s install

更新

curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s update

卸载

curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s uninstall

自定义路径

默认安装在 /opt/alist 中。 自定义安装路径,将安装路径作为第二个参数添加,必须是绝对路径(如果路径以 alist 结尾,则直接安装到给定路径,否则会安装在给定路径 alist 目录下),如 安装到 /root

# Installcurl -fsSL "https://alist.nn.ci/v3.sh" | bash -s install /root# updatecurl -fsSL "https://alist.nn.ci/v3.sh" | bash -s update /root# Uninstallcurl -fsSL "https://alist.nn.ci/v3.sh" | bash -s uninstall /root
  • 启动: systemctl start alist

  • 关闭: systemctl stop alist

  • 状态: systemctl status alist

  • 重启: systemctl restart alist

获取密码

需要进入脚本安装AList的目录文件夹內执行如下命令

低于v3.25.0版本

./alist admin

高于v3.25.0版本

3.25.0以上版本将密码改成加密方式存储的hash值,无法直接反算出密码,如果忘记了密码只能通过重新 随机生成 或者 手动设置

# 随机生成一个密码./alist admin random# 手动设置一个密码,`NEW_PASSWORD`是指你需要设置的密码./alist admin set NEW_PASSWORD



Step2. 配置 AList WebDAV 服务

在个人网盘中创建 lskypro-image 文件夹,这里以天翼云盘为例,并在 AList 中将该文件夹挂载到路径 /image,如下图所示:

这里的image就是alist管理里面挂在的路径,一定要看好

在云盘客户端创建图片文件夹
在 AList 中设置存储挂载路径


以上步骤完成后,访问 DAV 链接并通过身份校验后,即可进行图片的上传与访问。假设 AList 绑定的公网域名为 alist.domain.name.cn,则图片存储服务的 DAV 链接为:https://alist.domain.name.cn/dav/image这里的老版本外链图片,无需验证,但是新版本需要验证!

这里可以是直连,直连是https://alist.domain.name.cn/d/image。新版本可直接外链使用


Step2. 启动 LskyPro 图床容器服务

    LskyPro  Docker/未测试

LskyPro 图床服务依赖于多个PHP插件,为了方便部署,我们采用 Docker 的方式安装 ,命令如下:

# 创建容器并启动(宿主机4003端口可自行更改)
sudo docker run -d --name lskypro --restart unless-stopped -p 4003:80 -v /data/lskypro:/var/www/html coldpig/lskypro-docker:latest

Step3. 修改 Nginx 配置项

注意,如果在 Nginx 配置中开启了 HTTPS ,需要执行以下命令修改图床项目源码,否则前端页面布局将被打乱:

sudo docker exec -it lskypro sed -i '32 a \\\Illuminate\\Support\\Facades\\URL::forceScheme('"'"'https'"'"');' /var/www/html/app/Providers/AppServiceProvider.php

假设图床服务的域名为 image.domain.name.cn,AList 部署在本地端口 4015,在 nginx.conf 中添加如下配置项:(下方的版本是alist老版本,可以直连访问,也可使用dav/image)

    #Lsky Pro | Image Hub
    server {
        listen 80;
        listen 443 ssl;
        server_name image.domain.name.cn;
        # HTTPS 需要指定 SSL/TLS 证书路径
        ssl_certificate cert/image.domain.name.cn.pem;
        ssl_certificate_key cert/image.domain.name.cn.key;
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout 5m;
        # 转发图床服务请求
        location / {
         # 转发端口 4003 与 Step2 中设定的宿主机端口保持一致
            proxy_pass http://localhost:4003;
            proxy_read_timeout 600s;
        }
        # 转发 AList 图片直链访问请求
        location /img {
            proxy_pass http://localhost:4015/d/image;
            proxy_read_timeout 600s;
        }
    }

Nginx 配置说明

上传至图床的图片应该是可公开访问的,为此我们在以上 Nginx 配置中增加了 “转发 AList 图片直链访问请求” 配置项。经过以上配置,客户端通过访问 https://image.domain.name.cn/img/${img_path} 即可直接获取图片,无需进行身份验证。

Docker安装教程结束

宝塔安装教程:

下载正式版本

兰空图床的每个版本都是通过 github 发布,下载正式版本请访问 https://github.com/lsky-org/lsky-pro/releasesopen in new window

如果你不是开发者,请不要下载名称为 Source Code 的压缩包,此为核心源代码,需要自己安装拓展。

运行环境配置

  1. 需要关闭 open_basedir,否则会有意想不到的错误。简单来说,open_basedir 是用来限制 PHP 读取目录。

  2. 安装 nginx 或 apache,PHP 8.0.2+,然后为 php 安装上必须的拓展。详见:安装要求 章节

准备安装

  1. 将安装包上传至站点目录然后解压,将站点的运行目录指向程序的 public 文件夹

nginx 需要设置伪静态,内容如下

location / {
  try_files $uri $uri/ /index.php?$query_string;
}
  1. 将程序所在目录的所有文件夹、子文件夹、文件的权限,用户组和所有者改为 www,权限改为 0755

通常情况下,Web 站点目录的所有者和用户组为 www:www

若未正确设置权限,在后续的使用过程中可能会因为权限导致文件无法读取、无法写入、创建文件夹等一系列问题。

开始安装

配置好域名以后,访问站点 首页 ,程序会自动跳转至安装页面,环境检测通过以后即可通过引导进行安装。

安装要求

  • PHP >= 8.0.2

  • BCMath PHP 扩展

  • Ctype PHP 扩展

  • DOM PHP 拓展

  • Fileinfo PHP 扩展 宝塔php安装扩展

  • JSON PHP 扩展

  • Mbstring PHP 扩展

  • OpenSSL PHP 扩展

  • PDO PHP 扩展

  • Tokenizer PHP 扩展

  • XML PHP 扩展 

  • Imagick 拓展 宝塔php安装扩展

  • exec、shell_exec 函数 宝塔php删除函数

  • readlink、symlink 函数 宝塔php删除函数

  • putenv、getenv 函数 宝塔php删除函数

支持的数据库

  • Mysql 5.7+

  • PostgreSQL 9.6+

  • SQLite 3.8.8+

  • SQL Server 2017+

宝塔安装结束:

Step4. 配置 LskyPro 图床

A. 数据库配置

以上步骤完成后,浏览器访问图床服务(image.domain.name.cn)可进入如下图所示的配置页面。配置页面将引导我们设置数据库服务,为了减轻工作量,我们直接使用本地 SQLite 数据库,数据库路径留空即可(将自动在服务根目录的 database 目录下创建 database.sqlite 文件),同时需要设定管理员邮箱和登录密码。


设置数据库为本地 SQLite 文件


配置完成后根据引导进入图床首页。


数据库设置完成后的引导页面


B. 设置存储策略

登录管理员账户,点击侧边栏的 “存储策略” 进入图片文件存储的相关配置,创建一个新的存储策略。


创建新的存储策略


默认存储策略为本地存储,为了不占用服务器空间,我们这里使用 AList 提供的 WebDAV 服务创建一个新的存储策略,配置项如表所示,其中访问域名即为图片直链对应的域名和路径。

注意:记得选中角色组,否则存储策略不会生效。


WebDAV 存储策略配置

老版本:

设置 WebDAV 存储策略


设置 WebDAV 存储策略


新版本:

image.png


重点来了!!!

其中新版本宝塔安装的alist登录需要验证,docker安装的端口可能不同!所以!


在蓝空图床中,nginx配置如下:

server {
# 转发 AList 图片访问请求
location /img {
# 辅助完成 AList DAV 身份验证,${base64} 需要修改为 WebADV "账户:密码" 的 base64 编码
proxy_set_header Authorization "Basic ${base64}";
proxy_pass http://localhost:5244/dav/image;
proxy_read_timeout 600s;
}
}

Nginx 配置说明

上传至图床的图片应该是可公开访问的,但 AList 提供的 WebDAV 服务需要身份验证,为此我们在以上 Nginx 配置中增加了 转发 AList 图片访问请求 配置项,其目的是通过添加 Basic Auth 请求头使 Nginx 替代客户端完成 AList WebDAV 身份验证。

为了防止图片被恶意删除,建议创建一个只具备读取权限的 AList 用户。也就是说,需要两个账号:上传用admin,访问用新建的只读权限用户。

经过以上配置,客户端通过访问 https://image.domain.name.cn/img/${img\_path} 即可直接获取图片,无需进行身份验证。

Basic Auth 请求头内容设置

若 AList WebDAV 的用户名和密码为 username 和 password,则 ${base64} 处填入 “username:password” 的 base64 编码,即:

proxy_set_header Authorization “Basic dXNlcm5hbWU6cGFzc3dvcmQ=”;

编码网址:https://www.ibase64.com/zh-cn/

20230512 更新后的配置方法:

Nginx配置更新,图片直链直接使用 Alist 文件直链(即使用 /d/ 路径而非 /dav/),无需额外创建 WebDAV 用户辅助文件访问验证。

优点:/d/ 路径只对指定文件路径有效,无法查看目录内容,能够隐藏当前图片的上传情况。

server {
# 转发 AList 图片访问请求
location /img {
proxy_pass http://localhost:5244/d/image;
proxy_read_timeout 600s;
}
}


C. 设置 WebDAV 为默认存储策略

WebDAV 存储策略添加后可以将默认本地存储策略删除,防止用户将图片上传至本地服务器。


付费资源

售价300积分立即购买

以上内容仅代表作者观点,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。

本文地址:http://www.chengmang.com/2024/07/4.html

0
回帖 返回lecms插件

lsky pro + alist 图床插件 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息