我在 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

我的配置:
  • Windows 10 上的 XAMPP
  • PHP 版本 7.3.0
  • 编译器:MSVC15 (Visual C++ 2017)
  • 架构:x86
  • 启用线程安全
  • 线程 API 是 Windows 线程
  • php_threads 3.1.6 x86 从 https://windows.php.net/downloads/pecl/releases/pthreads/3.1.6/ 下载

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

    最佳答案

    我的问题解决了!

    我的建议:

  • 在 xampp 上将 PHP 降级到 7.2.x 版本(因为 pthreads 3.2.0 与 php 7.2 兼容)
  • 下载并安装php_pthreads-3.2.0(与MSVC 15编译相同
    PHP。链接: 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。

    关于php - PHP 中 pthread 的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54007662/

    10-11 02:49
    查看更多