如何修复';PHP致命错误:未捕获的Pheanstalk\Exception\SocketException:未知错误';

如何修复';PHP致命错误:未捕获的Pheanstalk\Exception\SocketException:未知错误';,php,beanstalkd,pheanstalk,Php,Beanstalkd,Pheanstalk,我想用pheanstalk建立一个BeanStalkD客户端 我可以执行某些操作,例如listTubes() 当我尝试从beanstalkd队列中保留作业时,出现以下错误: PHP致命错误:未捕获的Pheanstalk\Exception\SocketException:C:\SmartParking\vendo中的未知错误 r\pda\pheanstalk\src\Socket\FileSocket.php:49 堆栈跟踪: #0 C:\SmartParking\vendor\pda\phea

我想用pheanstalk建立一个BeanStalkD客户端

我可以执行某些操作,例如listTubes()

当我尝试从beanstalkd队列中保留作业时,出现以下错误:

PHP致命错误:未捕获的Pheanstalk\Exception\SocketException:C:\SmartParking\vendo中的未知错误 r\pda\pheanstalk\src\Socket\FileSocket.php:49 堆栈跟踪: #0 C:\SmartParking\vendor\pda\pheanstalk\src\Socket\FileSocket.php(91):pheanstalk\Socket\FileSocket->t hrowException() #1 C:\SmartParking\vendor\pda\pheanstalk\src\Connection.php(84):pheanstalk\Socket\FileSocket->getLine( ) #2 C:\SmartParking\vendor\pda\pheanstalk\src\pheanstalk.php(372):pheanstalk\Connection->dispatchComman d(对象(Pheanstalk\Command\ReserveCommand)) #3 C:\SmartParking\vendor\pda\pheanstalk\src\pheanstalk.php(255):pheanstalk\pheanstalk->调度(Objec t(Pheanstalk\Command\ReserveCommand)) #4 C:\SmartParking\secondtrunt.php(22):Pheanstalk\Pheanstalk->reserve() #5{main} 在第49行的C:\SmartParking\vendor\pda\pheanstalk\src\Socket\FileSocket.php中抛出

我需要做什么来解决这个问题

我试过:

各种版本的PHP,各种版本的pheanstalk,重启一切,包括BeanStalkD服务器本身

这一切都是在品牌Windows Server 2016上运行的,PHP只是在命令行之外用作脚本引擎

我目前使用的是PHP 7.2版

// Hopefully you're using Composer autoloading.
require('vendor/autoload.php');
use Pheanstalk\Pheanstalk;
// Create using autodetection of socket implementation
$pheanstalk = Pheanstalk::create('127.0.0.1');

var_dump($pheanstalk->listTubes());

while(true){
  $job = $pheanstalk
  ->watch('alpr-alt')
  ->reserve();

  echo json_decode($job->getData(), true);
}

我的
PHP.ini中没有启用套接字

所以我改变了:

;extension=sockets

如果您使用PHP作为web服务器的一部分,那么此时必须重新启动它


这解决了我的问题。

我的
PHP.ini中没有启用套接字

所以我改变了:

;extension=sockets

如果您使用PHP作为web服务器的一部分,那么此时必须重新启动它


这解决了我的问题。

一点帮助调查:在pheanstalk/FileSocket.php中,this
fgets($this->socket,8192)解析为false,然后抛出“未知错误”,谢谢你,这真的帮了我的忙。我查看了这段代码,然后意识到我没有在PHP.ini中启用套接字扩展。我现在觉得自己像个白痴。我在这个问题上浪费了两个小时:)你可以给自己的问题写一个答案,详细解释是什么解决了这个问题。可以帮助未来的访问者。一点帮助调查:在pheanstalk/FileSocket.php中,this
fgets($this->socket,8192)解析为false,然后抛出“未知错误”,谢谢你,这真的帮了我的忙。我查看了这段代码,然后意识到我没有在PHP.ini中启用套接字扩展。我现在觉得自己像个白痴。我在这个问题上浪费了两个小时:)你可以给自己的问题写一个答案,详细解释是什么解决了这个问题。可以帮助未来的游客。