cron疑难解答
本文提供了针对Adobe Commerce本地产品中cron问题的故障排除解决方案。
描述 description
受影响的产品和版本
- Adobe Commerce内部部署2.2.x、2.3.x
- Magento Open Source 2.2.x和2.3.x
问题/症状
以下是cron问题的症状:
-
您的更新或升级未运行,并且保持在
pending状态。 -
即使设置正确,也会显示有关PHP设置
$HTTP_RAW_POST_DATA的错误消息。 -
cron就绪检查失败。 可能的错误包括不可写路径和未设置cron。 下面是一个示例:
-
PHP准备情况检查不会显示PHP版本,如下图所示。
-
Commerce管理中会显示以下错误:
-
要查看错误,请单击窗口顶部的“系统消息”,如下所示:
调查以找出原因
本节讨论如何查看cron当前是否正在运行,以及验证其设置是否正确。
要验证是否已设置crontab,请执行以下步骤:
-
以或切换到Magento文件系统所有者的身份登录到您的Magento服务器。
-
查看以下文件是否存在: bash ls
-al。 如果文件存在,则cron过去已成功运行。 如果文件不存在,则表示您尚未安装Magento或者cron未运行。 无论属于哪种情况,请继续执行下一步 -
获取有关cron的更多详细信息。 作为具有root权限的用户,输入以下命令:
bash crontab -u。 例如,在CentOS bashcrontab -u magento_user -l上。 如果未为用户设置crontab,则会显示以下消息: terminal no crontab for magento_user。 您的crontab将告诉您以下信息:- 您正在使用的PHP二进制文件(在某些情况下,您有多个)
- 您正在运行的Magento cron脚本(尤其是这些脚本的路径)
- cron日志的位置
解决方法 resolution
请参阅以下部分之一,了解您的问题的解决方案。
未设置crontab的解决方案
要验证您的cron作业是否设置正确,请参阅设置cron作业。
从不正确的PHP二进制文件运行的cron的解决方案
如果cron作业使用的PHP二进制文件与Web服务器插件不同,则可能会显示PHP设置错误。 要解决此问题,请为PHP命令行和PHP Web服务器插件设置相同的PHP设置。
有关PHP设置的详细信息,请参阅我们的开发人员文档中的必需的PHP设置。
cron运行有错误的解决方案
尝试手动运行每个命令,因为该命令可能会显示有用的错误消息。 查看设置cron作业。
注:要执行作业,必须至少运行cron两次;第一次将作业排入队列,第二次执行作业。