Directory ';覆盖';php.ini设置

Directory ';覆盖';php.ini设置,directory,php,Directory,Php,我有一个文件夹,对于该文件夹中的所有php文件(或者更好,在该文件夹或其中的任何文件夹中),我想对php设置进行一些更改。我是否可以在该文件夹中放置一个php.ini文件,其中包含我要更改的设置 如果是这样的话,有什么原因说明这对我不起作用吗?这是我自己的服务器 谢谢 编辑:我希望能够使用一个本地php.ini文件,就像我能够使用几个Web主机一样。这是可能的吗?您必须使用.htaccess文件来实现这一点。PHP手册中有一节介绍了这一点: 有关htaccess文件的更多一般信息,请阅读:

我有一个文件夹,对于该文件夹中的所有php文件(或者更好,在该文件夹或其中的任何文件夹中),我想对php设置进行一些更改。我是否可以在该文件夹中放置一个php.ini文件,其中包含我要更改的设置

如果是这样的话,有什么原因说明这对我不起作用吗?这是我自己的服务器

谢谢


编辑:我希望能够使用一个本地php.ini文件,就像我能够使用几个Web主机一样。这是可能的吗?

您必须使用.htaccess文件来实现这一点。PHP手册中有一节介绍了这一点:

有关htaccess文件的更多一般信息,请阅读:


而不是修改每个文件夹的php.ini文件,您需要修改.htaccess文件。使用您喜欢的任何设置将文件保存在文件夹中。由于php.ini中的更改被视为服务器范围内的更改,因此无法使用php.ini文件来完成此操作。如果您想在代码中完成更改,也可以使用
ini\u set()

对于Apache服务器,.htaccess文件通常是最好的方式。但是,为了回答您最初的问题,如果需要,您可以在每个目录中设置一个php.ini文件。然而,为了让它工作,PHP必须设置为以PHP-CGI的形式运行。我猜您正在将PHP作为Apache模块运行


有关PHP在何处查找PHP.ini以及何时查找PHP.ini的参考信息,请参见此链接:

您似乎想要使用PHP 5.3中提供的。如果它是你自己的服务器,我想你很乐意跟上最新的稳定版本(目前是5.3.2)。返回ini文件,引用该手册页面:

自PHP5.3.0以来,PHP在每个目录的基础上包括对.htaccess样式INI文件的支持。这些文件仅由CGI/FastCGI SAPI处理。此功能淘汰了PECL htscanner扩展。如果您使用的是Apache,请使用.htaccess文件以获得相同的效果

除了主php.ini文件外,php还扫描每个目录中的ini文件,从请求的php文件的目录开始,一直扫描到当前文档根(如$\u服务器['document\u root']中设置的)。在.USER.INI样式的INI文件中,只有模式为PHP_INI_PERDIR和PHP_INI_USER的INI设置才会被识别


你确定我不能使用本地php.ini文件吗?我无法使用htaccess,因为我使用的是PHP5.0,我无法升级,因为这可能会破坏我的一些应用程序。(+1 btw用于尝试帮助!)。htaccess与PHP没有任何关系。您可以在.htaccess中更改PHP4和PHP5的PHP设置。但是,it dDO要求您运行Apache作为您的web服务器,因为其他web服务器不使用。htaccess(但它们可能有类似的解决方案)无论您的PHP版本如何,htaccess都可以工作。“local php.ini”不起作用,因为php只加载主ini文件和在其中配置的其他文件。Techpriester说,这只是部分正确@约瑟夫:你能说得再精确一点吗?您的意思是实际加载的ini文件的位置可能取决于几件事吗?必须在脚本运行之前设置这些设置。这不是一个选择。啊,好的。我在一些应用程序中,在引导加载程序中包含了一个文件,用于将选项设置为所需的值,然后继续运行该应用程序。我不知道有任何性能问题,但它确实使值更易于管理。通常,我只是设置上传限制和最大执行时间。是的。我真的很感激你的回答——虽然这不是我所需要的:)太棒了——这并没有直接帮助解决问题,但却让我找到了一个非常类似的解决方案。谢谢