无法加载动态库';C:\php\ext\php#pthreads.dll';
我试图在我的php代码中包含线程,但我无法了解pthreads库,每次运行程序时都会遇到以下错误:无法加载动态库';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
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
我读过关于这个问题的类似主题,甚至根据视频教程一步一步地尝试了所有东西,但没有任何效果。我做错了什么?安装非常简单,尽管比说明中建议的要复杂一些:
- 将.ZIP文件解压缩到硬盘,例如
C:\php
- 将
提取到PHP文件夹中,例如pthreadVC2.dll
C:\PHP
- 将
提取到extensions文件夹中,例如php_pthreads.dll
C:\php\ext
PHP.ini开发
或PHP.ini生产
复制到PHP.ini
php.ini
并在文件末尾添加一行extension=php_pthreads.dll
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