2010-04-23 71 views
6

我已经在Windows 7机器上成功安装了php,但是我无法为了我的生活而让它读取php.ini文件。php.ini不能被Windows 7安装读取

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

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

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

回答

5

检查以下内容:

  1. 确保你只有一个php.ini文件。它应该位于与php.exe,php-cgi.exephp-win.exe相同的文件夹中。值得检查你的c:\windowsc:\windows\system32文件夹。如果您在其中或PATH以外的其他地方找到了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)。

如果你使用FastCGI在Windows 7(或IIS 7.5一般),那么你可以触发FastCGI的回收,只要通过指定的php.ini文件中的monitorChangesTo属性的路径你php.ini文件更改。这也可以通过FastCGI Settings applet下的IIS管理器进行配置。

0

我有这个完全相同的错误。当我尝试从命令行运行php -m时,它正在拉起适当的模块,所以我知道正确的php.ini正在被加载。

但是,在网络服务器上不管我改变了什么,它一直在拉我的php根文件夹作为extension_dir。

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

1,我确定了我的扩展具有IIS_USer读权限的路径。我不知道这是否与它的工作有关,因为这本身没有任何作用。

第二,我回到IIS管理器,加载了我用来初始设置php处理程序以使用FastCGI的Handler Mappings。我不必真的改变任何东西,但是通过弹出对话框并保存它,它要求确认。 之后,我回到我的phpinfo()页面,并且提取了有关extensions_dir的正确信息。

我希望这可以帮助路上的人。

+0

升级我的PHP版本后,刚刚遇到同样的问题,并忘记我改变了文件夹名称。因此,请确保Handler Mappings中FastCGI模块的可执行文件路径正确 – stibay 2017-07-26 07:56:17