通过 nginx 设置时在 PHP 应用程序中显示真实的文件大小上传限制

通过 nginx 设置时在 PHP 应用程序中显示真实的文件大小上传限制

正如在许多帖子中讨论的那样,我已经设置了

client_max_body_size 2M;

在我的/etc/nginx/nginx.conf

client_max_body_size 100M;

在我的一个虚拟主机配置中。

并且它可以工作,因为在没有 100M 指令的虚拟主机上,上传大于 2MB 的文件会失败。

问题是,PHP 应用程序(如 WordPress)不会报告此问题。它们仍然显示 100MB 的限制。当有人尝试上传大于 2MB 的内容时,他们会看到:

服务器响应异常。文件可能已成功上传。请检查媒体库或重新加载页面。

有没有办法将“真正的”最大文件大小限制传达给 PHP 应用程序,即使它是在 Web 服务器级别设置的?

答案1

WordPress与大多数 PHP 脚本一样,没有使用 nginx 配置client_max_body_size,而是使用了 PHP 的upload_max_filesizepost_max_size

您可以尝试改变这一点,但如果这样做,您可能需要php-fpm运行两个服务而不是一个服务,读取不同的php.ini文件,以获得多种upload_max_filesize配置。

PS:抱歉,PHP 手册链接不正确,如果您使用了正确的片段标识符,它们往往会被标题覆盖。尝试向上滚动这个post-max-size片段

相关内容