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

时间:2013-01-14 21:51:55

标签: php

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

我看到一些文章说明php.ini文件的第109行周围存在语法错误,但我不知道语法错误是什么或如何纠正它。用户表示,因为upload_max_filesize是在配置文件中的此错误之后,它将被忽略。请帮忙。

10 个答案:

答案 0 :(得分:58)

This message帮助了我:

  

服务器上安装的最新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. 重新启动服务器
  7. 档案/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
    

答案 1 :(得分:15)

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

答案 2 :(得分:4)

你重启了apache2吗?

sudo service apache2 restart

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

答案 3 :(得分:3)

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

post_max_size=10M

试试。

答案 4 :(得分:1)

service apache2 reload需要以root身份运行,即使没有root 也不会失败。正在运行sudo service apache2 reload。这是在Ubuntu 14.04。

答案 5 :(得分:1)

也许您找到php.ini文件的2个目录。 如果您搜索php.ini使用php --ini之类的cli的地方,也许它会显示/etc/php/7.1/cli/php.ini,但是在php-fpm中找到/etc/php/7.1/fpm/php.ini的另一个文件夹,您需要创建新文件夹像conf.d这样的/etc/php/7.1/fpm/conf.d/30-user.ini文件夹下的ini文件,如果您需要将ini文件添加到cli命令行,则需要将您的ini文件放在/etc/php/7.1/cli/conf.d/30-user.ini

答案 6 :(得分:1)

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

重点是我的php.ini文件包含一个旧式注释(以hashmark开头),从php 7.0开始,该注释不再可用。错误的注释使ini解析器感到困惑。

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

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

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

答案 7 :(得分:1)

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

  1. 在评估Reason: expected ‘true’ in CORS header ‘Access-Control-Allow-Credentials’的输出后,我发现其他phpinfo();文件存储在.ini目录中

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

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

然后获取更改。

答案 8 :(得分:0)

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

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

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

答案 9 :(得分: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 进行搜索时一定发生过。