当前位置: 首页 > article >正文

单网页图库应用Single File PHP Gallery

在这里插入图片描述

什么是 Single File PHP Gallery ?

Single File PHP Gallery 是一个基于单个 PHP 文件的网页图库。您只需将该脚本复制到任何包含图像的目录,即可创建图库。子目录将作为子图库。图像和目录的缩略图会自动生成。使用 Single File PHP Gallery 无需任何配置或编程技能。

软件特点:

  • 单文件实现:整个图库功能仅包含一个 PHP 文件,用户只需将此文件放入任何包含图像的目录,即可自动生成图库。
  • 简单易用:无需复杂的配置或编程技能,用户只需将脚本复制到所需目录即可。
  • 自动生成缩略图:支持自动生成图像和目录的缩略图,方便用户浏览。
  • 全面支持多种图像格式:支持 JPGPNGGIFWebP 等多种格式,并可显示 EXIFIPTC 信息。
  • 功能丰富
    • 图像分类管理:支持创建子目录和标签。
    • 图片轮播和幻灯片选项。
    • 支持 GPS 信息链接和地图显示。
    • 集成 PayPal 用于图像出售。
    • 支持密码保护。
    • 提供水印功能。
  • 开源许可证:对于个人非商业用途,使用是免费的;商业用途需要捐赠。

官方提供了在线演示:https://sye.dk/sfpg/demo

构建镜像

如果你不想自己构建,可以跳过,直接阅读下一章节

理论上在群晖的 Web Station 上可以直接运行,因为软件运行的要求很简单:

  • 一个能够运行 PHP 7.0 或更高版本的网络服务器;
  • PHP GD 库;
  • PHP 对服务器的写入权限;

但为了更具备通用性,老苏还是把它折腾成了镜像,这个镜像实际上只是 PHP 的运行环境,程序文件可以在主机目录上,映射到容器中,这样可以方便我们后续更新程序文件

下面是 Dockerfile 文件

# 使用 PHP 官方镜像作为基础镜像
FROM php:7.4-apache

# 安装必要的开发库
RUN apt-get update && apt-get install -y \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libpng-dev \
    libgif-dev \
    libwebp-dev \
    libtiff-dev \
    libheif-dev \
    && docker-php-ext-configure gd \
       --with-freetype \
       --with-jpeg \
       --with-webp \
    && docker-php-ext-install gd

# 设置适当的权限
RUN chown -R www-data:www-data /var/www/html && \
    chmod -R 755 /var/www/html

# 启用 Apache mod_rewrite
RUN a2enmod rewrite

# 暴露端口 80
EXPOSE 80

构建镜像和容器运行的基本命令如下👇

# 保存 Dockerfile 文件

# 构建镜像
docker build -t wbsu2003/sye:v1 .

# 新建子目录
mkdir -p gallery

# 修改目录权限
chmod a+rw gallery

# 将 https://sye.dk/sfpg/Single_File_PHP_Gallery_4.12.0.zip 解压后放入 gallery 目录
# 将图片放入 gallery 目录

# 运行容器
docker run -d \
    --name sfpg \
    -p 8080:80 \
    -v $(pwd)/gallery:/var/www/html \
    wbsu2003/sye:v1

注意

因为是基于 apache 编译的,如果群晖内核版本太低,会遇到下面的错误,这个 AH00141 已经遇到多次了,老苏除了换机器,也没找到其他的办法;

Function not implemented: AH00141: Could not initialize random number generator

准备

docker 文件夹中,创建一个新文件夹 sye,并在其中建一个子文件夹 gallery

将 https://sye.dk/sfpg/Single_File_PHP_Gallery_4.12.0.zip 下载后,解压放入 gallery 目录

将图片目录放入,可以放多个图片目录,也可以有子文件夹等等

需要修改 gallery 目录的权限。权限 –> 新增 –> 用户中选取 Everyone –> 勾选 读取写入

如果用命令行的话,只要在上一级目录中执行下面的命令即可

# 修改目录权限
chmod a+rw gallery

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 wbsu2003/sye ,下拉仔细找,版本选择 latest

文件夹装载路径说明
docker/sye/gallery/var/www/html存放程序文件和图片目录

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
503680

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 sye 和 子目录
mkdir -p /volume2/docker/sye/gallery

# 进入 sye 目录
cd /volume2/docker/sye

# 修改目录权限
chmod a+rw gallery

# 将 https://sye.dk/sfpg/Single_File_PHP_Gallery_4.12.0.zip 解压后放入 gallery 目录
# 将图片资料放入 gallery 目录

# 运行容器
docker run -d \
    --restart unless-stopped \
    --name sfpg \
    -p 5036:80 \
    -v $(pwd)/gallery:/var/www/html \
    wbsu2003/sye

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  sfpg:
    image: wbsu2003/sye
    container_name: sfpg
    restart: unless-stopped
    ports:
      - 5036:80
    volumes:
      - ./gallery:/var/www/html

然后执行下面的命令

# 新建文件夹 sye 和 子目录
mkdir -p /volume2/docker/sye/gallery

# 进入 sye 目录
cd /volume2/docker/sye

# 修改目录权限
chmod a+rw gallery

# 将 docker-compose.yml 放入当前目录

# 将 https://sye.dk/sfpg/Single_File_PHP_Gallery_4.12.0.zip 解压后放入 gallery 目录
# 将图片资料放入 gallery 目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:5036 就能看到主界面

其中 @eaDir 是群晖的系统目录,如果你不想显示,可以修改 index.php 文件

在文件中搜索 exclude,添加要过滤的目录 @eadir

  • 增加后的整行代码:option('DIR_EXCLUDE', ['_sfpg_data', '_sfpg_zip', '_sfpg_icons', '@eadir']);
  • 注意,目录必须用小写字母;

保存后,刷新页面就可以了

进入目录

进入照片,可以查看 info 信息

功能简单,但易用,支持原有的目录结构,和老苏之前介绍的 PiGallery2 有的一拼

文章传送门:目录优先的图片库网站PiGallery2

参考文档

Single File PHP Gallery 4.12.0
地址:https://sye.dk/sfpg/

Single File PHP Gallery
地址:https://sye.dk/sfpg/demo/


http://www.kler.cn/a/395358.html

相关文章:

  • Java 类型转换(Type Casting)
  • 计算机毕业设计Python+大模型中医养生问答系统 知识图谱 医疗大数据 中医可视化 机器学习 深度学习 人工智能 大数据毕业设计
  • ChatGPT登录失败的潜在原因分析
  • stream学习
  • Shell 脚本中的大小写陷阱:为什么 ${PWD} 而不是 ${pwd}?
  • 必修 -- 常用笔试题
  • 求知导刊期刊简介及投稿点评
  • 【go从零单排】URL Parsing(URL解析)
  • PyEcharts | 通过分析奥迪车购买数据来学习柱状折线复合图像的绘制方法
  • 风险数据集市整体架构及技术实现
  • 深度学习知识点1--编码器与解码器
  • 怎样在软件设计中选择使用GOF设计模式
  • 前端笔试中oj算法题的解法模版
  • Git - 命令杂谈 - fetch与push
  • 13 字母异位词分组
  • 第12课 二维数组(1)
  • Springboot配置全局异常通用返回
  • 电子工牌独立双通道定向拾音方案(有视频演示)
  • qt里面的ui文件和c++的关系
  • Elasticsearch 重建索引数据迁移
  • 智慧安防丨以科技之力,筑起防范人贩的铜墙铁壁
  • 【机器学习】特征工程、降维与超参数调优:提升机器学习模型表现的三大核心技术
  • 点云论文阅读-1-pointnet++
  • HTTP —— OSI七层模型
  • 深度学习之 LSTM
  • MACA-PEG-NHS中PEG链段能够增加修饰后材料的溶解度和稳定性