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

Magento 2.4.5使用mPDF生成PDF发票时Logo不显示问题求助

解决Magento 2.4.5中Mageplaza mPDF发票Logo无法显示的问题

可能原因与对应修复步骤

1. AWS服务器无法解析自身域名(回环请求失败)

AWS实例内部可能无法通过公网域名https://uat.xxxxxx.com访问自身资源,导致mPDF无法拉取Logo图片。

  • 修复:修改服务器的hosts文件,添加本地映射:
    echo "127.0.0.1 uat.xxxxxx.com" >> /etc/hosts
    
    或直接使用服务器内网IP替换公网域名,确保内部请求能直接命中本地资源。

2. Cloudflare SSL/缓存配置冲突

即使路径未被拦截,Cloudflare的SSL模式或缓存规则可能导致服务器内部请求异常。

  • 修复:
    • 临时将对应域名的SSL模式改为“灵活”测试,若恢复正常,再调整服务器端SSL配置适配严格模式。
    • 在Cloudflare缓存规则中,将/media/mageplaza/pdfinvoice/路径设置为“不缓存”,避免缓存缺失或旧缓存干扰。

3. mPDF远程图片加载限制或PHP配置问题

mPDF默认可能限制远程图片加载,或服务器PHP的allow_url_fopen被禁用。

  • 修复:
    • 检查php.ini配置,确保allow_url_fopen = On,重启PHP服务。
    • 修改Mageplaza模块代码,改用本地文件路径加载Logo:
      找到Logo调用逻辑,替换为Magento媒体目录的绝对路径,示例:
      $logoPath = $this->_mediaDirectory->getAbsolutePath('mageplaza/pdfinvoice/default/logo.png');
      $mpdf->Image($logoPath, ...);
      
      避免使用远程HTTP URL加载图片。

4. 媒体文件权限异常

AWS服务器上的媒体目录权限配置错误,导致mPDF进程无法读取Logo文件。

  • 修复:
    • 重置媒体目录权限:
      chown -R www-data:www-data pub/media/
      find pub/media/ -type f -exec chmod 644 {} \;
      find pub/media/ -type d -exec chmod 755 {} \;
      
    • 确保mageplaza/pdfinvoice/default/目录及文件权限正确,允许Web服务器进程读取。

内容的提问来源于stack exchange,提问作者Sahan Thilakarathna

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 19:15:56