30

我已经尝试了两天将通过 php 上传的文件的最大文件大小从默认的 2M 增加到 10M。我更改了 phpinfo 引用的 php.ini 文件,但无济于事。

看了几篇文章说php.ini文件第109行附近有语法错误,但不知道是什么语法错误,也不知道怎么改正。用户表示,因为upload_max_filesize 是在配置文件中的这个错误之后,所以它被忽略了。请帮忙。

4

10 回答 10

83

这条消息帮助了我:

服务器上安装的最新 php 版本不允许更改全局设置(例如执行时间、最大上传文件大小、最大发布文件大小等)。

请按照以下步骤解决问题:

  1. 评估phpinfo();
  2. 在输出中搜索“扫描此目录以获取其他 .ini 文件”文本phpinfo()
  3. 会是这样的/etc/php5/apache2/conf.d
  4. 在目录中创建您的user.ini文件。( /etc/php5/apache2/conf.d/user.ini)
  5. 使用此 ini 文件进行自定义设置。
  6. 重启服务器

文件/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
于 2013-11-15T09:16:58.007 回答
16

如果您的 php.ini 位于类似的/etc/php/7.*/fpm/php.ini位置 - 然后根据需要对其进行修改,而不是sudo service apache2 restart使用service php7.1-fpm restart

于 2017-10-26T23:31:04.493 回答
6

你重启apache2了吗?

sudo service apache2 restart

新的 php.ini 配置仅在 apache 启动时应用。

于 2013-01-14T21:54:35.543 回答
3

您可能还需要增加帖子的最大大小:

post_max_size=10M

试试看。

于 2013-01-14T21:55:00.893 回答
2

我遇到了完全相同的问题并使用以下步骤解决了它:

在我的服务器上运行以下命令时

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 文件。

于 2019-03-19T07:07:42.453 回答
1

After reading great @Jekis's answer, I solved the same issue for Fedora distribution (it's the same thing, just different path):

  1. After evaluting phpinfo(); output I found out that other .ini files are stored in: /etc/php.d directory

  2. 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

  3. Then I restarted apache (httpd)

And then changes were picked up.

于 2020-07-31T16:11:58.700 回答
1

我有一个非常奇怪的经历,导致了同样的症状。

关键是我的 php.ini 文件包含一个旧式注释(以井号开头),从 php 7.0 开始,它不再是注释。不正确的注释混淆了 ini-parser。

解决方案是用分号 (;) 替换所有 # 注释符号,这是编写注释的唯​​一标准方法。

有关更多详细信息,请在此处阅读我的评论:

https://serverfault.com/a/1012262/494670

于 2020-04-14T17:20:53.637 回答
1

service apache2 reload需要以 root 身份运行,即使没有 root 似乎不会失败。跑步sudo service apache2 reload作品。这是在 Ubuntu 14.04 中。

于 2016-08-01T15:55:30.703 回答
1

也许你会找到 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

于 2018-10-15T18:49:35.467 回答
0

对 Ubuntu php.ini 的更改不会生效。

在带有 Nginx 1.18.0 的 Ubuntu 18.04 中解决此问题的步骤。

  1. 检查您正在运行的 php 版本:php -v
  2. 检查 php.ini 中的语法错误:(sudo php-fpm7.4 -t更改为您正在运行的版本)。
  3. 使用您最喜欢的编辑器来修复语法错误。
  4. 重启php-fpm:(sudo systemctl restart php7.4-fpm改成你正在运行的版本)。

我的结果:PHP:语法错误,意外的 END_OF_LINE,在第 2 行的 /etc/php/7.4/fpm/php.ini 中期待 '='

就我而言,它是 [PHP] 之前的“w”,当我使用 Ctrl w 进行 nano 搜索时一定会发生这种情况。

于 2021-02-07T16:36:08.277 回答