lychee是啥
lychee是一个基于php实现的动态网站,可以实现一个轻量的功能简单的相册,但是由于本人对php毫无概念,又不愿意使用docker,所以配置过程较为艰难,再加上网上资料太少,官网的文档更是点到为止,这里先做一下笔记。绝对不是涩图太多了所以才想到搞相册的,虽然但是这玩意功能确实有限
注,这里的操作都是在arch linux系统下完成的
安装
PHP
发行版包管理器直接安装即可,(写这篇文章的时候archlinux的php包里是8.2的版本),需要安装php-fpm,对应数据库mod,根据发行版的配置文件开启mod.
archlinux是在php.ini里打开。但是官方给的说明里面mod也可以在/etc/php/conf.d/
目录里面启用(不过这个目录下面已经有imagick.ini了,所以还是在这个里头启用吧),但是php.ini里面已经给了一堆注释过的mod名称,这就很蠢了。
需要额外安装的mod有php-gd,Imagemagick,我这里比较懒就直接用sqlite了
应该要开这些东西
1 | extension=pdo_sqlite |
可能需要并运行systemctl edit php-fpm
,更改选项为ProtectSystem=false
ProtectSystem 可以设置为 true/false/full. 设置为 true, /usr, /boot 被设置为只读. 设置为 full, /usr, /boot, /etc 被设置为只读. 设置为 false, 则应用可以正常访问上述目录. 这个选项可以保护系统目录不会被应用修改, 建议所有长时间运行的服务开启该选项.
lychee
下载本体
直接git clone
1 | git clone https://www.github.com/LycheeOrg/Lychee /var/www/html/Lychee |
然后到目录下运行,当然需要安装composer先
1 | composer install --no-dev |
目录权限
owner需要改成服务器的用户,archlinux下nginx的用户名叫http
.env
会在安装后自动从.env.example
中生成。
然后public
下开2775权限
此时其实你也可以对.env进行一些基本设置,如url,database,和储存目录进行设置
nginx
这里是一个示例配置文件
1 | server { |
然后启动nginx和php-fpm
配置
如果上面的配置都完成了的话,现在你应该可以走域名来访问这个服务,然后你会进入一个配置检查页面,可能会让你对目录权限,插件什么的进行调整。
exiftool
这是用来获取图片元数据的,该工具需要额外安装,并在./vendor/lychee-org/php-exif/lib/PHPExif/Adapter/Exiftool.php
中的tool-path
当中填写exiftool的位置,可以用which exiftool
获取其位置。然后到设置的图形界面里的全部设置里头把has_exiftool设置为1
命令行导入图片
官方给了从命令行导入图片的cli命令php artisan lychee:sync /path/to/import --album_id="album ID" --owner_id=1 --resync_metadata --import_via_symlink=%s --skip_duplicates=%s
,可以通过一些方式实现自动导入不过还是挺废的我觉得,目前发现有’[‘ ‘]’的目录无法被导入,虽然看到issue里提过甚至说已经被修改了,但是貌似还是有问题的。