无法通过cron运行artisan命令[laravel 5.2]

时间:2016-03-17 09:00:51

标签: php laravel cron centos

我正在尝试从cron任务中运行一个工匠命令,但我一直在收到错误。

在Plesk,我创造了这个任务:

php /var/www/vhosts/domainxxx.co.uk/httpdocs/artisan schedule:run 

我试图运行队列

但是我收到错误

Could not open input file: php /var/www/vhosts/domainxxx.co.uk/httpdocs/artisan schedule:run

如果我从它运行的httpdocs目录运行命令php artisan schedule:run

我已经尝试了大量路径和完整路径到php的组合,但似乎没有任何效果。

我做错了什么?

摆弄我在名为crontest.php的httpdocs中创建了一个测试脚本,它只是回显了一个状态。我可以使用此命令使用cron运行:

 /usr/bin/php /var/www/vhosts/domainxxx.co.uk/httpdocs/crontest.php

我得到的日志显示为域用户而不是root用户 - 不知道这是否会产生影响?我可以在收到的通知中看到测试输出。

将其切换为:

/usr/bin/php /var/www/vhosts/domainxxx.co.uk/httpdocs/artisan schedule:run 1

我收到错误:

/usr/bin/php: No such file or directory

困惑 - 这个错误与php或工匠有关(假设工匠因为它适用于tst脚本)。任何人都可以帮忙。工匠肯定在那里:(

2 个答案:

答案 0 :(得分:2)

我有完全相同的问题。使用指向简单的PHP脚本的简单cron工作。所以我必须做的是,第一张CD到正确的目录。用你自己的路径,完整的cronjob看起来像这样:

cd /var/www/vhosts/domainxxx.co.uk/httpdocs/; /usr/bin/php -q -f /var/www/vhosts/domainxxx.co.uk/httpdocs/artisan schedule:run > /dev/null 2>&1

对于我而言,对于laravel或工匠来说,这不是一个错误,但实际上只是与cronjob本身有关。

答案 1 :(得分:1)

经过大量搜索和反复试验,问题与"系统用户"域的SSH设置。

我设法在root用户cron中成功创建了任务("系统范围")。这样做之后,经过大量的挖掘必须为用户设置SSH访问权限,cron作业正在运行 - 假设已经有访问权限

设置完文件和文件夹后,cron作业现在可以成功运行 - phew!

感谢您的帮助ROn Brouwers