【问题标题】:php.ini not being read with windows 7 installationphp.ini 没有被 Windows 7 安装读取
【发布时间】:2011-02-11 17:38:39
【问题描述】:

我已经在 Windows 7 机器上成功安装了 php,但我终生无法让它读取 php.ini 文件。

我已经取消注释了 php 使用 mysql 的行,当我运行 phpinfo() 时,它永远不会出现。

我已检查以确保我的整个 c:\ 驱动器上只有一个 php.ini 文件,并且它位于我的 c:\windows 文件夹中。

有没有其他人遇到过这个问题并知道让 php 读取 .ini 以便我可以启用一些扩展(mysql 等)的解决方案?

【问题讨论】:

    标签: iis-7 windows-7 php


    【解决方案1】:

    检查以下内容:

    1. 确保您只有一个php.ini 文件。它应该与php.exephp-cgi.exephp-win.exe 在同一个文件夹中。值得检查您的 c:\windowsc:\windows\system32 文件夹。如果您在那里或PATH 上除 PHP 安装文件夹之外的任何其他位置找到 php.ini,请删除它们。

      一个方便的检查方法是从命令提示符运行where php.ini

    2. 将您的 PHP 安装和扩展文件夹添加到系统 PATH:例如 - c:\phpc:\php\ext

    3. 编辑您的php.ini 文件并确保extension_dir 指令指向扩展文件夹:extension_dir=c:\php\ext

    这应该会让你继续前进。如果您仍然发现未加载扩展,请在扩展前添加 ext/。例如:

    extension=ext/php_mysql.dll

    您没有说明您是否使用 FastCGI 来启动 PHP。

    如果您只是将.php 扩展直接映射到php-cgi.exe,或者您正在使用FastCGI 但没有指定monitorChangesTo 属性,那么您需要杀死任何php-cgi.exe 进程以强制重新在任何更改后阅读php.ini(或执行IISRESET)。

    如果您在 Windows 7(或通常为 IIS 7.5)上使用 FastCGI,那么只要您的 php.ini 文件发生更改,您就可以通过在 monitorChangesTo 属性中指定 php.ini 文件的路径来触发 FastCGI 的回收。这也可以通过 FastCGI 设置小程序下的 IIS 管理器进行配置。

    【讨论】:

      【解决方案2】:

      我遇到了同样的错误。当我尝试从命令行运行 php -m 时,它正在拉起适当的模块,所以我知道正在加载正确的 php.ini。

      但是,在网络服务器上,无论我更改什么,它都会将我的 php 根文件夹作为 extension_dir 拉出来。

      我做了几件事,似乎解决了它。

      第一,我确保我的扩展路径具有 IIS_USer 读取权限。我不知道这是否与它的工作有关,因为它本身什么也没做。

      第二,我回到 IIS 管理器,加载了我用来最初设置 php 处理程序以使用 FastCGI 的处理程序映射。我不必实际更改任何内容,但通过打开对话框并保存它,它要求确认。 之后,我回到我的 phpinfo() 页面,它提取了有关 extensions_dir 的正确信息。

      我希望这对以后的人有所帮助。

      【讨论】:

      • 在升级我的 php 版本后遇到了同样的问题,忘记了我更改了文件夹名称。因此,请确保 Handler Mappings 中 FastCGI 模块上可执行文件的路径正确
      猜你喜欢
      • 2012-08-15
      • 2011-07-21
      • 1970-01-01
      • 2013-06-06
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多