【发布时间】:2023-03-14 19:50:01
【问题描述】:
PHP /etc/php.ini 不遵守upload_max_filesize
详情:
使用<?php echo phpinfo(); ?> 我可以看到“加载的配置文件”是/etc/php.ini
在这个文件中我有值:
file_uploads = On
upload_max_filesize = 12M
post_max_size = 12M
但是 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
在 /etc/php.d/* 中搜索 (grep -inr '2M' *) 未找到任何内容。
为什么它不听它说它正在使用的主 php.ini 文件?
已经看过了 PHP upload_max_filesize
和 Changing upload_max_filesize on PHP
在 SO 上没有成功。
--更新--
搜索 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
【问题讨论】:
-
在
phpinfo()页面的前几行,它应该告诉正在加载哪个php.ini。搜索php.ini -
@Raptor :OP 说 /etc/php.ini 确实被使用了。
-
糟糕。我错过了那条线
-
@Raptor:还是谢谢你。我忽略了您可以查看 phpinfo() 结果以查看使用了哪个 .ini 的事实。
-
@Raptor :顺便说一句,是否可以同时拥有多个 .ini 文件。一个通用的和一个自定义的,可用于根据需要覆盖通用的设置。
标签: php apache .htaccess upload