php.ini配置文件位置和已加载的配置文件之间有什么区别?

17

配置文件和加载的配置文件有什么区别?

如果从"C:\Program Files (x86)\PHP\php.ini "加载ini文件,那么C:\Windows中的ini是什么意思?

phpinfo()的输出结果

Configuration File (php.ini) Path C:\Windows 
Loaded Configuration File C:\Program Files (x86)\PHP\php.ini 

如果我需要更改某些配置,我应该修改这两个文件吗?


我注意到在Windows上,即使我设置了PHPRC=c:\somepath\php.ini,也无法更改“配置文件(php.ini)路径”。但由于已加载的文件是唯一重要的文件,因此这只是另一个需要吸收并继续前进的信息,因为当“已加载”显示另一个文件时,PHP不使用C:\ Windows \ php.ini。 - Warren P
3个回答

12
"

配置文件(php.ini)路径

" 是 php.ini 文件默认的位置/PHP 默认查找的位置(这个路径可能是Win发行版的 %windir 环境变量?)。

我相信,在您的 Apache 配置中,您有 PHPINIDir,这明确定义了一个新的 ini 文件路径。如果您没有将 php.ini 放在其中,则会使用 PHP 默认值(即使您已经将 php.ini 放在 C:\Windows 文件夹中)。至少在使用 PHP 作为模块时是这样的情况(这是我的配置,并且我能够进行测试)。

因此,“Loaded Configuration File”是当前加载的配置文件,也是您应该编辑的文件。


1
可能会在将来的参考中添加,<?php echo php_ini_loaded_file(); ?> 将为您提供当前使用的 ini,以防多个引用(如 .user.ini 或基于文件夹的 php.ini)。 - Obmerk Kronen

1

已加载的配置文件是正确的。不确定另一个文件的含义。请更改已加载的文件。

另外,C:\Windows 中真的有 php.ini 文件吗?我猜没有。


2
是的,一些Windows Web服务器捆绑包(如Apache、PHP等)会将配置文件放在C:\ Windows中,有时它就是有效的配置文件。 - Adi
1
有人能解释一下为什么这条评论被严重踩了吗?是错误的吗?我也在寻找我的php.ini文件。 - felwithe

0

我在WS 2008 R2上使用IIS时也遇到了同样的问题。 加载的配置文件总是来自program files/php/php.ini,但我需要来自WAMP服务器的php.ini(c:/wamp/php/...) 我尝试找到它指向program files的位置。过了一会儿,我决定尝试重命名programfiles中的php.ini文件(就像被删除或丢失了),然后重新启动WAMP服务,就能从C:/wamp/...获得正确的php.ini文件:) 此外,我还必须删除IE中的cookies才能让网站正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接