「Image」- 搭建图床站点

  CREATED BY JENKINSBOT

什么是图床?

图床,Image Hosting Website(或者其他英文名,反正不是什么 Image Bed、Photo Bed 之类的),用来存放图片的空间(或服务器)同时允许外链到其他网站

简单说,就是保存图片的站点,并且能在其他站点中引用。类似的站点有很多,比如 聚合图床imgsha 等等。

当然,我们也可以自建图床站点,该笔记将记录:如何搭建自己的图床站点

第一步、选择开源的图片自托管系统

我们当然可以选择免费的图床站点,但是我们要面对某些问题(比如站点倒闭、服务付费等等),因此选择自建。

当前可用的图床系统

我们有很多可用的图床系统,可以参考在以下页面链接中的介绍:
1)Photo and Video Galleries
2)Piwigo – Manage your photo collection
3)Molunerfinn/PicGo
4)当然还有很多其他图床系统,我们无法全部枚举……

我们选择的图床系统

我们有很多选择,比如 PiwigoPinryPhotato 等等。但是我们懒得对比(成百上千),只要满足我们的需求既可:
1)容易迁移:尽量不使用数据库,可以使用 Sqlite,但是不能使用 MySQL 等数据库;
2)支持外链:毕竟我们要提供给外部引用,自然要外部能够访问;
3)简单易用:我们不想把事情搞得太复杂,我们只需要螺丝刀,不需要工具箱;

最后我们选择 UberGallery – The simple PHP photo gallery 图床系统。虽然不能用作大型图床站点,它能够满足我们的需求。它只负责展示在远程服务器中的图片,而图片是保存在 Git 仓库的,通过 Jenkins 上传到远程服务器,我们不需要 UberGallery 支持图片上传。

第二步、安装 UberGallery 系统

详细的安装方法请参考官方 UberGallery – The simple PHP photo gallery 文档,这里简单记录。

第一步、搭建 Nginx + PHP 环境

1)搭建 Nginx + PHP 5.2+ 环境
2)安装 PHP-GD 扩展

第二步、安装 UberGallery 系统

# git clone --recursive git://github.com/UberGallery/UberGallery.git /srv/http/ubergallery
# cd /srv/http/ubergallery
# cp resources/sample.galleryConfig.ini resources/galleryConfig.ini
# chmod 777 /srv/http/ubergallery/resources/cache

第三步、添加 Nginx 配置

添加 Nginx 配置,是站点可以访问,直接访问 index.php 即可。

第四步、上传图片,访问站点测试

将图片上传到 gallery-images 下即可(不支持多级子目录),然后刷新页面即可显示图片。

# 如果需要多级子目录功能

有时我们希望将图片分类存储,而不是保存在一起,可以参考 UberGallery/multi-gallery-example 项目。

配置方法基本相同,唯一不同之处在于图片的保存目录(galleries/),需要创建子目录来保存图片。

参考文献

图床是什么? – 知乎
图床的名称来历是怎样的? – 知乎
UberGallery – The simple PHP photo gallery
UberGallery/multi-gallery-example: Demonstrating the possibility of a multi-gallery install.
XHTML Transitional Template
Picture gallery selfhosted? : selfhosted