2010-05-24 126 views
2

我有一个文件夹,并且该文件夹中的所有PHP文件(甚至更好,该文件夹或其中的任何文件夹中),我想作出一些更改PHP设置。我可以在这个文件夹中放置一个php.ini文件,并使用我想要更改的设置吗?“覆盖” php.ini设置

如果是这样,任何理由,这不会为我工作?这是我自己的服务器。

谢谢!

编辑:我想能够使用本地php.ini文件,我已经能够与一些主机商做。这有可能吗?

回答

3

它看起来像你想使用per-directory php.ini files其可作为PHP 5.3的。如果它是你自己的服务器,我想你很乐意跟上最新的稳定版本(目前是5.3.2)。回到ini文件,引用该手册页:

自PHP 5.3.0起,PHP在每个目录的基础上支持.htaccess样式的INI文件。这些文件只能由CGI/FastCGI SAPI处理。该功能废除了PECL htscanner扩展。如果您使用的是Apache,请使用.htaccess文件获得相同的效果。

除了主要的php.ini文件之外,PHP还会扫描每个目录中的INI文件,从请求的PHP文件的目录开始,一直到当前文档根目录(如$ _SERVER [ 'DOCUMENT_ROOT'])。仅具有PHP_INI_PERDIR和PHP_INI_USER模式的INI设置才能在.user.ini样式的INI文件中识别。

+0

辉煌 - 这并没有直接帮助解决问题,但让我得到了一个非常类似的解决方案。谢谢! – Cam 2010-05-26 04:51:45

2

您必须为此使用.htaccess文件。有PHP手册有关的一段:

http://php.net/manual/en/configuration.changes.php

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

http://en.wikipedia.org/wiki/Htaccess

http://httpd.apache.org/docs/2.0/howto/htaccess.html

+0

你确定我不能使用本地的php.ini文件?我无法使用htaccess,因为我在php 5.0上,而且我无法升级,因为它可能会破坏我的一些应用程序。 (+1 btw试图帮助!) – Cam 2010-05-24 18:43:28

+0

.htaccess没有任何与PHP有关的事情。您可以在PHP 4和PHP 5的.htaccess中更改PHP设置。但是,它dDO要求您将Apache作为您的Web服务器运行,因为其他Web服务器不使用.htaccess(但它们可能有类似的解决方案) – 2010-05-24 19:09:01

+0

无论您的PHP版本是什么,htaccess都能正常工作。 “本地php.ini”将不起作用,因为PHP只加载主ini文件和其中配置的其他文件。 – selfawaresoup 2010-05-24 19:12:48

0

代替修改php.ini文件的每个文件夹,你将需要修改通过.htaccess文件。用任何你喜欢的设置将文件保存在文件夹中。因为在php.ini的变化被认为是服务器宽

1

你也可以使用ini_set(),如果你想要做的代码你不能用一个php.ini文件做到这一点。

+1

设置必须在脚本运行之前设置。这不是一个选项。 – Cam 2010-05-24 18:47:14

+0

啊,好的。我有一些应用程序,我在引导加载程序中包含了一个文件,将选项设置为所需的值,然后继续运行应用程序。我不知道任何性能问题,但它确实使值更容易管理。通常,我只是设置上传限制和最大执行时间等。 – chris12892 2010-05-24 18:50:07

+0

是的。我很欣赏这种反应 - 这不是我所需要的:) – Cam 2010-05-24 19:01:41

2

的.htaccess文件通常是去Apache服务器的最佳方式。但是,要回答您的原始问题,是的,您可以在每个目录中设置一个php.ini文件。但是,为了使其工作,PHP必须设置为以PHP-CGI运行。我的猜测是你作为Apache模块运行PHP。

查看PHP查找php.ini文件在何时何地寻找它这个链接以供参考:http://www.php.net/manual/en/configuration.file.php