【问题标题】:Unable to run artisan command via cron [laravel 5.2]无法通过 cron [laravel 5.2] 运行工匠命令
【发布时间】:2016-07-03 12:28:31
【问题描述】:

我正在尝试从 cron 任务运行 artisan 命令,但我不断收到错误。

在 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 的路径和完整路径的大量组合,但似乎没有任何效果。

我做错了什么?

我在 httpdocs 中创建了一个名为 crontest.php 的测试脚本,它只是回显了一个状态。我可以使用以下命令通过 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 或 artisan 相关(假设 artisan 因为它适用于 tst 脚本)。任何人都可以帮忙吗?工匠肯定在那里:(

【问题讨论】:

  • 所以使用crontest.php,您的 php `/usr/bin/php` 可以工作,但在尝试运行 artisan 时却不行?奇怪...你应该发布你的 crontab,也许你的 cron 配置有问题。
  • 嗨。我应该在我的皇冠配置中寻找什么?特别是哪些文件?
  • 我假设错误消息与找不到脚本 'artisan' 相关,而不是找不到 php。

标签: php laravel cron centos


【解决方案1】:

我遇到了完全相同的问题。使用一个简单的 cron 指向一个简单的 php 脚本就可以了。所以我必须做的是第一张 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 或 artisan 的错误,而实际上只是 cronjob 本身的错误。

【讨论】:

    【解决方案2】:

    经过大量搜索和反复试验,发现与域的“系统用户”SSH 设置相关的问题。

    我设法在 root 用户 cron(“系统范围”)中成功创建了任务。这很有效,因此在进行大量挖掘后,必须为运行 cron 作业的用户设置 SSH 访问权限 - 假设已经拥有访问权限

    一旦设置好文件和文件夹就可以访问并且 cron 作业现在可以成功运行 - 唷!

    感谢您的帮助 Ron Brouwers

    【讨论】:

    • 很高兴你明白了:)
    猜你喜欢
    • 2019-05-20
    • 2014-03-26
    • 2014-08-30
    • 2011-12-28
    • 1970-01-01
    • 2016-12-26
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多