laravel cron 无法启动会话,因为标头已由第 0 行的 “” 发送


laravel cron Failed to start the session because headers have already been sent by "" at line 0

我正在使用Laravel 4来构建我的网站,我刚刚创建了一个新命令来备份我的数据库并进行一些数据库更新。通过Windows命令提示符在我的计算机上调用它工作正常:

php artisan dbupdate

但是当我尝试将其用作共享主机服务器上的 cron 作业时,如下所示:

1 * * * * php -q /home/******/laravel/artisan dbupdate

我收到以下错误:

无法启动会话,因为标头已由第 0 行的 " 发送。

我认为这可能是我的代码中的某些东西,所以我将其全部注释掉,只是放了一个回显"hello command"行来测试它,但我仍然得到同样的错误。它来自laravel/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php

我对Laravel很陌生,对cron工作也很陌生。可能是什么问题?

我尝试使用 php-cli 而不是 php 如这篇文章所示

所以我的 cron 作业现在看起来像这样:

1 * * * * php-cli -q /home/******/laravel/artisan dbupdate

虽然我仍然不太明白这有什么不同,但它完美地工作。

简而言之,

您将在发送一些输出后尝试发送标头。我无法从你放的内容中分辨出来,但很可能在代码中的某个地方你有一个 include() 函数。

有关原因和修复程序的完整说明,请查看此处 - https://stackoverflow.com/a/8028987/1566393