正如Magento documentation所述,您需要在您的网络服务器上设置一个cron作业,以便将订单确认电子邮件发送出去,如下所示:
* * * * * /bin/sh /absolute/path/to/magento/cron.sh
这是一个非常简单的cron工作。问题是,Magento没有完成自动化任务。好像脚本不是由cron作业运行的。因此,订单确认电子邮件不会发送(在所有其他Magento自动化任务中)。
我已经安装了AOE Scheduler扩展名,以便仔细检查Magento中的每个自动化任务,并查看任务何时完成(或者,在这种情况下,当他们没有完成时)。包括core_email_queue_send_all
在内的任务都没有在1分钟的时间间隔内完成。
现在这里是奇怪的部分。如果我只是在cron.php
的网络浏览器中加载cron.sh
脚本(cron.php
触发mydomain.com/cron.php
),Magento自动化任务全部执行!因为当我手动运行脚本时脚本就像这样,我知道cron的工作正在运行......我无法解决这个问题!
请帮忙!
其他详细信息
以下我知道cron作业是如何工作的 - 我在服务器上测试了cron作业,创建了一个发送mail()
基本电子邮件的PHP脚本,并运行了类似的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
。
答案 0 :(得分:1)
我会尝试一些步骤:
在终端:
检查你的cron日志:
tail -f /var/log/cron
你能看到正在运行的命令吗?
检查是否存在cronjobs:
crontab -l
检查cron用户是否具有该文件的可执行权限,如果不是:
chmod +x file.sh
cron正在运行吗?检查进程是否正在运行:
pgrep crond
答案 1 :(得分:1)
如果出现错误,您会收到一封记录错误的电子邮件, 但这首先需要配置。你可以在这里看到解决方案 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扩展。
对我有用的代码是:
MAILTO="somebody@test.com"
curl -s -o /dev/null http://www.YOURDOMAIN.com/PATH_TO_MAGENTO/cron.php /dev/null
我希望这可以帮助某人,因为我失去了将近两天的时间来获得正确的设置。祝你好运!