【发布时间】:2015-11-09 14:30:24
【问题描述】:
正如Magento documentation 所述,您需要在您的网络服务器上设置一个 cron 作业,以便发送订单确认电子邮件等内容,如下所示:
* * * * * /bin/sh /absolute/path/to/magento/cron.sh
这是一个非常简单的 cron 作业。问题是,自动化任务没有在 Magento 中完成。就好像脚本没有由 cron 作业运行。因此,订单确认电子邮件没有发送(在所有其他 Magento 自动化任务中)。
我已经安装了AOE Scheduler 扩展来仔细检查 Magento 中的每个自动化任务,并查看任务何时完成(或者,在这种情况下,当它们没有完成时)。包括core_email_queue_send_all 在内的所有任务都没有以 1 分钟间隔完成。
现在这是奇怪的部分。如果我只是在我的网络浏览器mydomain.com/cron.php 上加载cron.php 脚本(cron.sh 触发cron.php),Magento 自动任务都会执行!而且由于脚本在我手动运行时是这样工作的,而且我知道 cron 作业正在工作......我无法弄清楚!
请帮忙!
其他详情
以下是我知道 cron 作业是否正常工作的方法 — 我通过创建一个 PHP 脚本在我的服务器上测试了 cron 作业,该脚本使用mail() 发送基本电子邮件,并运行与上述类似的 cron 作业以每分钟执行一次— cron 作业正常运行。每次 cron 作业运行时,我都会收到来自服务器的 MAILTO 电子邮件。我看不到任何错误。
我也可以在 cron 作业中执行这个确切的命令...
/bin/sh /absolute/path/to/magento/cron.sh
...当我 SSH 进入终端时,它成功运行脚本,Magento 运行所有自动化任务。它只是不会在 cron 作业中每分钟都运行!
这太奇怪了,我想不通.... 归根结底,如果客户无法结账并收到确认电子邮件,我在这家 Magento 商店所做的所有工作都是没有意义的。
任何建议将不胜感激。
更新
我能够通过使用wget 命令调用cron.php 来解决问题,但这仍然不是一个永久的解决方案。
wget -O /dev/null -q http://domain.com/cron.php
虽然它现在在技术上可以正常工作,但 Magento 的文档特别建议运行 cron.sh,而不是 cron.php。仍然希望具体回答为什么 cron 作业无法运行 cron.sh 和 sh。
【问题讨论】:
-
将
/home/[server_username]/public_html/cron.sh的第一行添加到您的问题中。