8

请记住,我不是系统管理员,我只是一名开发人员。我找不到任何与我有确切问题的人,只是相似,而且他们的“修复”似乎都不起作用。

我目前正在运行一个正在运行的 Amazon EC2 实例。

CentOS 6.2
Nginx 1.2.2
PHP 5.3.16 with APC
Percona 5.5.24 // not currently using this as I am using an RDS

我已将我的 php.ini (/etc/php.ini) 设置设置为以下

upload_max_filesize=10M
post_max_filesize=20M

使用通过 ssh 重新加载配置后php -i,这些设置似乎已加载。展示upload_max_filesize=10M

使用phpinfo()orini_get时,两个选项都返回为4M

phpinfo()表示我正在编辑的文件是已加载的文件 ( /etc/php.ini)。

我还跑来php -i | grep "\.ini"检查加载了哪些文件,并且没有不必要的加载配置。我什至单独浏览了每个加载的文件,以检查它们里面没有设置。

此外,有人建议我尝试使用.user.ini配置文件。这也没有改变值。

ini_set()也不起作用。

我有点不知所措。

编辑:不确定这会有所帮助,但我正在使用这个 AMI http://megumi-cloud.com/

4

8 回答 8

14

文件名:

nginx/sites-available/default

添加:

location ~ \.php$ {
      fastcgi_param PHP_VALUE "upload_max_filesize = 50M \n post_max_size=51M";
}

运行:从命令行:sudo service nginx restart

于 2015-06-09T09:52:47.527 回答
5

尝试执行如下命令:

php --ini

它将向您显示 php 加载了哪些 ini 文件。

示例输出:

[admin@staging ~]$ php --ini
Configuration File (php.ini) Path: /usr/local/etc
Loaded Configuration File:         /usr/local/etc/php.ini
Scan for additional .ini files in: /usr/local/etc/php
Additional .ini files parsed:      /usr/local/etc/php/extensions.ini
于 2012-11-08T10:13:51.173 回答
3

我与制作 AMI 的人取得了联系,发现有其他配置文件覆盖了php.ini

有 2 个文件保存设置

/etc/php-fpm.d/www.conf // This is the file which holds upload_max_filesize and post_max_size, among others
/etc/php-fpm.conf

显然,不同配置的位置可能会有所不同,但希望这将有助于让人们了解还需要寻找什么。

于 2012-11-08T10:09:27.203 回答
2

如果您在 php.ini 文件中明确设置了这些值,并且在您运行 PHP 脚本时它们不一样,那么某些东西已经覆盖了它们。您知道您的 php.ini 设置是正确的,因为 PHP 信息的 CLI 版本显示了新设置。

我也运行了 php -i | grep ".ini" 检查加载了哪些文件,并且没有不必要的加载配置。我什至单独浏览了每个加载的文件,以检查它们里面没有设置。

这很好,但它告诉您从 PHP CLI 加载了哪些 .ini 文件——而不是您的应用程序。

您需要检查输出的Additional .ini files parsed部分,phpinfo()以准确查看从 Web 服务器加载的文件。其中一个文件正在覆盖您的设置。

最后,如果这些文件都不是罪魁祸首,您应该ini_set()在您的项目中进行全局查找,以确保某些流氓脚本没有为您设置这些值(试图提供帮助)。

继续挖掘,你会在这两个地方之一找到罪魁祸首。

于 2012-11-07T16:38:50.370 回答
1

我遇到了 PHP 应用程序抱怨上传文件大小的同样问题。使用命令 lilne version of php (php --ini) 我确定 php.ini 文件为:/etc/php5/cli/php.ini

使用 php -info 我验证了设置。但应用程序仍然给了我同样的错误。我发现 PHP 对 CLI 和 Apache 有不同的 ini 文件。检查你的 /etc/php5 文件夹,里面有 apache2 和 cli 文件夹,里面有单独的 ini 文件。只需编辑 /etc/php5/cli/php.ini 即可更改 apache 设置。

于 2014-04-17T07:19:48.450 回答
0

重新启动您的网络服务器。这就是你需要做的。

于 2014-02-18T07:12:44.957 回答
0

类似于这里已经注意到的内容:在 Ubuntu 16.04 上,我所做systemctl reload php7.0-fpm的更改是upload_max_filesize为了生效。我不必重新加载/重新启动 nginx。

(php7.0 是我机器上安装的当前 PHP 版本。)

于 2020-08-30T21:01:38.633 回答
0

请记住,我不是系统管理员,我只是一名开发人员。我找不到任何与我有确切问题的人,只是相似,而且他们的“修复”似乎都不起作用。

我在同一条船上,遇到同样的问题,结果证明它们是相关的!

我已经包含要增加的行upload_max_filesizepost_max_size但这些被忽略并phpinfo()返回默认值。我已经重新启动了 Apache,并且还检查了.ini正在加载的附加文件,没有任何乐趣。

解决方案是我添加了行以在文件开头附近增加这些参数,并且稍后它们会在同一个文件中被覆盖!

因此,如果您遇到此问题,请确保您没有犯同样的愚蠢错误,并Ctrl-F找到声明的原始实例,然后对其进行编辑而不是添加您自己的 ;)

于 2016-03-03T17:05:38.580 回答