【问题标题】:Why is my cron task working in command line, but not in PLESK?为什么我的 cron 任务可以在命令行中运行,但不能在 PLESK 中运行?
【发布时间】:2011-04-06 13:23:22
【问题描述】:

我想在另一台专用服务器上设置一个在 PLESK 9 下完美运行的 cronjob,但无法让它在我的 PLESK 10 下的新专用服务器上运行。我就是不知道为什么。

一些信息:我将 PHP 作为 Apache 模块运行,并且:

whereis php 说:php: usr/bin/php

usr/bin/php -q /var/pathtocronjob

在命令行中完美运行。 但是,当我在 PLESK 中的“计划任务”中设置它时,它只是说

-: /usr/bin/php: 没有这样的文件或目录

我已经搜索了任何可以帮助我的东西,但找不到任何帮助。 任何人都知道为什么这不起作用,当然......如何解决这个问题?

【问题讨论】:

  • 只尝试 php 而不是完整路径,也许 Plesk 有一个内部映射...

标签: php cron plesk


【解决方案1】:

请确保包含第一个斜杠/

你应该替换:

usr/bin/php -q /var/pathtocronjob

/usr/bin/php -q /var/pathtocronjob

【讨论】:

  • 如果这不起作用,就像我的情况一样,那么 php 的路径就不好。所以你需要做的是调用which php,这个命令会告诉你正确的php路径。
【解决方案2】:

可能是某种用于 cron 任务的 chrooted shell?看Admin guide

【讨论】:

  • 根据我的主机,是“与权限有关”。不是我可以在这里做些什么的真正答案,但至少这是一个方向。有什么建议去哪里看吗?
【解决方案3】:

您将无法访问比在 Plesk 上分配的主机/用户更低的级别。这是为了防止用户离开 var/www/vhosts/domein.tld 文件夹。这是一个内置的安全机制,因此用户不能用漏洞利用命令弄乱服务器,而只是留在他们自己的沙箱中。

使用短的 'php' 代替 'usr/bin/php'

例如 magento 重新索引命令

 0 */3 * * * php -q httpdocs/shell/indexer.php 重新索引

ps: 很多常用的 ssh 命令在 crontab 命令字段中都不起作用!

【讨论】:

    猜你喜欢
    • 2010-10-21
    • 2017-01-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    相关资源
    最近更新 更多