我已经为Magento设置了每两小时运行的cronjob,这是我的主机可以设置的最快速度。然而,通讯不会被发送,直到我真的进入我的主机的控制面板,并点击特定cronjob的'运行'按钮。Magento cron作业只在明确运行时发送通讯
我做错了什么?我的cron路径设置为:/bin/sh /usr/www/users/FTP_USER/cron.sh
我已经为Magento设置了每两小时运行的cronjob,这是我的主机可以设置的最快速度。然而,通讯不会被发送,直到我真的进入我的主机的控制面板,并点击特定cronjob的'运行'按钮。Magento cron作业只在明确运行时发送通讯
我做错了什么?我的cron路径设置为:/bin/sh /usr/www/users/FTP_USER/cron.sh
我想这很可能是一种形式或其他形式的权限/ PATH问题。当您通过点击控制面板中的某些内容来手动触发事件时,它可能会以Apache用户身份运行(www-data或同等版本,具体取决于平台)。 cron很可能会以不同的用户身份运行。
假设您指的是核心新版本cron Mage_Newsletter_Model_Observer::scheduledSend
,那么cwd
对于相对包含路径是不正确的。这使得最可能的罪魁祸首成为a)。cron用户没有cron.sh的执行权限,b。)cron用户无权访问服务器上的邮件应用程序,因为它不包含在用户PATH。
以我的经验cron.sh脚本还没有达到它。因此我只运行cron.php。这需要php cli正确安装足够的RAM和明智的超时。
在crontab尝试:
* * * * * /usr/bin/php /home/USER/public_html/cron.php >> /home/USER/public_html/var/log/cron.log 2>&1
我还留着一个日志文件中无功/日志/ cron.php,这样我可以看到一个cron作业中的错误。
这是因为事件观察者是根据上下文加载的(adminhtml,前端或者你的情况crontab)。通讯发送观察员不在crontab列表中,因此无法发送电子邮件。
看到这篇文章:http://www.aschroder.com/2010/01/magento-events-explained-and-a-few-gotchas-avoided/
这个问题为您的托管服务提供商 – Serjio
难道你不觉得我已经问过他们吗?他们告诉我的是,cron被执行了,并且它在Magento的一边没有执行任何东西。 –