4

我对 PHP 中的 pthreads 有疑问。

当我启动 apache 时,我看到如下错误:

php.exe - Entry point not found
The procedure entry point was not found _zend_hash_update@@12 in library D:\xampp\php\ext\php_pthreads.dll

当我在 CMD 中执行脚本时,我有一个警告:

PHP Warning:  PHP Startup: Unable to load dynamic library 'php_pthreads.dll' (tried: D:\xampp\php\ext\php_pthreads.dll

我将 pthreadVC2.dll 复制到:

C:/windows/system32
D:/xampp/php
D:/xampp/apache/bin

我将最后一个文件 php_pthreads.dll 复制到:

D:/xampp/ext

我添加到 php.ini 行:

extension=php_pthreads.dll

我的配置:

我在 php 7.2.x 中尝试过,但遇到了同样的问题,但出现了其他 apache 启动错误消息。也许有人可以帮助我。

4

1 回答 1

10

我的问题解决了!

我的建议:

  • 在 xampp 上降级到 7.2.x 版本的 PHP(因为 pthreads 3.2.0 与 php 7.2 兼容)
  • 下载安装php_pthreads-3.2.0(与PHP一样编译MSVC 15。链接:https ://github.com/krakjoe/pthreads/releases )
  • 从 apache/bin 中删除 pthreadVC2.dll(因为不需要它)
  • 复制 php.ini 并将副本另存为 php-cli.ini
  • 从 php.ini 中删除 extension=php_pthreads.dll 的行(此行必须存在于 php-cli.ini 中)

尝试使用 CMD 命令: php --ini 并检查加载的配置文件。那必须设置为 php-cli.ini。并尝试命令: php -i 并在结果中找到 pthreads。

于 2019-01-03T14:33:40.223 回答