无法加载动态库';C:\php\ext\php#pthreads.dll';

无法加载动态库';C:\php\ext\php#pthreads.dll';,php,multithreading,php-pthread,Php,Multithreading,Php Pthread,我试图在我的php代码中包含线程,但我无法了解pthreads库,每次运行程序时都会遇到以下错误: Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_pthreads.dll' - The specified module could not be found.in Unknown on line 0 我遵循了所需的每一步: I've added the file pthreadVC2.dll in my

我试图在我的php代码中包含线程,但我无法了解pthreads库,每次运行程序时都会遇到以下错误:

Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_pthreads.dll' - The specified module could not be found.in Unknown on line 0
我遵循了所需的每一步:

I've added the file pthreadVC2.dll in my "C:\php" folder
I've added the file php_pthreads.dll in my "C:\php\ext"folder
I've modified the file php.ini, enabling the extension: extension=php_pthreads.dll
I've also added pthreadVC2.dll to system32 folder.
这是我的phpinfo()

下面是我使用的pthreads的版本:

php_pthreads-2.0.9-5.6-ts-vc11-x64

我读过关于这个问题的类似主题,甚至根据视频教程一步一步地尝试了所有东西,但没有任何效果。我做错了什么?

安装非常简单,尽管比说明中建议的要复杂一些:

  • 下载PHP的线程安全版本,例如。
    • 将.ZIP文件解压缩到硬盘,例如
      C:\php
  • 下载pthreads的匹配版本,例如。
    • pthreadVC2.dll
      提取到PHP文件夹中,例如
      C:\PHP
    • php_pthreads.dll
      提取到extensions文件夹中,例如
      C:\php\ext
  • 在PHP文件夹中,将
    PHP.ini开发
    PHP.ini生产
    复制到
    PHP.ini
  • 编辑
    php.ini
    并在文件末尾添加一行
    extension=php_pthreads.dll
  • 此时,pthreads应该可以工作了。您可以通过在PHP文件夹中打开命令提示符并执行
    PHP--ri pthreads
    来验证这一点:

    注意,我上面提到的PHP和pthreads版本要求您安装to函数


    编辑:为了完整起见,我下载了您正在使用的PHP和pthreads的确切版本(主要区别是x64):


    按照上面的步骤,我收到了相同的结果(当然,除了pthreads版本被报告为2.0.9)。

    我不熟悉该扩展,但手册中包含关于在web服务器环境中不可用以及需要启用ZTS(Zend Thread Safety)的警告。您使用的是用
    --enable zts
    编译的命令行构建吗?我在Windows上工作。手册中提到的Zend线程安全要求是否仍然适用?@lvaroGonzález是的,根据和。(我确实在第1点中写了“PHP的线程安全版本”)。。。我认为混淆的部分是对
    --enable zts
    构建开关的引用。我希望在
    phpinfo()
    (“配置命令”部分)中看到它。那么“线程安全性”下的信息是否与“Zend线程安全性”相同(换句话说,是否存在一种“Zend”类型的线程安全性,或者它是完全相同的?)在我的无知中,我一直假设ZTS和TS是一个整体。由于pthreads是有效的,正如我在回答中所概述的,证据似乎支持这一点。我通常在Windows上工作,并使用PHP.net中的预构建版本的PHP。如果您自己使用ZT或TS中的一个进行编译,那么可能只使用其中一个进行编译?如果它适用于官方二进制文件,那么很明显,我关于“配置命令”的假设是错误的。回答得又好又彻底!
    php_pthreads-2.0.9-5.6-ts-vc11-x64