什么是 Single File PHP Gallery ?
Single File PHP Gallery
是一个基于单个PHP
文件的网页图库。您只需将该脚本复制到任何包含图像的目录,即可创建图库。子目录将作为子图库。图像和目录的缩略图会自动生成。使用Single File PHP Gallery
无需任何配置或编程技能。
软件特点:
-
单文件实现:整个图库功能仅包含一个 PHP
文件,用户只需将此文件放入任何包含图像的目录,即可自动生成图库。 -
简单易用:无需复杂的配置或编程技能,用户只需将脚本复制到所需目录即可。 -
自动生成缩略图:支持自动生成图像和目录的缩略图,方便用户浏览。 -
全面支持多种图像格式:支持 JPG
、PNG
、GIF
、WebP
等多种格式,并可显示EXIF
和IPTC
信息。 -
功能丰富: -
图像分类管理:支持创建子目录和标签。 -
图片轮播和幻灯片选项。 -
支持 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 端口号
本地端口 | 容器端口 |
---|---|
5036 |
80 |

命令行安装
如果你熟悉命令行,可能用 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/
@所有人:写文不易,如果你都看到了这里,请点个赞
和在看
,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。
原文始发于微信公众号(各种折腾):单网页图库应用Single File PHP Gallery
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/306663.html