Piwigo部署

Author Avatar
st 2021年04月04日
  • 在其它设备中阅读本文章

又少了一个需要依靠第三方平台的需求。

关于图床

觉得需要一个自己的图床也有段时间了,主要是博客配图和网站配图之类的,直接上传总有点不是个滋味,第三方图床也总有诸多限制。

之前在用的是postimages,免费不缩图固然不错,外链过后国内访问只能拿到小图,对我影响虽然不大还是有点难受。

开源图床和照片管理平台找了一圈,看起来比较有名的有Chevereto,但是完全版要收费,而且整个项目页面花花绿绿,第一印象挺差的。然后看了一些别的选择,比如pixelfedLycheepictshare,不过pixelfed和Lychee看起来社交成分太重,pictshare又两年没更新,最后选了Piwigo来部署。

部署Piwigo

我因为打算用二级域名来访问piwigo,所以提前配置了一下apache和DNS,然后签了一下https证书,让piwigo.stsecurity.moe指向stsecurity.moe/piwigo/

正如大多数开源程序,一开始的部署总是很轻松的,按照github项目页面的NetInstall,往webroot放个php脚本再访问就行了,安装脚本会自动建一个名为piwigo的子目录。

安装完过后直接配置就可以,可以单独创建一个数据库用户和数据库,可以参考官方教程。我这里点了开始安装过后就报错了,当时我就想没这么简单,不过输入地址倒是可以访问piwigo了。

解决无法进入admin页面的问题

登陆上去直接跳过了上传图片进了主页,然后四处点点链接就发现进不了admin页面,点了admin链接后就跳出错误"Fatal error: Uncaught Error: Call to undefined function mb_substr() in ............."。这是php没有安装mbstring造成的,我php版本是7.3,直接运行apt-get install php-mbstring即可,安装完后用service apache2 force-reload重启apache。

安装ImageMagick 7

排错过程中我怀疑是没安装ImageMagick 7导致的,就安装了ImageMagick 7,按照一个教程通过make install安装的,结果默认的ImageMagick 7缺少一些png的模块,导致我最后不得不用make uninstall卸载。

当时是上传了一些截图,上传成功后发现所有图片都不能正常显示,一番搜索找到了这个post,于是按照其中的方法

1. Remove ImageMagick
2. apt-get install libpng-dev zlib1g-dev
3. apt-get install imagemagick libmagick-dev

重新安装ImageMagick 7后就基本正常了,有一张图片仍旧不正常显示,重新上传解决了问题。

解决web form不显示的问题

成功进入admin界面后我以为万事大吉了,结果尝试上传图片时发现web form根本不显示,chrome控制台有错误Uncaught TypeError: Cannot read property 'selectize' of undefined at m.fn.init.jQuery.fn.pwgAddAlbum (89jfpp.js:21) at admin.php?page=photos_add:252 jQuery.fn.pwgAddAlbum @ 89jfpp.js:21 (anonymous) @ admin.php?page=photos_add:252。又找了一圈,发现是php没有安装GD导致的,跟装mbstring差不多,运行apt-get install php-gd然后用service apache2 force-reload重启apache就行了。

上传问题

为了正常上传文件可能还需要改一下php的配置,编辑/etc/php/7.3/apache2/php.ini,修改一下"upload_max_filesize"和"post_max_size"以及"max_execution_time"然后保存重启apache即可。

最终成果

blog图床
看上去还不错,上传的图片也有不少大小可以选,最重要的是自己的配图终于是自己管理了,安心不少。

本文链接:https://blog.stsecurity.moe/archives/152/
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.