Windows下安装PHP pthread库报错:Class 'Thread' not found 求助
我之前配置pthreads的时候也踩过一模一样的坑,给你几个实用的排查步骤,按顺序试下来大概率能解决:
先确认PHP版本和pthreads的兼容性
pthreads对PHP的线程安全(TS)版本、位数(32/64位)、大版本号要求特别严格,必须完全匹配。比如你用的是PHP 7.4 64位线程安全版,就得找对应版本的pthreads包。可以在命令行运行php -v,看输出里有没有Thread Safe字样,确认自己的PHP环境类型。检查php.ini是否被正确修改
XAMPP经常有多个php.ini文件(比如Apache使用的和CLI模式使用的不是同一个),你可以在PHP脚本里加入<?php phpinfo(); ?>,运行后搜索“pthreads”关键词,如果完全找不到相关内容,说明你修改的php.ini不是当前PHP环境加载的那个。在phpinfo页面里也能看到“Loaded Configuration File”项,找到实际生效的php.ini路径再去修改。验证dll文件的路径和依赖
- 确保
pthreadVC2.dll放在了PHP根目录(C:/xampp/php),并且这个目录已经添加到系统的环境变量PATH中——不然PHP启动时会找不到这个核心依赖文件。 php_pthreads.dll要准确放在C:/xampp/php/ext目录下,同时php.ini里的配置必须写全:extension=php_pthreads.dll,别漏掉前缀“php_”。
- 确保
务必重启服务
修改完php.ini之后,一定要重启Apache(如果是Web环境)或者关闭所有PHP相关的进程(CLI模式),不重启的话新的扩展配置根本不会生效。查看错误日志找细节
如果以上步骤都没解决,去XAMPP的php/logs目录打开PHP错误日志,里面会有扩展加载失败的具体原因——比如“找不到指定的模块”“版本不兼容”之类的,根据日志信息再针对性解决。
另外提一句:pthreads在PHP 7.2之后的版本兼容性越来越差,现在官方更推荐使用parallel扩展来实现多线程功能,如果你是新项目,可以考虑切换到这个更活跃的扩展。
内容的提问来源于stack exchange,提问作者Hcetipe

