php.ini和.htaccess有什么区别?

时间:2010-01-26 10:45:14

标签: php

假设我想要更改

的值
php_value post_max_size 20M in .htaccess

post_max_size 20M in php.ini

两者都会做同样的操作。那么php.ini.htaccess之间有什么区别?

5 个答案:

答案 0 :(得分:14)

php.ini 中的配置用于整个服务器,而 .htaccess 文件中的配置仅在请求转到目录或子目录时使用 .htaccess 文件位于。

因此,您可以在 php.ini 中使用全局或默认配置,并在 .htaccess 文件中为各个目录配置特定配置。此外,Web托管服务提供商通常不允许访问 php.ini 或服务器配置,但只允许 .htaccess 文件。

但请注意每个PHP配置绑定的configuration modes

答案 1 :(得分:2)

PHP.ini中的配置值适用于整个服务器,它将应用于该服务器上运行的所有站点。 放在.htaccess中的配置值适用于各个站点。

答案 2 :(得分:1)

这取决于PHP在服务器上的安装方式;如果它作为apache模块安装,那么你将使用.htaccess文件来发出PHP指令,因为.htacess是由Apache读取和执行的。

如果您将PHP作为CGI运行,那么您将使用php.ini文件,因为.htaccess中的任何内容都不会影响您的PHP。

您可以通过使用phpinfo()创建一个php文件来检查PHP的安装方式;它在。

这仅指特定目录的本地覆盖;无论PHP如何安装,它都会读取你的主要php.ini文件。

答案 3 :(得分:1)

不是你问题的答案,但是我不了解自己的一个有趣的小问题,在Windows上使用PHP时,可以在注册表中设置每个目录的设置。来自manual

  

通过Windows注册表更改PHP配置

     

在Windows上运行PHP时,可以使用Windows注册表在每个目录的基础上修改配置值。配置值存储在与路径名对应的子键中的注册表项HKLM \ SOFTWARE \ PHP \ Per Directory Values中。例如,目录c:\ inetpub \ wwwroot的配置值将存储在密钥HKLM \ SOFTWARE \ PHP \ Per Directory Values \ c \ inetpub \ wwwroot中。对于从此目录或其任何子目录运行的任何脚本,该目录的设置都将处于活动状态。密钥下的值应该具有PHP配置指令的名称和字符串值。不解析值中的PHP常量。但是,只有PHP_INI_USER中的配置值可以这样设置,PHP_INI_PERDIR值不能。

答案 4 :(得分:0)

Apache是​​HTTP服务器。在网站/应用程序的根目录中配置了.htaccess文件,这意味着每个应用程序都有其自己的.htaccess文件。

php.ini是影响PHP功能的最快方法。