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

时间:2018-09-27 11:33:19

标签: 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 "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

这是我使用的pthread的版本:

php_pthreads-2.0.9-5.6-ts-vc11-x64

我已经阅读过有关此问题的类似主题,甚至确实按照视频教程一步步尝试了所有内容,但没有任何效果。我在做什么错了?

1 个答案:

答案 0 :(得分:3)

安装非常简单,尽管比Simple Windows Installation说明更复杂:

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

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

Screenshot of result

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


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

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