0

我想将 Laravel 任务添加到 cron 中,这是我用来从命令行运行它的(并成功运行)

php artisan cron:hourly --env=staging

翻译成cron:

/usr/bin/php -q /home/usr/public_html/staging/artisan cron:hourly --env=staging

我假设参数有问题,--env=staging因为执行 cron 时出现错误(没有此参数,我无法在暂存环境中运行任务):

Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1045] Access denied for user ''@'localhost'

谁能解释我在 cron 中执行 laravel 任务的正确语法?

更新

实际上,只有当我将 cron 命令放在 SH 脚本中时,才会出现问题。由于未知原因,脚本未发送“--env=staging”参数,并以所描述的错误结束。

4

2 回答 2

2

错误消息表明环境设置不正确。我不确定为什么会出现问题。

请参阅我的 crontab 文件,以供参考。这适用于我的 debian linux 安装。还要注意-f标志,这可能是问题所在。

0 23 * * * /usr/bin/php -q -f /home/usr/demo/public_html/artisan mytask --env=live

在我的服务器上,php-cli 确实输出了所有 PHP 通知,因此向我发送了很多电子邮件。因此,您可能应该检查 PHP-Notices 和/或通过设置禁用它们error_reporting(E_ERROR);

于 2013-04-09T11:47:02.507 回答
0

该错误表明没有为登台环境配置数据库连接。带有 ''@'localhost' 的位应包含数据库连接的用户名。即:'a_db_user'@'localhost'。因为它是空的,我们可以看出没有配置数据库用户。数据库配置需要在 application/config/database.php 或 application/config/staging/database.php 中设置

于 2013-04-09T23:26:28.470 回答