You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04下为Interspire Email Marketer配置PHP7.3 Cron定时任务失败的排查与解决求助

Ubuntu 22.04下为Interspire Email Marketer配置PHP7.3 Cron定时任务失败的排查与解决求助

我目前在用Ubuntu 22.04服务器,同时部署了PHP8.2和PHP7.3的FPM版本,其中PHP7.3是专门给Interspire Email Marketer(简称IEM)用的。

IEM自动识别的Cron执行命令是:

/usr/bin/php -f /var/www/mail.domain.com/admin/cron/cron.php

但服务器上/usr/bin/php默认软链指向的是PHP8.2,而IEM必须依赖PHP7.3才能正常运行。于是我把Cron定时任务改成了用PHP7.3的绝对路径:

*/5 * * * * /usr/bin/php7.3 -f /var/www/mail.domain.com/admin/cron/cron.php

结果定时任务还是没正常工作,我现在有点摸不着头绪,想请教下各位大佬,该从哪些方面开始排查,或者有没有什么办法能让这个Cron任务正常跑起来?

我整理的几个排查方向,求指点

  • 先手动验证命令有效性:直接在终端执行/usr/bin/php7.3 -f /var/www/mail.domain.com/admin/cron/cron.php,看看会不会直接输出错误信息——比如权限不足、PHP扩展缺失、文件路径写错这类问题,这是最直接的排查方式。
  • 查看Cron执行日志:Ubuntu的Cron日志默认存在/var/log/syslog里,用grep CRON /var/log/syslog可以过滤出所有Cron相关的记录,能看到任务有没有被触发,有没有执行失败的提示。比如如果提示“command not found”,可能是php7.3的实际路径不是/usr/bin/php7.3,可以用which php7.3确认真实路径。
  • 检查文件与目录权限:要确认Cron的执行用户(默认是root,如果你用其他用户设置的Cron则对应用户)有没有读取和运行cron.php的权限,同时网站目录/var/www/mail.domain.com/的权限也不能过于严格,避免PHP无法读取相关文件。
  • 给Cron任务添加日志输出:修改Cron命令,把执行的输出和错误都写入日志文件,方便后续排查:
    */5 * * * * /usr/bin/php7.3 -f /var/www/mail.domain.com/admin/cron/cron.php >> /var/log/iem_cron.log 2>&1
    
    过几分钟后查看/var/log/iem_cron.log,就能看到任务执行的详细信息,不管是成功还是失败的细节都能记录下来。
  • 验证PHP7.3配置是否符合IEM要求:有时候虽然用了PHP7.3,但可能缺少IEM必需的扩展(比如mysqli、curl、mbstring等),或者PHP的配置参数(比如内存限制、执行时间限制)不满足要求。可以用/usr/bin/php7.3 -m查看已安装的扩展,对比IEM官方文档的要求,也可以写个简单的phpinfo脚本用PHP7.3执行,查看具体配置参数。

希望有经验的朋友能给点更具体的思路或者解决办法,谢谢大家!

备注:内容来源于stack exchange,提问作者Hawk007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 13:19:37