1

我正在尝试创建一个将发送每周时事通讯的 cron 作业。我尝试按照Cakephp 手册的说明创建一个 shell 任务。然后我去 Media Temple Cron 工作并输入以下内容:

php /home/#####/domains/domain.com/html/cake/console/cake -app /home//#####//domains/domain.com/html/vendors/shells newsletter

我在vendors/shell 文件夹上创建了shell 任务并将其命名为newsletter.php,下面是它的代码:

class NewsletterShell extends Shell {

    function main() {

    $this->sendEmailTo("Newsletter","subject","email@gmail.com");


    }
}

sendEmailTo 是我的 appController 中的一个控制器功能,因此我的所有控制器都可以访问它。

我的问题是每次运行 Cron 作业时都会收到以下消息:

无法打开输入文件:/home/#####/domains/domain.com/html/cake/console/cake

我什至给了所有控制台文件(cake.php、cake.bat 等)0777 读写属性以及供应商/shell/newsletter.php

##### 是媒体殿堂给您的站点编号,但我不确定我是否正确。他们展示了一个这样的 cron 作业示例:/home/50838/data/script-name.sh

所以我的问题是:

我的蛋糕壳任务是否正确,我将其作为 cron 作业运行的方式是否准确?

也有人知道在哪里可以确认我的媒体寺庙站点编号,以便我可以将其作为可能的错误注销。

提前致谢,

费边

4

3 回答 3

1

您可以尝试var_dump(ROOT)或任何其他核心定义常量来查找您的目录。只需将其放在某个控制器方法中,但请确保再次将其删除。或者,如果您有 SSH 访问权限,请pwd在命令行上执行。

除此之外,在调用cake控制台任务时,-app参数应该指向app目录,而不是shells目录。


尝试使用此脚本将您的 shell 作为 cron 作业运行,可能缺少一些 shell 变量。

于 2009-11-17T05:31:27.320 回答
0
ls -l /home/#####/domains/domain.com/html/cake/console/cake

说什么?cron 作业是否以用户 ##### 身份运行?如果没有,问题可能是/home/#####/ 上的权限,请检查它们

ls -ld /home/#####/
于 2009-11-17T05:37:16.730 回答
0

有没有给“cake/console”目录下的“cake”文件以及cake.php和cake.bat的可执行权限?

cron 命令应该是:

php /home/#####/domains/domain.com/html/cake/console/cake newsletter -app /home/#####/domains/domain.com/html/app

于 2009-11-17T13:52:06.687 回答