【问题标题】:Max filesize not taking effect from php.ini最大文件大小未从 php.ini 生效
【发布时间】:2018-01-02 04:31:01
【问题描述】:

我知道这是一个大规模的转发,但我无法弄清楚这一点。服务器是使用 nginx 的 Ubuntu。

在做phpinfo()我看到我使用的配置文件是/etc/php/7.0/fpm/php.ini

这些是我设置的属性:

upload_max_filesize = 256M
post_max_size = 256M

我重新启动了 nginx,以及php7.0-fpm 进程,最大上传大小仍然没有改变。

我正在使用 wordpress,所以作为最后的手段,我什至尝试使用增加最大上传大小的插件,但即使这样也没有用。

我也尝试在我的 .htaccess 中设置它,但仍然没有:

php_value post_max_size 256M
php_value uploads_max_filesize 256M

【问题讨论】:

  • 你重启了apache服务吗?
  • @RudyM 我正在​​使用 nginx,我重新启动了 nginx 是的。
  • 这是一个必应搜索结果,令人惊讶的是不是这样。所以在这里查看:serverfault.com/a/450365
  • 有可能在你的 php.ini 之后加载了一个额外的 .ini 文件,要检查这个,你能检查或分享你的 phpinfo() 的内容吗?如果您认为情况并非如此,那么 post_max_size uploads_max_filesize 也有可能通过 php 脚本在运行时设置/更改。

标签: php wordpress nginx


【解决方案1】:

为了让它为我工作,我必须改变几件事。

首先从用户 NID here,将其添加到您的 /etc/nginx/nginx.conf 文件中(在 http 块内):

http {
    #...
        client_max_body_size 100m;
        client_body_timeout 120s; # Default is 60, May need to be increased for very large uploads
    #...
}

然后我还必须关注类似于用户 Just Rudy here 的内容。

编辑您的 php.ini 文件 - 与许多指南相反,对我而言,它不在我的 wordpress 根文件夹中,而是位于 /etc/php/7.2/fpm/php.ini

upload_max_filesizepost_max_size 应该有一些预定义的值。将这些更改为您想要的。

重启nginx和php-fpm:

sudo systemctl reload nginx
sudo systemctl restart php7.2-fpm

【讨论】:

    【解决方案2】:

    默认情况下,NGINX 的文件上传限制为 1MB。要更改此设置,您需要设置 client_max_body_size 变量。您可以在 nginx.conf 中的 http 块中执行此操作

    http {
        #...
            client_max_body_size 100m;
            client_body_timeout 120s; # Default is 60, May need to be increased for very large uploads
        #...
    }
    

    如果您希望上传非常大的文件,上传时间将超过 60 秒,您还需要添加具有较大值的 client_body_timeout 变量

    更新 NGINX 配置后,不要忘记重启 NGINX。

    您需要重新启动 nginx 和 php 以重新加载配置。这可以使用以下命令来完成;

    sudo service nginx restart
    sudo service php7.0-fpm restart
    

    注意:如果您不必托管多个 网站只需将其添加到服务器块

    server {
        client_max_body_size 8M;
    }
    

    【讨论】:

    • 谢谢!就是这样,原来是nginx的问题,而不是php。
    • 很高兴它帮助... :D
    【解决方案3】:

    几件事。

    当您提到您的服务器使用 nginx 时,不必使用 .htaccess 文件,因为这些文件是用于 Apache 服务器的。

    话虽如此,我会尝试几件事。

    你知道你的php实例的ini文件是什么吗?

    您提到了 php 7,但您也可以安装 php 5。

    如果您进入控制台并输入“php --ini”,加载的配置文件是什么?

    一旦你知道了,使用 vi / vim 或你选择的编辑器你可以设置:

    upload_max_filesize = 100M
    post_max_size = 100M
    

    现在,您必须重新启动服务,包括 php 和 nginx:

    对于 php 5:

    service php5-fpm reload
    

    对于 php 7:

    service php7-fpm reload
    

    对于 nginx:

    service nginx reload
    

    也尝试打印当前值:

    $uploadMaxFilesize = ini_get('upload_max_filesize');
    $postMaxSize = ini_get('post_max_size');
    

    另外,由于这是针对 WordPress 的,您是否尝试在 WordPress 管理设置中进行设置?

    管理仪表板 > 设置 > 上传设置

    【讨论】:

    • 照你说的做了。我安装了 php 5.6、7.0 和 7.1。我只是对所有这些文件夹中的每个 php.ini 文件进行了相同的更改,并重新启动了所有正在运行的 php 进程和 nginx。还是行不通。但是您帖子末尾的这两个 php 函数的输出都输出了256M,所以这很奇怪。
    • 非常感谢!使用sudo service php-fpm reload 解决了我的问题
    【解决方案4】:

    我找到的答案here

    您是否尝试将您的 php.ini 放在 /etc/php5/fpm/php.ini 下?如果我正确理解 php5-fpm,这通常是 php 读取的默认位置。

    【讨论】:

    • 我没有 php5 文件夹,我正在运行 php 7.1。
    • @JeanPaulRuiz 给出的答案怎么样?
    猜你喜欢
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多