我已经尝试了两天将通过 php 上传的文件的最大文件大小从默认的 2M 增加到 10M。我更改了 phpinfo 引用的 php.ini 文件,但无济于事。
看了几篇文章说php.ini文件第109行附近有语法错误,但不知道是什么语法错误,也不知道怎么改正。用户表示,因为upload_max_filesize 是在配置文件中的这个错误之后,所以它被忽略了。请帮忙。
我已经尝试了两天将通过 php 上传的文件的最大文件大小从默认的 2M 增加到 10M。我更改了 phpinfo 引用的 php.ini 文件,但无济于事。
看了几篇文章说php.ini文件第109行附近有语法错误,但不知道是什么语法错误,也不知道怎么改正。用户表示,因为upload_max_filesize 是在配置文件中的这个错误之后,所以它被忽略了。请帮忙。
这条消息帮助了我:
服务器上安装的最新 php 版本不允许更改全局设置(例如执行时间、最大上传文件大小、最大发布文件大小等)。
请按照以下步骤解决问题:
phpinfo();
phpinfo()
/etc/php5/apache2/conf.d
/etc/php5/apache2/conf.d/user.ini
)文件/etc/php5/apache2/conf.d/user.ini
post_max_size = 90M
upload_max_filesize = 50M
2018.06 更新
如果您使用的是nginx + php-fpm,您的路径将是这样的(在路径中使用您的 php 版本)。使用以下命令创建文件:
nano /etc/php/7.0/fpm/conf.d/user.ini
目录中还有很多其他.ini
文件conf.d
。如果您希望您的配置是最后包含的 - 使用前缀。
例如:30-user.ini
。
创建文件后不要忘记重新启动fpm
:
sudo service php7.0-fpm restart
如果您的 php.ini 位于类似的/etc/php/7.*/fpm/php.ini
位置 - 然后根据需要对其进行修改,而不是sudo service apache2 restart
使用service php7.1-fpm restart
你重启apache2了吗?
sudo service apache2 restart
新的 php.ini 配置仅在 apache 启动时应用。
您可能还需要增加帖子的最大大小:
post_max_size=10M
试试看。
我遇到了完全相同的问题并使用以下步骤解决了它:
在我的服务器上运行以下命令时
php --ini
我得到了我的 php.ini 的以下路径
Loaded Configuration File: /etc/php/7.0/cli/php.ini
我继续在这个 php.ini 文件中进行更改,但没有任何更改生效。然后我在 /var/www/html 目录中创建了一个名为 info.php 的文件并添加了以下代码
<?php
phpinfo();
?>
然后我在浏览器中打开文件http://example.com/info.php,我看到实际加载的 php.ini 文件位于不同的目录中
Loaded Configuration File /etc/php/7.0/apache2/php.ini
当我对该目录中的 php.ini 文件进行更改时,所有更改都生效了。总之,请确保您运行 phpinfo(); 函数以确保 php 使用的实际 php.ini 文件。
After reading great @Jekis's answer, I solved the same issue for Fedora distribution (it's the same thing, just different path):
After evaluting phpinfo();
output I found out that other .ini
files are stored in: /etc/php.d
directory
In /etc/php.d
I created a new file - 40-user.ini
. I added upload_max_filesize
and other settings that I wanted to change
Then I restarted apache (httpd)
And then changes were picked up.
我有一个非常奇怪的经历,导致了同样的症状。
关键是我的 php.ini 文件包含一个旧式注释(以井号开头),从 php 7.0 开始,它不再是注释。不正确的注释混淆了 ini-parser。
解决方案是用分号 (;) 替换所有 # 注释符号,这是编写注释的唯一标准方法。
有关更多详细信息,请在此处阅读我的评论:
service apache2 reload
需要以 root 身份运行,即使没有 root 似乎不会失败。跑步sudo service apache2 reload
作品。这是在 Ubuntu 14.04 中。
也许你会找到 2 个 php.ini 文件的目录。如果您搜索 php.ini 使用 cli 的位置,就像php --ini
它向您展示的那样/etc/php/7.1/cli/php.ini
,但是还有另一个文件夹可以php-fpm
找到/etc/php/7.1/fpm/php.ini
,您需要在conf.d
文件夹下创建新的 ini 文件/etc/php/7.1/fpm/conf.d/30-user.ini
,如果您需要一个 cli 命令行的 ini 文件,则需要放入你的ini文件在/etc/php/7.1/cli/conf.d/30-user.ini
对 Ubuntu php.ini 的更改不会生效。
在带有 Nginx 1.18.0 的 Ubuntu 18.04 中解决此问题的步骤。
php -v
sudo php-fpm7.4 -t
更改为您正在运行的版本)。sudo systemctl restart php7.4-fpm
改成你正在运行的版本)。我的结果:PHP:语法错误,意外的 END_OF_LINE,在第 2 行的 /etc/php/7.4/fpm/php.ini 中期待 '='
就我而言,它是 [PHP] 之前的“w”,当我使用 Ctrl w 进行 nano 搜索时一定会发生这种情况。