TYPO3中direct_mail扩展Cronjob运行失败:parser URI格式错误
问题排查与解决步骤
1. 修复Cronjob语法错误
你当前使用的Cron命令存在语法问题:第二个allow_url_fopen参数缺少闭合单引号,且重复定义相同参数,会导致PHP解析命令参数异常。修正后的Cron配置参考如下:
* * * * * /usr/bin/php74 -d allow_url_fopen='on' /usr/www/users/myuser/myproject/current/vendor/bin/typo3 scheduler:run > /dev/null 2>&1
提示:Composer部署的TYPO3项目推荐优先使用vendor/bin/typo3作为CLI入口,你可以根据实际项目部署的入口文件路径调整。
2. 配置CLI模式下的站点基础地址
direct_mail生成邮件内容时需要拼接站点域名,CLI调度模式下无法自动从HTTP请求中获取域名,就会把项目文件路径当成URL拼接,最终抛出 malformed URI 报错,按以下步骤配置即可:
- 登录TYPO3后台,进入「站点管理」模块,选择对应根站点
- 切换到「设置」标签页,找到「基础URL」配置项,填写站点完整域名(如
https://www.your-domain.com/) - 保存配置后清空TYPO3全站缓存
如果使用的是无站点管理模块的旧版TYPO3,可以直接在LocalConfiguration.php的SYS配置段添加如下内容:
'SYS' => [ // 原有SYS配置保留,新增以下配置 'trustedHostsPattern' => 'www\.your-domain\.com', 'reverseProxySSL' => '*', ],
3. 手动验证任务运行
配置完成后先在服务器终端手动执行调度命令,确认无报错:
/usr/bin/php74 -d allow_url_fopen='on' /你的项目实际路径/typo3 scheduler:run
执行无报错后再恢复Cron定时执行即可。
内容的提问来源于stack exchange,提问作者Joey Bouten
相关产品推荐
相关产品推荐

