PHP upload_max_filesize没有服从

时间:2015-11-25 02:37:06

标签: php apache .htaccess upload

PHP /etc/php.ini未遵守upload_max_filesize

详细说明: 使用<?php echo phpinfo(); ?>我可以看到“已加载的配置文件”#39;是/etc/php.ini

在这个文件中我有值:

file_uploads = On
upload_max_filesize = 12M
post_max_size = 12M

BUT phpinfo();显示upload_max_filesize 2M

重新启动Apache几次后,无论我更改upload_max_filesize和max_post_size,都不会遵守此值。

我使用.htaccess指令解决了这个问题

php_value upload_max_filesize 12M
php_value post_max_size 12M

这允许更改上传值,PHPINFO()现在可以正确显示值。

Directive            Local Value    Master Value
upload_max_filesize  12M            2M

问题是:为什么首先没有遵守/etc/php.ini文件? 运行CentOs 5.4,php 5.3.29 在grep -inr '2M' *中搜索过{/etc/php.d/*)但未找到任何内容。

为什么它没有收听它说它正在使用的主要php.ini文件?

已经看过了 PHP upload_max_filesize

Changing upload_max_filesize on PHP

在SO上没有成功。

- UPDATE-- 搜索grep -inr 'upload_max_filesize in /etc/*.ini .conf,仅返回12M值。 搜索了/ etc / httpd / conf / /etc/httpd/conf.d/,显然是虚拟主机的根目录。在grep返回0结果的虚拟主机中没有特殊设置。

Additional .ini files parsed
    /etc/php.d/bcmath.ini, /etc/php.d/curl.ini, /etc/php.d/dom.ini, /etc/php.d/fileinfo.ini, 
    /etc/php.d/gd.ini, /etc/php.d/intl.ini, /etc/php.d/json.ini, /etc/php.d/ldap.ini, 
    /etc/php.d/mbstring.ini, /etc/php.d/mcrypt.ini,
/etc/php.d/mysql.ini, /etc/php.d/mysqli.ini, /etc/php.d/pdo.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_sqlite.ini,
/etc/php.d/phar.ini, /etc/php.d/posix.ini, /etc/php.d/soap.ini,    /etc/php.d/suhosin.ini, /etc/php.d/sysvmsg.ini, /etc/php.d/sysvsem.ini, etc/php.d/sysvshm.ini,
/etc/php.d/wddx.ini, /etc/php.d/xdebug.ini, /etc/php.d/xmlreader.ini, /etc/php.d/xmlwriter.ini,
/etc/php.d/xsl.ini, /etc/php.d/zip.ini

4 个答案:

答案 0 :(得分:0)

如果你检查phpinfo()的前几行,你就可以知道了 哪个php.ini被加载。(由@Raptor提供)

在你的问题中,你提到/etc/php.ini确实是加载的。

在这种情况下,您的httpd.conf可能包含如下内容:

php_value upload_max_filesize somevalue

这是一个全球价值,将适用于所有网站 我想它可能会覆盖php.ini设置。

答案 1 :(得分:0)

我在网站的根目录中使用.htaccess覆盖了php.ini中的该值。

答案 2 :(得分:0)

我也花了很多时间试图解决这个问题。事实证明,如果您使用的是php-fpm,则会发生这种情况。将会读取php.ini文件,phpinfo()会告诉您已被读取,但是最大文件大小值(以及其他一些文件)将被忽略。

我在安装Centos8时遇到了这种情况,花了我太长时间才注意到它使用的是php-fpm而不是mod_php,因此对mod_php的所有参数都将被忽略。

您的选择是安装mod_php或只是正确配置php-fpm(更好)。

答案 3 :(得分:0)

尝试在htaccess文件中进行设置。也许这可能对你们有帮助。对我有用

php_value post_max_size 30M
php_value upload_max_filesize 25M
php_value upload_max_size 25M