假设我想要更改
的值php_value post_max_size 20M in .htaccess
post_max_size 20M in php.ini
两者都会做同样的操作。那么php.ini
和.htaccess
之间有什么区别?
答案 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功能的最快方法。