php_pthreads.dll - 无法找到指定的模块。

时间:2016-09-29 09:18:50

标签: php xampp pthreads

您好我正在尝试在php中实现线程。到目前为止,我已经阅读了什么,我知道pthreads库可以用于此目的。

我已经阅读了下面的php安装指南:

http://docs.php.net/manual/en/pthreads.installation.php

下载pthreads windows安装zip后,我解压缩了它&将以下文件放在相应的位置:

移动

php_pthreads.dll to the 'bin\php\ext\' directory.
      Move pthreadVC2.dll to the 'bin\php\' directory.
      Move pthreadVC2.dll to the 'bin\apache\bin' directory.
      Move pthreadVC2.dll to the 'C:\windows\system32' directory.

配置php \ php.ini并添加

extension=php_pthreads.dll

但我在服务器启动时遇到错误,如下所示:

PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_pthreads.dll' - The specified module could not be found.

 in Unknown on line 0

我无法检测到上面的问题是什么文件php_pthreads.dll是@given位置,可能会出错。

xampp的PHP版本:5.6.15,Pthreads lib版本:3.1.0这两个软件都是针对x86架构的。

我按照Saitama的建议进行了更改,将pthreads的版本从3.1.0更改为2.0.0我收到了如下新警告:

PHP Warning:  PHP Startup: pthreads: Unable to initialize module
Module compiled with module API=20100525
PHP    compiled with module API=20131226
These options need to match
 in Unknown on line 0

如何匹配这些编译API版本我有php扩展内部版本号为20131226,但如何在下载pthread二进制安装zip时决定这个数字?

1 个答案:

答案 0 :(得分:2)

只有在使用CLI SAPI时才能加载pthreads模块。

它仅在CLI SAPI下提供。

此外,pthreads v3仅适用于PHP7,因为您使用PHP 5.6,因此需要使用pthreads v2

它只能在cli sapi下使用,因为在apache下生成多个线程可能会被证明是错误的。

所以,问题是:  *您正尝试在CLI以外的其他SAPI下加载pthread。  *您需要使用pthreadsv2而不是pthreadsv3

注意:如果您使用的是pthreadsv2,则最有可能在apache SAPI下加载pthread。但仍然不推荐。强烈建议使用其他方法。