[英]Cannot change upload_max_filesize or post_max_size in php.ini
[英]Alternate max_post_size and upload_max_filesize for different subdomains and/or directories php.ini nginx fastcgi php-fpm
我的nginx和php5-fpm工作得非常好,而www.mysite.com
, this.mysite.com
和that.mysite.com
都可以优雅地转到不同的目录。 我一直在一个网站上载文件。 我希望最大文件大小为10 GB。 为此,我必须告诉php.ini,max_post_size和upload_max_filesize为10240 MB,而不是默认的2 MB。
我非常了解安全隐患。 因此,我希望这些10240 MB的php.ini值仅适用于以下一项或两项:
upload.mysite.com
和/或
www.mysite.com/upload
一种选择是还安装Apache以在其他端口上侦听,执行一些重定向/重写操作,并让mod_php的php.ini文件具有10240 MB的值仅处理上传站点。 我宁愿不这样做。
在没有单独的Web服务器处理对我的上传页面的请求的情况下,如何在nginx的单个实例中完成此操作?
使用client_max_body_size
并将其设置为server
块中的所需值。 如果请求主体超过此指令中指定的大小,Nginx将直接放弃对请求的处理。 请注意,在这种情况下,您将不会提交任何POST
。
使用php-fpm,您可以运行多个池,每个网站一个。
然后,您可以使用池中的以下语法来更改池配置中的任何php.ini设置(但是请注意,您不能使用MB
或G
快捷方式):
; UPLOAD
php_admin_flag[file_uploads] =1
php_admin_value[upload_tmp_dir]="/some/path/var/tmp"
;Maximum allowed size for uploaded files. 10240MB *1024 *1024 -> 10737418240
php_value[upload_max_filesize] ="10737418240"
php_admin_value[max_input_time] = (...)
php_admin_value[post_max_size] (...)
这实际上与Apache虚拟主机可用的语法接近。 PHP配置从未卡在php.ini
文件中。
如您所见,您可以使用php_value或php_admin_value ,最大的不同是,当使用php_value时 ,设置可以稍后由应用程序使用ini_set命令进行更改。 因此,您可以对upload_max_filesize
使用较低的值,并仅在上载脚本中在应用程序中对其进行更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.