Loading... ## 概述: 家里的群晖Synology NAS Docker中,安装了荔枝相册Lychee ,默认上传文件大小是100M,图片当然是足够了,但上传视频的时候,老是提示post_max_size 受限,上传失败。 按理来说,这个问题并不复杂,修改对应的PHP.INI文件,就可以了,1分钟的事情,可是我却整整用掉了一个晚上研究,崩溃。 ## 为什么会这样? 原因就是Docker中的应用,调用的是它独立的web环境,并且docker中的文件目录,只能通过SSH命令看到,SFTP是看不到的,而且就算你能看到,也找不到对应的目录,它的存放目录是它自己一长串代码生成的目录,真是痛苦。 ## 折腾起来吧 我有去lychee的官网看过介绍,但官网写的太粗劣,也使我走了不少的弯路:lychee01.jpg 官网让更改的是/etc/nginx/nginx.conf,但是群晖系统,这个文件是修改不了的,每次设备重启,文件就会被复原。网上的方案,大多都是添加达到引用的.conf中,差点导致我系统启动不起来,放弃。 当然,我也试过放弃DOcker环境,重新把lychee配置在虚拟机中,一切都是那样的顺利,结果发现照片没问题,视频还是存在报错,主要原因是,虚拟机无法引用群晖系统中的两个插件:FFmpeg 和Exiftoollychee02.jpg 我查看了我的PHP插件,里面是有Exiftool的,但不知道为啥,就是报错。放弃 我觉得在群晖套件中选择套件安装或直接拉源码。SSH到群晖APPSTOR中,这个方案是可行的,至少可以调用系统的环境和插件,但没去研究。 跑题了,我们要解决的问题是:如何解决Docker中Lychee 上传文件大小的限制?中间的弯路,就不做过多描述了,网上其实是有解决方案的,但各路大神,写的步骤比较简略,对小白很不友好,尤其是我这种对SSH命令完全零基础的人,真是每一步都走的那么艰难。 ## 直接进入正题 其实,就是想办法找到docker中,程序调用的PHP.INI的信息,然后修改它。我的SSH是直接利用root用户登录的,你如果是普通用户登录,请记得获得管理员权限。 以下代码中//为注释 ABAP 代码: ```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地址 ```  lychee03.jpg 此处内容,需回复之后可见 剩下的,就是根据这个路径找到,/volume1/@docker/btrfs/subvolumes/6a7c8241e27eb7888e09c63dcfabf71d992da023face7cea90b624ea46b29129/etc/php/8.1/cli/php.inilychee04.jpg 请各自根据自己的系统信息,对应修改,不要盲目的只会复制和粘贴,找到文件位置就好办了,我不习惯用vim修改,直接登录SFTP找到文件,修改,搞定! 补充,或者在你新建的uplouds.ini,增加你关心的几个参数,以下内容,也是可行的,不过我并没验证过,只是网上的解决方案。 ABAP 代码: ```abap upload_max_filesize = 512M post_max_size = 512M max_execution_time = 600 ``` 最后修改:2023 年 07 月 27 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏