我试图在我的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():
PHP Version => 5.6.38
Compiler => MSVC11 (Visual C++ 2012)
Architecture => x64

这是我使用的pthreads版本:
php_pthreads-2.0.9-5.6-ts-vc11-x64

我已经阅读过有关此问题的类似主题,甚至没有按照视频教程逐步尝试所有操作,但没有任何效果。我究竟做错了什么?

最佳答案

安装非常简单,尽管比Simple Windows Installation指令所建议的要复杂得多:

  • 下载PHP的线程安全版本,例如php-5.6.38-Win32-VC11-x86
  • 将.ZIP文件解压缩到您的硬盘驱动器中,例如C:\php
  • 下载匹配的pthread版本,例如php_pthreads-2.0.10-5.6-ts-vc11-x86
  • pthreadVC2.dll提取到PHP文件夹中,例如C:\php
  • php_pthreads.dll提取到扩展文件夹中,例如C:\php\ext
  • 在PHP文件夹中,将php.ini-developmentphp.ini-production复制到php.ini
  • 编辑php.ini并在文件末尾添加extension=php_pthreads.dll行。

  • 在这一点上,pthreads应该正在工作。您可以通过在PHP文件夹中打开命令提示符并执行php --ri pthreads来验证这一点:

    php - 无法加载动态库 'C:\php\ext\php_pthreads.dll'-LMLPHP

    请注意,我上面引用的PHP和pthreads版本要求您安装Visual Studio 2012 (VC11) runtime才能起作用。

    编辑:为了完整起见,我下载了似乎正在使用的PHP和pthread的确切版本(主要区别是x64):
  • php-5.6.38-Win32-VC11-x64
  • php_pthreads-2.0.9-5.6-ts-vc11-x64

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

    09-25 18:04