概述:

 家里的群晖Synology NAS Docker中,安装了荔枝相册Lychee ,默认上传文件大小是100M,图片当然是足够了,但上传视频的时候,老是提示post_max_size 受限,上传失败。
 按理来说,这个问题并不复杂,修改对应的PHP.INI文件,就可以了,1分钟的事情,可是我却整整用掉了一个晚上研究,崩溃。

为什么会这样?

 原因就是Docker中的应用,调用的是它独立的web环境,并且docker中的文件目录,只能通过SSH命令看到,SFTP是看不到的,而且就算你能看到,也找不到对应的目录,它的存放目录是它自己一长串代码生成的目录,真是痛苦。

折腾起来吧

 我有去lychee的官网看过介绍,但官网写的太粗劣,也使我走了不少的弯路: title=lychee01.jpg

 官网让更改的是/etc/nginx/nginx.conf,但是群晖系统,这个文件是修改不了的,每次设备重启,文件就会被复原。网上的方案,大多都是添加达到引用的.conf中,差点导致我系统启动不起来,放弃。 当然,我也试过放弃DOcker环境,重新把lychee配置在虚拟机中,一切都是那样的顺利,结果发现照片没问题,视频还是存在报错,主要原因是,虚拟机无法引用群晖系统中的两个插件:FFmpeg 和Exiftool title=lychee02.jpg

 我查看了我的PHP插件,里面是有Exiftool的,但不知道为啥,就是报错。放弃 我觉得在群晖套件中选择套件安装或直接拉源码。SSH到群晖APPSTOR中,这个方案是可行的,至少可以调用系统的环境和插件,但没去研究。 跑题了,我们要解决的问题是:如何解决Docker中Lychee 上传文件大小的限制?中间的弯路,就不做过多描述了,网上其实是有解决方案的,但各路大神,写的步骤比较简略,对小白很不友好,尤其是我这种对SSH命令完全零基础的人,真是每一步都走的那么艰难。

直接进入正题

 其实,就是想办法找到docker中,程序调用的PHP.INI的信息,然后修改它。我的SSH是直接利用root用户登录的,你如果是普通用户登录,请记得获得管理员权限。
以下代码中//为注释

ABAP 代码:

docker ps -a 
//查看所有的容器
docker exec -it fd2152ed874c /bin/bash
//找到对应的容器ID,并填写,我的是fd2152ed874c
whereis php
//查找PHP信息
/usr/bin/php --ini
//按照自己的路径查找ini文件,这一切的操作,其实就是为了找出:loaded configuration file对应的php.ini地址

 title=

lychee03.jpg

此处内容,需回复之后可见 剩下的,就是根据这个路径找到,/volume1/@docker/btrfs/subvolumes/6a7c8241e27eb7888e09c63dcfabf71d992da023face7cea90b624ea46b29129/etc/php/8.1/cli/php.ini title=lychee04.jpg

 请各自根据自己的系统信息,对应修改,不要盲目的只会复制和粘贴,找到文件位置就好办了,我不习惯用vim修改,直接登录SFTP找到文件,修改,搞定!

补充,或者在你新建的uplouds.ini,增加你关心的几个参数,以下内容,也是可行的,不过我并没验证过,只是网上的解决方案。

ABAP 代码:

upload_max_filesize = 512M
post_max_size = 512M
max_execution_time = 600
最后修改:2023 年 07 月 27 日
如果觉得我的文章对你有用,请随意赞赏