繁体   English   中英

用于不同子域和/或目录的替代max_post_size和upload_max_filesize php.ini nginx fastcgi php-fpm

[英]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.comthis.mysite.comthat.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设置(但是请注意,您不能使用MBG快捷方式):

; 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_valuephp_admin_value ,最大的不同是,当使用php_value时 ,设置可以稍后由应用程序使用ini_set命令进行更改。 因此,您可以对upload_max_filesize使用较低的值,并仅在上载脚本中在应用程序中对其进行更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM