迁移通知
本站内容正在逐步向 https://www.weiran.ink 迁移,更新内容请到新站查找。
多种服务器软件的最大上传附件限制文件汇总
其实都是php
啦。
一般php
每次搞这事儿都很烦,因为不同系统的php
包结构相差太大,经常找了半天,还不知道究竟调用的是哪一个php.ini
,不过今天发现了一个比较好的命令:
root@DokuDocker:/# php --ini Configuration File (php.ini) Path: /etc/php/7.2/cli Loaded Configuration File: /etc/php/7.2/cli/php.ini Scan for additional .ini files in: /etc/php/7.2/cli/conf.d Additional .ini files parsed: /etc/php/7.2/cli/conf.d/10-opcache.ini, /etc/php/7.2/cli/conf.d/10-pdo.ini, /etc/php/7.2/cli/conf.d/15-xml.ini, /etc/php/7.2/cli/conf.d/20-calendar.ini, /etc/php/7.2/cli/conf.d/20-ctype.ini, /etc/php/7.2/cli/conf.d/20-curl.ini, /etc/php/7.2/cli/conf.d/20-dom.ini, /etc/php/7.2/cli/conf.d/20-exif.ini, /etc/php/7.2/cli/conf.d/20-fileinfo.ini, /etc/php/7.2/cli/conf.d/20-ftp.ini, .......
显而易见,编辑/etc/php/7.2/cli/php.ini
修改/确认这些行:
file_uploads = On upload_max_filesize = 128M post_max_size = 128M memory_limit = -1
保存即可,如果是docker
可能需要重启下container
,OK了。但是往往服务器软件有第二层限制,以及一些坑,往下看。
如果服务器软件是nginx且使用了php-fpm
在nginx
上运行php
,往往是依靠php-fpm
中转的,这个可以看网站对应的nginx
确认,而php-fpm
所遵循的php.ini
文件与php-cli
(也就是通常在命令里面敲的php
命令)不是同一个。
root@SRMCAD:/etc/php/7.4/fpm# locate php.ini /etc/php/7.4/cli/php.ini /etc/php/7.4/fpm/php.ini /usr/lib/php/7.4/php.ini-development /usr/lib/php/7.4/php.ini-production /usr/lib/php/7.4/php.ini-production.cli
显然,要对基于php-fpm
的网站生效,应该修改的是/etc/php/7.4/fpm/php.ini
,而非/etc/php/7.4/cli/php.ini
此外,还需要改/etc/nginx/nginx.conf
,在其中http
节加一行client_max_body_size 256M;
——应该是吧,反正我这样改了并且没出问题,但并未交叉验证。
修改后,重启nginx
和php-fpm
服务,注意php-fpm
服务的名字可能是带版本号的,需要找一下。
但如果用的不是php-fpm而是php-cgi
类似的,去修改/etc/php/7.2/cgi/php.ini
文件,其他都一样。
比如说这个docker,内部用的就是php-cgi
和lighttpd
.
如果服务器软件是lighttpd
继续手动操作,编辑/etc/lighttpd/lighttpd.conf
文件,加一行:
server.max-request-size = 131072
131072
的意思是128 * 1024
,单位KB