php 7 php.ini upload_max_filesize 不起作用

Posted

技术标签:

【中文标题】php 7 php.ini upload_max_filesize 不起作用【英文标题】:php 7 php.ini upload_max_filesize not working 【发布时间】:2016-09-19 18:36:10 【问题描述】:

我在互联网上阅读了许多解决方案,但仍然无法更改 upload_max_filesize 值(upload_max_filesize always = 2M)

这是我在phpinfo() 中加载的php.ini

Configuration File (php.ini) Path         /etc/php/7.0/apache2
Loaded Configuration File                    /etc/php/7.0/apache2/php.ini
Scan this dir for additional .ini files      /etc/php/7.0/apache2/conf.d 
upload_max_filesize 2M  2M
post_max_size   8M  8M

这是我在/etc/php/7.0/apache2/php.ini中编辑的php.ini

; http://php.net/post-max-size
post_max_size = 86M
; http://php.net/upload-max-filesize
upload_max_filesize = 40M

我正在使用 ubuntu 14.04,apache2,php7.0 (每次更改 php.ini 后,我都多次重置 apache2)

【问题讨论】:

你需要检查 php.ini 的路径,看来你在其他地方进行了更改。您可以在 phpinfo 本身中看到 ini 路径,只需检查“配置文件(php.ini)路径”行 我更改了我找到的每个 php.ini 文件,但仍然无法更改 upload_max_filesize :( 重启服务器并检查更改。 我已经重启过 apache2 很多次了,但是还是一样... php -i | grep -i "upload\_max\_filesize\|post\_max\_size\|max\_file\_uploads" 是一个有用的命令,它可以帮助您发现您更新的任何“ini”文件可能尚未重新加载或可能根本不是正在使用的正确文件。 【参考方案1】:

我修复了 PHP-FPM 7.1

中编辑您的 php.ini

/etc/php/7.1/fpm/php.ini

更改您想要的任何选项,post_max_size、upload_max_filesize、max_execution_time 等等...

保存并关闭文件。

运行

sudo 服务 php7.1-fpm 重启

它会起作用的!

【讨论】:

对我来说,就是这么简单——而且合乎逻辑。我们更改了 PHP 变量,而不是 Apache2。所以只需要重启 PHP! 当然!您必须重新启动 FPM!太感谢了!只需要回忆一下 谢谢!我已经习惯了作为 MPM 运行,你只需要重启 apache,但是自从切换到 FPM(为了支持 http/2),我没有意识到你需要直接重启 FPM。 就我而言,我只需要编辑/etc/php.ini,重启httpd。我检查了 php 进程(ps ax | grep -i php)并重新启动:systemctl restart php-fpm 这是在 CentOS Stream 上。【参考方案2】:

我有另一个解决方法。 操作系统:ubuntu 16.04 php版本:7.0

我创建了一个 phpinfo.php 文件,其中包含:

<?php phpinfo() ?>

将 phpinfo.php 文件放在您网站 www.mywebsite.com/phpinfo.php 的根目录中

导航到它并查找该行:

加载的配置文件:/etc/php/7.0/cgi/php.ini

现在你知道加载了什么 php.ini 文件了。

ssh 进入服务器并使用你最喜欢的编辑工具(我的是 nano)来调整 php.ini

更改值以满足您的偏好。

post_max_size = 128M

upload_max_filesize = 64M

保存并关闭文件。

重启apache

sudo service apache2 restart

__

检查 phpinfo.ini 是否设置了新值。

如果他们这样做了,你就准备好了。

【讨论】:

/etc/php/7.0/cgi/php.ini 应该是 /etc/php/7.0/cli/php.ini。默认php安装中没有cgi目录【参考方案3】:

我想通了!

在我加载的php.ini 配置中,我的error_reporting 值是E_ALL &amp; ~E_NOTICE &amp; ~E_STRICT &amp; ~E_DEPRECATED-> 这是错误的!所以我将其更改为

error_reporting: E_ALL 然后重启apache2服务器, 现在一切正常!


所以请注意:如果php.ini有任何错误,它将使用默认值(这意味着upload_max_filesize总是2M

【讨论】:

这就是原因。修复了我的情况。 这行得通,谢谢。我认为这很不直观,我很幸运能找到您的解决方案。 @CuongDC 谢谢你,但我仍然需要查看我的错误,我该怎么做?虽然我改变了我的价值,但我仍然得到 2M @AbeerSul 你重启网络服务器了吗? @CuongDC 是的,但它没有修复它,谢谢你我终于能够在这里修复***.com/questions/67967282/…【参考方案4】:

对于php7.2-fpm

Ubuntu php-fpm 位于 /etc/php/7.2/fpm 所以

    cd /etc/php/7.2/fpm sudo nano php.ini 搜索 post_max_size = 512M 并添加您真正需要的最喜欢的尺码 搜索 upload_max_filesize = 512M 并添加您真正需要的最喜欢的尺码 保存文件 最后不要忘记重启 PHP7.2-FPM 重启sudo service php7.2-fpm restart

就是这样!

【讨论】:

【参考方案5】:

我还发现重新启动 httpd 服务并没有发现加载的配置文件中的更改(Fedora 29 上的/etc/php.ini)。值得列出所有 systemd 单元并对字符串“php”进行 grep:

# systemctl list-unit-files | grep php
php-fpm.service

重启 php-fpm 对我有用:

# systemctl restart php-fpm

【讨论】:

【参考方案6】:

我正在使用 nginx,我的解决方案是重新启动 php-fpm。

重启 Nginx 没有做任何事情。

sudo service php7.2-fpm restart

【讨论】:

这对我有用!谢谢!我正在使用 apache,最近搬到了 php-fpm - 我不知道它是一个单独的服务!【参考方案7】:

我也有这个问题!

如果你使用php-fpm服务需要找到php-fpm.conf并添加一行

php_admin_value[upload_max_filesize] = 100M

用于更改其他类型的值

#just for example
php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on

【讨论】:

对于曾经使用 FPM sock 跑步的人来说,这应该被选为最佳答案【参考方案8】:

大多数人都忘记通过终端重新启动他们的 php,这就是它无法正常工作的原因,如果你认为你已经正确完成了所有操作,请务必重新启动你的 php 和服务器。

【讨论】:

【参考方案9】:

是的,其实我忘记正确重启了。

sudo service apache2 restart还不够

首先将配置添加到/etc/php/7.1/fpm/php.ini/etc/php/7.1/cli/php.ini#/php/ - 然后你的 php 版本在这里而不是“7.1” 实际上,这些配置文件之一是活动的(如果您想在 indextest.php 文件中查看使用&lt;?php phpinfo() ?&gt; 命令并在浏览器上检查它) 然后根据需要更改每个文件上的这些参数:

post_max_size = 512M
upload_max_filesize = 512M

然后使用以下命令重启php服务器:

sudo service php7.0-fpm restart #php<then your php version here> instead "7.0"

sudo /etc/init.d/php7.1-fpm restart  #php<then your php version here> instead "7.1"

现在您应该可以看到上传大小的变化。干杯!

如here所示,您可以了解更多关于php服务器控件的信息:

$ sudo service php7.0-fpmstart # <- restart it
$ sudo service php7.0-fpm stop # <- restart it
$ sudo service php7.0-fpm restart # <- restart it
$ sudo service php7.0-fpm reload # <- reload it

【讨论】:

sudo /etc/init.d/php7.1-fpm restart 解决了我的问题【参考方案10】:

花了几个小时阅读论坛后,我以这种方式解决了:

cd /etc/php
find . -name "*.ini" | xargs grep -il upload_max_filesize
./7.1/apache2/php.ini
./7.1/mods-available/better.ini
./7.1/cgi/php.ini
./7.1/cli/php.ini
./7.1/phpdbg/php.ini
./7.1/fpm/conf.d/20-better.ini
./7.1/fpm/php.ini
./7.1/embed/php.ini

./7.1/fpm/conf.d/20-better.ini 中更改 upload_max_filesize 然后

/etc/init.d/php7.1-fpm restart

现在phpinfo报告:upload_max_filesize 10G 10G

希望这会有所帮助。

【讨论】:

【参考方案11】:

对于那些具有其他答案中提到的所有明显设置并且 PHP 文件上传仍然无法正常工作的人。

检查 php.ini 中的 open_basedir 值。如果设置了值(出于安全原因应该设置),请确保其中包含/tmp。或者在upload_tmp_dir 中选择一个自定义值并相应地设置open_basedir

然后重新加载 FPM 服务。

【讨论】:

【参考方案12】:

我按照here的步骤在MacOS Big Sur上安装了多个版本的PHP

我使用了命令:

sudo /usr/local/bin/httpd -k restart

加载对 php.ini 文件所做的更改。

【讨论】:

【参考方案13】:

在将 SQL 文件导入 mysql DB 时没有任何效果,我使用 Mysql 命令行解决了这个问题

sudo mysql -u username -p

我的案例是sudo mysql -u root -p

然后输入您的password

>use mysql;
mysql> use db_name;
mysql> source /dir_to/file_name.sql;

【讨论】:

以上是关于php 7 php.ini upload_max_filesize 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

安装php7(windows7)

CentOS 7中PHP配置文件php.ini的放在哪个位置

PHP_php.ini_说明详解

MongoDB、Windows 7、XAMPP、PHP.ini

php 7 php.ini upload_max_filesize 不起作用

作曲家未安装在 Windows 7 中