繁体   English   中英

在 Ubuntu php.ini 中对 upload_max_filesize 的更改不会生效

[英]Changes to upload_max_filesize in Ubuntu php.ini will not take effect

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

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

这条消息帮助了我:

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

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

  1. 评估phpinfo();
  2. phpinfo()输出中搜索“扫描此目录以获取其他 .ini 文件”文本
  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

conf.d目录中有很多其他.ini文件。 如果您希望您的配置成为最后一个包含 - 使用前缀。

例如: 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 文件。

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 ,但是在/etc/php/7.1/fpm/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

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

关键是我的 php.ini 文件包含一个旧式注释(以哈希标记开头),从 php 7.0 开始,它不再是注释。 不正确的注释混淆了 ini 解析器。

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

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

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

在阅读了很棒的@Jekis的回答后,我解决了 Fedora 发行版的相同问题(这是同一件事,只是路径不同):

  1. 在评估phpinfo(); 输出我发现其他.ini文件存储在: /etc/php.d目录中

  2. /etc/php.d我创建了一个新文件 - 40-user.ini 我添加了upload_max_filesize和我想更改的其他设置

  3. 然后我重新启动了apache(httpd)

然后改变了。

对 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 进行搜索时一定发生过。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM