正如Magento documentation所述,您需要在Web服务器上设置一个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的工作正在运行......我无法弄明白这一点!
请帮忙!
ADDITIONAL DETAILS
以下是我知道cron作业的工作原理 - 我已经在我的服务器上测试了cron作业,创建了一个发送基本电子邮件的PHP脚本 mail()
,并运行了一个类似的cron作业到上面的每一分钟执行它 - cron作业函数一般 . 每次运行cron作业时,我也会从服务器收到 MAILTO
封电子邮件 . 没有我能看到的错误 .
我也可以在cron作业中执行这个命令...
/bin/sh /absolute/path/to/magento/cron.sh
...当我在SSH中进入终端时,它成功运行脚本,Magento运行所有自动化任务 . 它只是没有在cron工作中每分钟运行!
这完全是奇怪的,我无法弄清楚......最终,如果客户无法退房并收到确认电子邮件,我在Magento商店所做的所有这些工作都没有实际意义 .
任何建议都将非常感激 .
UPDATE
我能够使用 wget
命令来调用 cron.php
,但这仍然不是一个永久的解决方案 .
wget -O /dev/null -q http://domain.com/cron.php
虽然's technically working now, Magento'的文档特别建议运行 cron.sh
,而不是 cron.php
. 仍然会喜欢具体的答案,为什么cron作业不会与 sh
一起运行 cron.sh
.
2 回答
我将尝试的一些步骤:
在终端:
检查你的cron日志:
你能看到正在运行的命令吗?
检查cronjobs是否存在:
检查cron用户是否具有该文件的可执行权限,如果不是:
cron正在运行吗?检查进程是否正在运行:
如果出现错误,您将收到记录错误的电子邮件,但这需要先配置 . 你可以在这里看到解决方案https://www.phase2technology.com/blog/how-to-enable-local-smtp-server-postfix-on-os-x-leopard/
在这种情况下,这个解决方案帮助了我http://support.xtento.com/wiki/Setting_up_the_Magento_cronjob
我的环境是OSX El Capitain,本地邮件后缀已启用,我在我的Magento商店测试订单设置的gmail帐户上发送cron状态电子邮件,MAMP用于测试本地Magento和安装和配置的AOE Scheduler Magento扩展 .
对我有用的代码是:
我希望这有助于某人,因为我失去了将近2天的正确设置 . 祝好运!