PHP 中的 pthread 问题

Problems with pthreads in PHP

我在 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 启动错误消息。 也许有人可以帮助我。

我的问题解决了!

我的建议:

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

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