请记住,我不是系统pipe理员,我只是一名开发人员。 我找不到像我这样的确切问题的任何人,他们的“修复”似乎都不起作用。
我目前正在运行一个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
重新加载configuration后,使用php -i
通过ssh,这些设置似乎被加载。 显示upload_max_filesize=10M
等
当使用phpinfo()
或ini_get
,两个选项都返回为4M
phpinfo()
表示我正在编辑的文件是加载的文件( /etc/php.ini
)。
我也运行php -i | grep "\.ini"
php -i | grep "\.ini"
来检查哪些文件被加载,并且没有不必要的加载configuration。 我甚至通过每个加载的文件单独检查他们没有设置里面。
另外,我build议尝试使用.user.ini
configuration文件。 这也没有改变数值。
ini_set()
也不起作用。
我有点不知所措
编辑:不知道这会帮助,但我使用这个AMI http://megumi-cloud.com/
文件名:
nginx/sites-available/default
加:
location ~ \.php$ { fastcgi_param PHP_VALUE "upload_max_filesize = 50M \n post_max_size=51M"; }
运行:从命令行: sudo service nginx restart
试着做一个像这样的命令:
php --ini
它会告诉你哪些ini文件是由php加载的。
示例输出:
[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
我接触到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
显然这些位置可能会因不同的配置而有所不同,但希望这可以帮助人们了解还需要寻找什么。
如果你明确地在你的php.ini文件中设置了这些值,当你运行你的PHP脚本的时候,这些值是不一样的。 您知道您的php.ini设置是正确的,因为PHP信息的CLI版本显示新的设置。
我也运行php -i | grep“.ini”来检查哪些文件被加载,没有不必要的加载配置。 我甚至通过每个加载的文件单独检查他们没有设置里面。
这很好,但它告诉你什么.ini文件已经从PHP CLI加载—不是你的应用程序。
您需要检查phpinfo()
输出的其他.ini文件解析部分,以确切地查看正在从您的Web服务器加载的文件。 其中一个文件覆盖您的设置。
最后,如果这些文件都不是罪魁祸首,则应该在项目中对ini_set()
进行全局查找,以确保某些流氓脚本不会为您设置这些值(试图提供帮助 )。
继续挖掘,你会发现在这两个地方之一的罪魁祸首。
我有同样的PHP应用程序抱怨上传文件大小的问题。 使用命令lilne版本的PHP(php –ini)我确定php.ini文件是:/etc/php5/cli/php.ini
与php -info我验证了设置。 但是应用程序仍然给了我同样的错误。 我发现PHP有不同的CLI和Apache的ini文件。 检查你的/ etc / php5文件夹里面有分开的ini文件的apache2和cli文件夹。 只需编辑/etc/php5/cli/php.ini即可更改apache设置。
重新启动您的Web服务器。 这就是你需要做的。
请记住,我不是系统管理员,我只是一名开发人员。 我找不到像我这样的确切问题的任何人,他们的“修复”似乎都不起作用。
我在同一条船上,遇到了同样的问题,事实证明他们是相关的!
我已经包含行来增加upload_max_filesize
和post_max_size
但是这些被忽略, phpinfo()
返回默认值。 我已经重新启动了Apache,并且检查了正在被加载的额外的.ini
文件。
解决方案是我已经添加了我的行来增加文件开头附近的这些参数,然后在同一个文件中被覆盖!
所以,如果你遇到这个问题,确保你没有犯同样的愚蠢错误,而Ctrl-F
找到声明的原始实例,然后编辑它,而不是添加你自己的;)