PHP:上传的文件超过了php.ini中upload_max_filesize指令的限制。

3
在你标记为重复之前,请听我说。我已经尝试了所有我能在网上找到的建议,但都没有成功。我已经无数次重启了。以下是我尝试过的详细列表。
这是我的设置:
- Nginx 1.10 - PHP 7.0 - WordPress 4.7 - 我使用VPS。我可以访问和控制每一个文件!
这是我想做的事情:
- 增加WordPress的上传文件大小。
为什么?
- 每当我上传大于2兆字节的文件大小时,我就会收到这个错误:“The uploaded file exceeds the upload_max_filesize directive in php.ini.” 这就是它告诉我的全部内容。
这是我做过的事情:
- 基于常识,我打开'/etc/php/7.0/cli/php.ini',因为`php.ini-i`告诉我配置文件是从那个文件加载的。在php.ini文件中,我将'upload_max_filesize = 2M'更改为'upload_max_filesize = 10M'。 - 我继续重启Nginx('sudo service nginx restart')和PHP('sudo service php7.0-fpm restart')
以上不起作用,并且还有下面两种方法:
我创建了自己的'user.ini'在/etc/php/7.0/cli/conf.d/文件夹中,并且包含'upload_max_filesize = 10M'。然后我继续进行第1步操作,但仍然出现相同的错误。
有人说这叫做'error_reporting'。我在我的php.ini文件中找到了错误报告并将其从第一行更改为第二行:
- ;error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - error_reporting = E_ALL
然后我继续进行第1步操作,但仍然不起作用。
那么,我的设置出了什么问题?我还需要在其他地方进行哪些更改?
能否更改?我已经阅读并尝试了几乎所有在线建议,但都没有起作用。
2兆字节的最大上传对我来说从来没有成为问题,但我正在导入一个大小只有3 Mb的WordPress xml文件,并且已经花费了几个小时来让这个东西工作。

默认情况下,上传文件大小不能更高。对于近年来的网站而言,2兆字节甚至有些荒谬。至少5兆字节更好。

感谢您的帮助!


1
确保您正在编辑正确的ini文件。检查phoinfo()以进行验证。 - Robert
@RobertRocha phpinfo()和终端中的php -i有什么不同? - KhoPhi
@RobertRocha 是的,它们是不同的。我太傻了,以为它们是一样的。 - KhoPhi
8个回答

7
您正在查看CLI的php.ini文件,您需要查看运行Web服务器的PHP ini文件。在WP目录中,创建一个临时的PHP文件,并让它包含<?php phpinfo();。在浏览器中导航到该文件,并找到您实际需要更改的php.ini文件,然后根据需要进行更改。 注意:完成检查后,请删除此文件,因为公开此信息会存在安全风险。

你指出了我从未知道的事情,即运行WordPress的php.ini与php.ini中的实际php.ini不同。非常感谢! - KhoPhi
不用担心,不同的.ini文件存在非常好的原因(安全/资源管理等),php.net网站上有许多关于.ini文件内设置的资源。 - Jez Emery

3

案例1:在wp-admin文件夹中添加php.ini文件

导航到wp-admin文件夹。向下滚动查看是否有php.ini文件。如果您之前没有添加过,则不会有此文件。

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300

案例2:在.htaccess文件中添加代码

打开或创建根目录下的.htaccess文件,并添加以下代码:

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

2
如果您使用的是php-fpm而不是Apache,有时在完成上述所有操作后,您需要重新启动php7.4-fpm服务。根据您的PHP版本,它可能具有不同的名称。
sudo systemctl restart php7.4-fpm

对我来说有效果! - undefined

1

只需将以下代码添加到C:/xampp/php.ini文件中即可

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300

重新启动XAMPP控制并检查面板后,文件大小会增加。

1

起初,我尝试了JezEmery的答案,但对我来说解决方案是在终端上输入的。

    locate php.ini

而且我把它作为打印输出之一

    /usr/lib/php/7.0/php.ini-development
    /usr/lib/php/7.0/php.ini-production
    /usr/lib/php/7.0/php.ini-production.cli
    /usr/lib/php/7.1/php.ini-development
    /usr/lib/php/7.1/php.ini-production
    /usr/lib/php/7.1/php.ini-production.cli 

然后更改php7.1文件,因为我的apache使用php的7.1版本,并最后通过重启apache来完成操作。

    systemctl restart apache2

0

php -i | grep 'upload_max_filesize' 命令会返回什么?是你设置的 10M 还是其他值?如果返回的是后者,那么你正在编辑错误的 php.ini 文件。你可以使用 php --ini 命令来确定加载的配置文件。


这更像是一个问题/评论,你有足够的声誉来回答。 - Funk Forty Niner
“php -i” 对我来说是一个错误的查找位置。使用“phpinfo()”实际上展示了 WordPress 实例正在使用的 真正 的“php.ini”文件。 - KhoPhi

0
cwp(控制面板)中使用php-fpm,您必须修改此目录下的/opt/alt中的php.ini文件。或者您可以从控制面板中进行操作:仪表盘> PHP设置> PHP-FPM选择器> PHP-FPM x.x >编辑php.ini并更改upload_max_filesize,然后通过左侧的相关(黄色)按钮重新加载PHP。

source


0
请将以下代码添加到主题的function.php文件中。
@ini_set( 'upload_max_size' , '64M' );
@ini_set( 'post_max_size', '64M');
@ini_set( 'max_execution_time', '300' );

在根目录下创建php.ini文件,并添加以下内容:

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300

将代码添加到 .htaccess 文件中:

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

链接可能在未来失效,请包含解释和/或示例。 - Justinas
“教程”的“链接”对这个人没有帮助;这是一个“具体”的问题。编辑:根据原始答案,修改此评论http://stackoverflow.com/revisions/41464226/1 - Funk Forty Niner
我已经删除了链接。 - Ashish Patel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接