首页 > 解决方案 > yii2 queue proc_open 将第一个参数作为字符串除外,但给出了数组

问题描述

嗨,我有电子邮件工作队列。但是当我创建一个新任务时,我有这个错误:

PHP Warning 'yii\base\ErrorException' with message 'proc_open() expects parameter 1 to be string, array given'

in /var/www/112kilo/vendor/symfony/process/Process.php:285

Stack trace:
#0 /var/www/112kilo/vendor/symfony/process/Process.php(196): Symfony\Component\Process\Process->start()
#1 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/cli/Command.php(192): Symfony\Component\Process\Process->run()
#2 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/cli/Command.php(125): yii\queue\cli\Command->handleMessage()
#3 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/cli/Queue.php(144): yii\queue\cli\Command->yii\queue\cli\{closure}()
#4 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/cli/Queue.php(144): ::call_user_func:{/var/www/112kilo/vendor/yiisoft/yii2-queue/src/cli/Queue.php:144}()
#5 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/drivers/file/Queue.php(77): yii\queue\cli\Queue->handleMessage()
#6 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/cli/Queue.php(117): yii\queue\file\Queue->yii\queue\file\{closure}()
#7 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/cli/Queue.php(117): ::call_user_func:{/var/www/112kilo/vendor/yiisoft/yii2-queue/src/cli/Queue.php:117}()
#8 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/drivers/file/Queue.php(86): yii\queue\cli\Queue->runWorker()
#9 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/drivers/file/Command.php(76): yii\queue\file\Queue->run()
#10 /var/www/112kilo/vendor/yiisoft/yii2/base/InlineAction.php(57): yii\queue\file\Command->actionListen()
#11 /var/www/112kilo/vendor/yiisoft/yii2/base/InlineAction.php(57): ::call_user_func_array:{/var/www/112kilo/vendor/yiisoft/yii2/base/InlineAction.php:57}()
#12 /var/www/112kilo/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams()
#13 /var/www/112kilo/vendor/yiisoft/yii2/console/Controller.php(148): yii\base\Controller->runAction()
#14 /var/www/112kilo/vendor/yiisoft/yii2/base/Module.php(528): yii\console\Controller->runAction()
#15 /var/www/112kilo/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction()
#16 /var/www/112kilo/vendor/yiisoft/yii2/console/Application.php(147): yii\console\Application->runAction()
#17 /var/www/112kilo/vendor/yiisoft/yii2/base/Application.php(386): yii\console\Application->handleRequest()
#18 /var/www/112kilo/yii(23): yii\base\Application->run()
#19 {main}

我的 PHP 版本是 7.0,Yii2 - 2.0.15,Yii2-queue - 2.1.1

经过一番搜索,我看到了“给定数组”变量,它看起来像这样:

array(9) {
  [0] =>
  string(15) "/usr/bin/php7.0"
  [1] =>
  string(20) "/var/www/112kilo/yii"
  [2] =>
  string(10) "queue/exec"
  [3] =>
  int(183)
  [4] =>
  int(300)
  [5] =>
  int(1)
  [6] =>
  int(22989)
  [7] =>
  string(11) "--verbose=1"
  [8] =>
  string(9) "--color=0"
}

标签: phpyii2queue

解决方案


通过将 symfony/进程从 v2.5 更新到 v4.1 解决了这个问题


推荐阅读