我正在运行Vista 64框,并试图使用IIS7安装Joomla (我喜欢Joomla,我希望在我的网站上有一些asp.net组件,这就是为什么我想使用IIS7而不是Apache)。这是我第一次同时安装PHP和MySQL,所以很可能我做了什么明显的错误.虽然我已经尝试了足够的诊断步骤(如下所述),但我没有明显的问题.
我安装了PHP (32位,5.2.8),这似乎没问题:我得到了一个test.php
,它可以在IIS7 7服务的网页中显示phpinfo。
我还安装了MySQL (32位,5.1.31,从http://dev.mysql.com/downloads/mysql/5.1.html#win32下载)。这似乎也很好(我可以使用MySQL管理员连接到它)。
我已经设置了php.ini
,以及什么不能打开MySQL扩展。如果我从命令行执行PHP,我会在列表中看到-m。但是,对于phpinfo (来自命令行(PHP -info)或通过IIS (在test.php
文件中)提供服务),不存在MySQL部分。因为MySQL甚至没有出现在PHP的命令行调用中,所以我认为这与IIS没有任何关系--只是在vista上安装了MySQL & PHP。
我没有安装MySQL 64位,因为我安装了32位MySQL,而且由于MySQL 32位似乎工作正常,所以我认为这不是问题所在。似乎没有正式的64位PHP版本,所以我才安装了它(同样,这似乎也很好)。
目前我已经禁用了UAC,所以这不是问题所在。
如果我将分号放在extension=php_mysql.dll前面的php.ini
中,那么在运行PHP时,MySQL模块就不会出现。如果我再把它拿出来,它就会出现。因此,我至少可以肯定,我正在修改正确的php.ini
。
我把libeay32.dll
,libmysql.dll
和php_mysql.dll
抄袭给了c:\windows\system32
。我把它们去掉了,这似乎对PHP的输出没有什么影响(也就是说,如果模块与-m没有注释的话,MySQL仍然会出现在那里)。
我还尝试将DLL ibeay32.dll
、libmysql.dll
和php_mysql.dll
复制到c:\windows\sysWOW64
;这没有什么区别。
似乎最小的积极步骤是MySQL在从命令行运行-info时显示出来。我还需要进一步了解为什么MySQL会出现在PHP -m而不是PHP中吗?或者,我是否偏离了用这个来判断PHP能否与MySQL对话的轨道?
发布于 2009-02-20 15:39:41
我已经解决了大部分问题。
答案是将libmysql.dll
复制到sysWOW64。不需要其他DLL,也不需要复制到system32。我想这是在64位系统上使用php32的结果。
我认为这在一开始是行不通的,因为从命令行运行PHP仍然没有显示-info。但是,从IIS提供的PHP文件中运行phpinfo确实显示了MySQL。
我仍然不知道为什么MySQL在从命令行运行-info时没有出现,但我想我现在可以接受这种情况。
发布于 2009-02-20 16:16:00
如果您想专注于php开发,我强烈建议您不要手动安装这些东西,然后从http://www.apachefriends.org/en/xampp.html下载xampp
基本上,这是一个完整的测试和构建包,它将链接软件并为您提供一个完整的开发环境。
还有其他apache/php/mysql捆绑包。
这里的问题是,只要apache php与mysql一起工作,您就可以简单地配置IIS连接器,并且不会破坏mysql的连接。
还记得检查每件事
发布于 2009-02-20 15:21:39
您确定同样的php.ini
用于CLI和IIS吗?在POSIX兼容的系统上,php通常使用两种不同的系统。根据我的经验,在Windows上无意中使用错误的php.ini是php的主要障碍。
尝试在php.ini中稍微更改一个选项(比如memory_limit
到129M
,而不是128M
),并使用到达来了解更改是否影响php@IIS/@CLI。如果这确实只影响php@IIS,那么在php.ini
上搜索C:
--也许还有第二个(通常在PATH
中,比如C:\Windows\php.ini
)。
https://stackoverflow.com/questions/569731
复制相似问题