1

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

php artisan dbupdate

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

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

我收到以下错误:

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

我认为这可能是我的代码中的某些内容,所以我将其全部注释掉,并在其中添加了 echo "hello command" 行来测试它,但我仍然遇到了同样的错误。它来自 laravel/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php

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

4

2 回答 2

2

我尝试在这篇文章中使用 php-cli 而不是 php

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

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

虽然我仍然不太明白这有什么不同,但它工作得很好。

于 2013-09-24T17:53:46.297 回答
0

简而言之,您将在已发送一些输出后尝试发送标头。我不能从你放的东西中看出,但很可能在代码的某个地方你有一个 include() 函数。

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

于 2013-09-23T22:16:55.640 回答