无法在php.ini中更改upload_max_filesize或post_max_size

时间:2012-11-07 15:37:10

标签: nginx amazon-ec2 php ec2-ami

请记住,我不是系统管理员,我只是一名开发人员。我找不到像我这样的完全问题的人,只是相似,而且他们的“修复”似乎都没有用。

我目前正在运行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()ini_get时,这两个选项都会返回为4M

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

我还运行php -i | grep "\.ini"来检查加载了哪些文件,并且没有不必要的加载配置。我甚至单独检查了每个加载的文件,以检查它们内部没有设置。

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

ini_set()也不起作用。

我有点失落。

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

8 个答案:

答案 0 :(得分:12)

文件名:

nginx/sites-available/default

添加:

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

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

答案 1 :(得分: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

答案 2 :(得分: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

显然,不同配置的位置可能会有所不同,但希望这有助于让别人知道还有什么可以寻找。

答案 3 :(得分:2)

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

  

我还运行了php -i | grep“.ini”来检查加载了哪些文件,并且没有不必要的加载配置。我甚至单独检查了每个加载的文件,以检查它们内部没有设置。

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

您需要检查phpinfo()输出中解析的其他.ini文件部分,以确切了解从Web服务器加载的文件。其中一个文件会覆盖您的设置。

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

继续挖掘,你会发现这两个地方之一的罪魁祸首。

答案 4 :(得分:1)

我遇到了与PHP应用程序抱怨上传文件大小相同的问题。使用命令lilne版本的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设置。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

  

请记住,我不是系统管理员,我只是一名开发人员。我找不到像我这样的确切问题的人,只是类似的,没有他们的"修复"似乎工作。

我在同一条船上,遇到同样的问题,原来他们是相关的!

我添加了行以增加upload_max_filesizepost_max_size,但这些行被忽略,phpinfo()返回默认值。我重新启动了Apache,并检查了加载的其他.ini文件没有任何欢乐。

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

所以,如果你遇到这个问题,请确保你没有犯同样的愚蠢错误,并Ctrl-F找到声明的原始实例,然后编辑而不是添加自己的;)

答案 7 :(得分:0)

类似于这里已经提到的内容:在Ubuntu 16.04上,我所做的def paused(): .......... while pause: # must be indented to be part of paused() .......... 是为了使对systemcl reload php7.0-fpm的更改生效。我不必重新加载/重启nginx。