正如在许多帖子中讨论的那样,我已经设置了
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_filesize
和post_max_size
。
您可以尝试改变这一点,但如果这样做,您可能需要php-fpm
运行两个服务而不是一个服务,读取不同的php.ini
文件,以获得多种upload_max_filesize
配置。
PS:抱歉,PHP 手册链接不正确,如果您使用了正确的片段标识符,它们往往会被标题覆盖。尝试向上滚动这个post-max-size
片段。