为啥 .htaccess 或 php.ini 覆盖 /etc/php.ini 不起作用?
Posted
技术标签:
【中文标题】为啥 .htaccess 或 php.ini 覆盖 /etc/php.ini 不起作用?【英文标题】:Why does .htaccess or php.ini overriding /etc/php.ini not work?为什么 .htaccess 或 php.ini 覆盖 /etc/php.ini 不起作用? 【发布时间】:2013-12-27 07:13:32 【问题描述】:我想在不修改 /etc/php.ini 的情况下调整 post_max_size 和 upload_max_filesize
PHP 版本 5.3.27 根目录:/var/www/html/my_site
这是我做过的事情:
我在html目录下添加了php.ini(没用)
memory_limit = 96M post_max_size = 64M upload_max_filesize = 64M我在html目录下添加了.htaccess文件(没用)
php_value upload_max_filesize 64M php_value post_max_size 64M我还将它们都添加到 /my_site 目录下,但它们都不起作用
每次添加它们时,我都会重新启动服务器
我也把php.ini改成了php5.ini
我也变了
php_value到
php5_value调整权限问题
出了什么问题?
【问题讨论】:
在您的尝试中收到任何错误消息?你是在运行 mod_php 还是运行 cgi/fcgi 版本? 我已经检查了日志中的错误说 PHP 警告:POST Content-Length of 15799451 bytes 超出了 Unknown on line 0 中 8388608 bytes 的限制,referer: 我如何知道我运行的是 mod_php 还是 cgi/fcgi 版本? 您可以通过在 php 文件中使用ini_get(flag_name)
来检查 .htaccess 中的更改是否生效。例如:echo ini_get('upload_max_filesize')
将输出 upload_max_filesize
的值。
【参考方案1】:
许多共享主机限制了您可以在 .htaccess 中使用的标志,upload_max_filesize
/post_max_size
是常见的。如果您使用的是共享主机,请联系技术支持以确认这一点。
【讨论】:
那些标志是什么?你能更具体一点吗?谢谢! 由服务器管理员决定他们如何限制 apache/php 环境的自定义。如果您尝试允许在您的网站上进行大量上传,upload_max_filesize
和 post_max_size
是您想要的标志(可能还有 max_execution_time
和 max_input_time
),但您作为他们服务的用户通常不是出于安全原因,允许您自己在 .htaccess 文件中更改它们。如果您提出要求,它们通常会为您增加这些值。
我们这里有自己的服务器,可以直接与系统管理员联系以更改内容。当我们增加 /etc/php.ini 中的 upload_max_filesize 和 post_max_size 的值时,结果很好,但由于我们不想改变主文件,我们正在寻找一种方法来覆盖它。您对我们的系统管理员可以做些什么来帮助我有什么建议吗??
系统管理员不是花钱来修复这样的东西吗?
当然,在这种情况下,听起来这些选项在 .htaccess 中受到限制。让您的系统管理员按照documentation 在您的httpd.conf 文件中使用AllowOverride All
指令。这将使您的 .htaccess 中的这些设置生效。以上是关于为啥 .htaccess 或 php.ini 覆盖 /etc/php.ini 不起作用?的主要内容,如果未能解决你的问题,请参考以下文章