经过简单调研,从Piwigo和Lychee中选择安装Piwigo。
另外还有一款PhotoPrism目前还在开发之中,先不考虑了。
安装
根据github主页, 先安装需求条件:
nginx
安装nginx: sudo yum install nginx
启动nginx: sudo systemctl start nginx.service
然后访问你的ip或域名就可以看到Nginx的默认页面,说明成功安装。
开启启动Nginx:sudo systemctl enable nginx.service
PHP 5.3 or greater
若直接采用centos中的yum安装:sudo yum -y install php,版本是5.4,远远不够,因此我们要手动更新rpm即可。
首先获取rpm:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
然后可以利用 sudo yum list php*
查看目前都有php的什么版本了,可以发现从4-7.2的版本都有,7.2版本名为72w,因此安装该版本即可:
sudo yum -y install php72w
但安装完毕后,输入php -v发现并没有该命令,因为php72w只是安装了php最小的库,一些应用还未安装,因此安装一些拓展包即可:
yum -y install php72w-cli php72w-common php72w-devel php72w-mysql php72w-mbstring php72w-xml
为了后续实现php与nginx的连接,需要一个FastCGI来实现php与nginx的交流。对于php,php-fpm作为一种fast-cgi进程管理服务,会监听端口,一般默认监听9000端口,并且是监听本机,也就是只接收来自本机的端口请求,可以通过netstat -nlpt|grep php-fpm
来查看
我们通过上面相似的形式安装:
sudo yum -y install php72w-fpm.x86_64
PHP要与PHP-FPM版本一致
安装完成后,开始php-fpm: sudo systemctl start php-fpm
开机启动 sudo systemctl enable php-fpm
php-fpm的监听端口可以在其配置文件中修改(/etc/php-fpm.d/www.conf)
安装gd库,gd库是一个开源的图像处理库,它通过提供一系列用来处理图片的API,使其可以用来创建图表、图形、缩略图以及其他图像的处理操作。在安装gd库之前,需要安装libpng、jpegsrc、freetype这三款软件。
sudo yum install php72w-gd
MySQL 5 or greater or mariadb
centos中默认的改为了mariadb,两者是通用的。这里安装mariadb
按照教程中修改配置等。
ImageMagick (recommended) or PHP GD
安装依赖:
yum install -y fftw fftw-devel fftw-devel bzip2-devel freetype-devel libjpeg-devel libpng-devel libtiff-devel giflib-devel zlib-devel ghostscript-devel djvulibre-devel libwmf-devel jasper-devel libtool-ltdl-devel libX11-devel libXext-devel libXt-devel lcms-devel libxml2-devel librsvg2-devel OpenEXR-devel openjpeg openjpeg-devel openjpe openjpeg2 openjpeg2-devel openjpeg2-libs libwebp libwebp-devel
首先下载(http://www.imagemagick.org/script/download.php):
wget https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-libs-7.0.8-64.x86_64.rpm
wget https://imagemagick.org/download/linux/CentOS/x86_64agick-7.0.8-64.x86_64.rpm
安装
rpm -Uvh ImageMagick-libs-7.0.8-11.x86_64.rpm
rpm -Uvh ImageMagick-7.0.8-11.x86_64.rpm
如果缺少依赖,则按照提示安装依赖关系
输入convert --version
能够显示版本则安装完成
安装piwigo
以上先决条件都安装完成后,可以开始安装piwigo了。
首先现在piwigo的压缩包,在github主页上有
然后将piwigo压缩包的内容放到你的服务器web server上
配置到nginx,访问对应的网址,piwigo会自动检测,然后跳转到install.php上。
这里需要先准备一个数据库,建立方式可以参考我的博客
需要修改的是,在新的mariadb中,创建用户要使用以下方法:
GRANT USAGE ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
然后对需要授权的table进行授权即可:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON tablename.* TO 'username'@'localhost' IDENTIFIED BY 'password';
修改数据库位置时,对于centos,需要在/etc/my.cnf.d/client.cnf
中自行添加相关设置。
然后创建数据库,将用户授权可以读写,最后flush privileges;
刷新系统权限表
然后转到网页上,网页上的数据库地址填写my.cnf中sock文件的路径。
用户名、密码为创建的用户名、密码
问题
通过查看/var/log/php-fpm/www-error.log
可以看到php相关的错误。
Class ‘DOMDocument’ not found
这是由于没有安装DOM拓展,对于php5之后的版本,可以安装php-xml
即可。
注意要与php版本一致
安装完成后需要重启php-fpm服务:sudo systemctl restart php-fpm
查看php扩展
通过php-config --extension-dir
php-config --include-dir
可以看到相关目录,
另外,可以通过php -i
看到phpinfo的输出
Call to undefined function mb_detect_encoding()
首先安装扩展:php72w-mbstring.x86_64
使用
相册
相册album是画廊gallery的基本结构,分为2类: 虚拟virtual和实体physical
- 虚拟相册 :虚拟相册不对应实体的文件夹,更像是数据库中的逻辑结构,可以从管理面板-相册-管理中创建虚拟相册
- 实体相册:如果使用ftp+同步的方式添加图片到gallery,那么就相当于创建了实体相册。实体相册表示的是在服务器下galleries文件夹下的任何层级的目录。如果是远程,那么可以通过ftp传输,如果在本地,可以直接对文件夹进行操作。每个相册都可以存在很多等级
我觉得相册管理可以以实体相册为主,因为虚拟相册可以在不移动相片的情况下,将其加入任何实体相册,而实体相册的移动则伴随着相片的移动,比较费时。
在galleries下面,可以先建立一个大文件夹,里面优先以年份作为名称建立文件夹,在每个文件夹中以日期加事件简述的形式再建立文件夹,在这一层文件夹中存储照片。
对于虚拟相册则比较灵活,可以以主题等形式灵活创建
在进行图片整理得过程中,可能会需要移动照片。但是,移动照片后,piwigo再进行同步时,会将移动过的照片的信息在数据库中删除,然后在新的位置添加。这样,已经添加过的metadata就消失了。为了解决这个问题,可以使用physical photo move
插件
metadata
相片的元数据:基本元数据,exif,iptc,makernotes等
基本数据:大小、颜色、甚至是缩略图
exif:相机数据
iptc:描述图像的内容,例如titles,descriptions,keywords等
makernotes:设备相关的一些数据等
缩略图
https://odd-one-out.serek.eu/code/piwigo-thumbnail-generation-script/
piwigo自动生成的缩略图放在了_data/i/galleries/
或_data/i/upload
插件
安装插件:可以在管理面板安装,也可以到官网上下载之后上传到网站服务器的目录下的plungins目录下即可,文件所属用户改为nginx用户,我的是www
piwigo-videojs
需要安装mediainfo, ffmpeg
为了让ffmpeg能够转化格式,需要安装一些库:libfaad2 libx264-123 libvorbis0a libvorbisenc2 libvorbisfile3 libvpx1 libxvidcore4
安装方法参照这个
在安装x264时,还需要安装nasm,要求版本>2.13。去官网(https://www.nasm.us/pub/nasm/releasebuilds/)下载(https://www.nasm.us/pub/nasm/releasebuilds/2.14/nasm-2.14.tar.gz),然后编译安装
安装exiftool:(如果报错,需要先安装yum install perl-devel
)
git clone https://github.com/exiftool/exiftool.git
cd exiftool
perl Makefile.PL
make
make test
sudo make install
另外,还需要安装videojs来进行播放。videojs是开源的html5播放器。
先安装node.js sudo yum install -y nodejs
启用淘宝镜像:npm install -g cnpm --registry=https://registry.npm.taobao.org
启用淘宝的npm镜像cnpm,注意:启用后当我们要输入npm命令时,就需要输入cnpm
先安装sudo cnpm install grunt
然后安装videojs:cnpm install video.js
安装完成后在管理面板选择对应的videojs版本即可。
physical photo move
参照github主页
对于移动相册,后台-相册-管理-选择需要移动的物理相册-编辑,在此页面下多了一个move_button,选择要移动到的位置,可以先勾选only perform a simulation
来进行测试,没问题后再移动
为了保证能够移动,请记得将文件夹权限设为777
这个只能进行移动,不能进行重命名。因此对于文件夹的命名要谨慎
扩展
与kodi链接
https://github.com/abrenoch/piwigo-kodi