'覆盖'php.ini设置

时间:2010-05-24 18:34:21

标签: directory php

我有一个文件夹,对于该文件夹中的所有php文件(甚至更好,在该文件夹或其中的任何文件夹中)我想对php设置进行一些更改。我可以将php.ini文件放在该文件夹中,并附上我想要更改的设置吗?

如果是这样,为什么不会为我工作?这是我自己的服务器。

谢谢!

编辑:我希望能够使用本地php.ini文件,因为我已经能够使用几个webhosts。这有可能吗?

5 个答案:

答案 0 :(得分:3)

看起来你想要使用从PHP 5.3开始提供的per-directory php.ini files。如果它是您自己的服务器,我想您很高兴能够跟上最新的稳定版本(目前为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文件中识别。

答案 1 :(得分: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

答案 2 :(得分:2)

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

请参阅此链接以获取有关PHP查找php.ini的位置及其查找时间的参考:http://www.php.net/manual/en/configuration.file.php

答案 3 :(得分:1)

如果您想在代码中执行此操作,也可以使用ini_set()

答案 4 :(得分:0)

而不是修改每个文件夹的php.ini文件,而不是修改.htaccess文件所需的文件。使用您喜欢的任何设置将文件保存在文件夹中。您无法使用php.ini文件执行此操作,因为php.ini中的更改被视为服务器范围