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 & ~E_NOTICE & ~E_STRICT & ~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 文件中查看使用<?php phpinfo() ?>
命令并在浏览器上检查它)
然后根据需要更改每个文件上的这些参数:
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 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
CentOS 7中PHP配置文件php.ini的放在哪个位置
MongoDB、Windows 7、XAMPP、PHP.ini