![](/img/trans.png)
[英]Changes to upload_max_filesize in Amazon Linux AMI php.ini will not take effect
[英]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 版本不允许更改全局设置(例如执行时间、最大上传文件大小、最大发布文件大小等)。
请按照以下步骤解决问题:
phpinfo();
phpinfo()
输出中搜索“扫描此目录以获取其他 .ini 文件”文本/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
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 解析器。
解决方案是用分号 (;) 替换所有 # 注释符号,这是编写注释的唯一标准方式。
有关更多详细信息,请在此处阅读我的评论:
在阅读了很棒的@Jekis的回答后,我解决了 Fedora 发行版的相同问题(这是同一件事,只是路径不同):
在评估phpinfo();
输出我发现其他.ini
文件存储在: /etc/php.d
目录中
在/etc/php.d
我创建了一个新文件 - 40-user.ini
。 我添加了upload_max_filesize
和我想更改的其他设置
然后我重新启动了apache(httpd)
然后改变了。
对 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 进行搜索时一定发生过。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.