我已经在Windows 7机器上成功安装了php,但是我不能在生活中让它读取php.ini文件。
我已经取消注释了php使用mysql的行,当我运行phpinfo()时,它从未显示出来。
我已经检查过以确保我的整个c:\驱动器上只有一个php.ini文件,它位于我的c:\ windows文件夹中。
有没有其他人遇到这个并知道一个解决方案,让php读取.ini,以便我可以启用一些扩展(mysql等)?
答案 0 :(得分:5)
检查以下内容:
确保您只有一个php.ini
文件。它应与php.exe
,php-cgi.exe
和php-win.exe
位于同一文件夹中。值得检查您的c:\windows
和c:\windows\system32
文件夹。如果您在{安装文件夹'以外的php.ini
中找到PATH
或其他任何位置,请删除它们。
检查此方法的一种方便方法是从命令提示符运行where php.ini
。
将PHP安装和扩展文件夹添加到系统PATH
:例如 - c:\php
和c:\php\ext
修改php.ini
文件并确保extension_dir
指令指向扩展程序文件夹:extension_dir=c:\php\ext
这应该让你去。如果您仍然发现未加载扩展程序,请在扩展名前添加ext/
。例如:
extension=ext/php_mysql.dll
您没有说明您是否使用FastCGI来启动PHP。
如果您只是将.php
扩展程序直接映射到php-cgi.exe
,或者您使用的是FastCGI但尚未指定monitorChangesTo
属性,那么您需要删除任何{{1} }}进程强制在任何更改后重新读取php-cgi.exe
(或执行php.ini
)。
如果您在Windows 7(或通常是IIS 7.5)上使用FastCGI,那么只要IISRESET
文件发生更改,您就可以通过指定php.ini
文件的路径来触发FastCGI的回收{1}}属性。这也可以通过FastCGI设置小程序下的IIS管理器进行配置。
答案 1 :(得分:0)
我遇到了同样的错误。当我尝试从命令行运行php -m时,它正在启动相应的模块,所以我知道正在加载正确的php.ini。
然而,在网络服务器上,无论我改变什么,它都会继续将我的php根文件夹拉为extension_dir。
我做了几件事似乎解决了。
1,我确保我的扩展路径具有IIS_USer读取权限。我不知道这是否与它起作用有关,因为它本身没有做任何事情。
第二,我回到IIS管理器,加载了我用来初步设置php处理程序以使用FastCGI的Handler Mappings。我没有必要改变任何东西,但是通过调出对话框并保存它,它要求确认。 之后,我回到了我的phpinfo()页面,它提取了有关extensions_dir的正确信息。我希望这可以帮助有人在路上。