当前位置: 首页 > 知识库问答 >
问题:

为不同的子域和/或目录替换最大post大小和上载最大文件大小。ini nginx fastcgi php fpm

微生毅
2023-03-14

我让nginx和php5 fpm工作得非常好,并且www.mysite。com这个。我的网站。com,和那。我的网站。com都可以优雅地进入不同的目录。我一直在一个上传文件的网站上工作。我希望最大文件大小为10GB。为了让它起作用,我必须告诉php。ini的最大发布大小和上载文件大小为10240MB,而不是默认的2MB。

我很清楚这对安全的影响。因此,我希望10240 MB的php.ini值仅适用于以下其中一个或两个:

  • upload.mysite.com

和/或

  • www.mysite.com/upload

一个选择是安装Apache在另一个端口上侦听,执行一些重定向/重写魔术,并使用mod_php的php。具有10240MB值的ini文件仅处理上载站点。我不想那样做。

如果没有一个单独的web服务器来处理对我的上传页面的请求,我如何在一个nginx实例中实现这一点?

共有2个答案

闾丘选
2023-03-14

使用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_值或php_admin_值,最大的区别在于,当使用php_值时,应用程序可以稍后使用ini_set命令更改设置。因此,您可以为upload\u max\u filesize使用一个较低的值,并在应用程序中仅在上载脚本上对其进行更改。

赵高雅
2023-03-14

使用client\u max\u body\u size并在server块中将其设置为所需的值。如果请求正文超过本指令中指定的大小,Nginx将直接放弃对请求的处理。请注意,在这种情况下,您将不会收到任何提交的POST

 类似资料:
  • 问题内容: 我有一个无法访问的PC上托管的网站。我有一个上传表单,允许人们上传最大30MB的mp3文件。我的服务器端脚本是用PHP完成的。 每次尝试上传文件时,都会收到一条错误消息,声称文件超出了允许的最大大小,因此我需要增加大小。我在网络上的研究建议更改我无权访问的文件,这样将无法正常工作。其他人建议我将自定义文件添加到我的根目录中,该文件无效。还有其他建议吗? 问题答案: 您需要设置的值,并在

  • 问题内容: 当前,在我们的测试环境中,最大和最小JVM堆大小设置为相同的值,基本上与专用服务器计算机为我们的应用程序所允许的大小相同。这是性能最佳的配置,还是给JVM一个更好的范围? 问题答案: 设置- Xms的主要原因是,如果您在启动时需要一定的堆。(防止OutOfMemoryErrors在启动时发生。)如上所述,如果您需要启动堆来匹配最大堆,则是匹配它的最大时间。否则,您将不需要它。只是要求应

  • 我正在使用PyCharm社区版2016,我注意到我无法打开大型数据输入文件或日志(20MB)。编辑简单地说“文件XXX太大(大小)”。 不仅如此,似乎没有办法改变限制。官方文档提到了一种增加使用intellisense的最大大小的方法,但根本没有增加可以打开的文件的最大大小。这是真的吗?这真的是一个完全无法打开大型日志的IDE吗?

  • 问题内容: 我被分配编写一个程序,该程序读取一系列整数输入并打印-输入的最小和最大-以及偶数和奇数输入的数量 我想出了第一部分,但对如何使程序显示最大和最小感到困惑。到目前为止,这是我的代码。我怎样才能显示最小的输入呢? 问题答案: 最简单的解决方案是使用诸如和

  • 问题内容: 我想知道哪个是Javascript 对象允许的最小和最大日期。我发现最小日期大约是200000 BC,但是我没有得到任何参考。 有人知道答案吗?我只是希望它不依赖于浏览器。 最好以“纪元时间”(= 1970-01-01 00:00:00 UTC + 00的毫秒数)回答。 问题答案: 根据规范§15.9.1.1: Date对象包含一个数字,该数字指示毫秒内的特定时间点。这样的数字称为时间

  • 问题内容: 所以基本上我正在生成随机的10000个IP地址,我想存储在HashSet中找到的所有那些IP地址,但是根据我的计算,发现了大约6000个IP地址,但是在HashSet中仅存储了700个IP地址?HashSet在存储String方面是否有任何限制。任何建议将不胜感激。 问题答案: 就您而言,没有限制(限制是数组的最大大小,即2 ** 31)。 但是,仅存储 唯一 值,因此我的猜测是您仅生