php – 使用laravel队列无法在我的共享托管解决方案上运行

试图让队列在我的共享主机上工作,

>我已经建立了一个cron工作来每分钟运行’php artisan queue:work’.
>我正在使用数据库驱动程序
>工作进入工作表很好
>如果我使用同步驱动程序,它可以在我的共享主机上运行
在我的开发人员计算机上,它适用于同步和数据库驱动程序.
>我没有倒下Laravel Queue: How to use on shared hosting提供了足够的答案,因为我有cron的可能性,因此我想让它与数据库驱动程序一起工作
> php是来自cli和web界面的5.5版本.

php artisan队列:在我的共享主机上工作(通过cron)返回

[ErrorException] 
Invalid argument supplied for foreach()

在我的日志文件中写入以下内容.

[2015-04-12 18:59:01] production.ERROR: exception 'ErrorException' with message 'Invalid argument supplied for foreach()' in /home/a109/vendor/symfony/console/Symfony/Component/Console/Input/ArgvInput.php:287 Stack trace:
#0 /home/a109/vendor/symfony/console/Symfony/Component/Console/Input/ArgvInput.php(287): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'Invalid argumen...', '/home/a109/vend...', 287, Array)
#1 /home/a109/vendor/symfony/console/Symfony/Component/Console/Application.php(823): Symfony\Component\Console\Input\ArgvInput->hasParameterOption(Array)
#2 /home/a109/vendor/symfony/console/Symfony/Component/Console/Application.php(123): Symfony\Component\Console\Application->configureIO(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#3 /home/a109/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(94): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 /home/a109/artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#5 {main}

在vendor / symfony / console / Symfony / Component / Console / Input / ArgvInput.php的第287行有这个函数

  /**
 * Returns true if the raw parameters (not parsed) contain a value.
 *
 * This method is to be used to introspect the input parameters
 * before they have been validated. It must be used carefully.
 *
 * @param string|array $values The value(s) to look for in the raw parameters (can be an array)
 *
 * @return bool true if the value is contained in the raw parameters
 */
public function hasParameterOption($values)
{
    $values = (array) $values;

    foreach ($this->tokens as $token) {
        foreach ($values as $value) {
            if ($token === $value || 0 === strpos($token, $value.'=')) {
                return true;
            }
        }
    }

    return false;
}

那是失败的傻瓜.

我怎样才能让它发挥作用?

最佳答案
Comyn在freenode的#laravel回答

我不得不将cron命令更改为:

php -d register_argc_argv=On artisan queue:work

转载注明原文:php – 使用laravel队列无法在我的共享托管解决方案上运行 - 代码日志