我们将Windows用于我们的开发系统。我手动安装PHP,Apache,MySQL。全部来自zip包。现在:
如果我使用php 线程安全二进制文件: 从命令行执行php.exe时无法加载pdo_mysql。我收到以下警告:
PHP Warning: PHP Startup: pdo_mysql: Unable to initialize module
Module compiled with module API=20060613, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=1
These options need to match
in Unknown on line 0
我检查了我们的RHEL生产服务器,有php已经安全被禁用。所以我下载的不是线程安全二进制文件from here。
现在,我遇到了另一个问题:Apache无法启动。 error.log说:
[Thu Mar 04 13:54:08 2010] [crit] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
Pre-configuration failed
[Thu Mar 04 13:54:08 2010] [warn] (OS 995)The I/O operation has been aborted because of either a thread exit or an application request. : winnt_accept: Asynchronous AcceptEx failed.
如何在Windows中安装支持pdo_mysql的php?那么命令行php.exe是否有效?
注意:在线程安全的二进制文件中,尽管php.exe没有加载pdo_mysql,但PHP API能够加载它。因为在phpinfo中它出现了。
答案 0 :(得分:0)
抱歉!这是愚蠢的。 我发现这是问题所在: Apache正在使用线程安全的SAPI。命令行使用Zend Core提供的php.exe!
我重新配置了“PATH”环境变量:所以现在它指向线程安全包中的php.exe。问题解决了。