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

使用Unoconv转换docx为pdf时出现HTTP ERROR 500问题求助

问题排查与解决方法

第一步:先获取具体报错信息

在业务脚本最顶部添加以下代码开启PHP错误显示,拿到明确的错误原因,避免盲猜:

error_reporting(E_ALL);
ini_set('display_errors', 1);

常见触发500的原因及对应解决办法

  • Unoconv.php文件加载失败
    你当前用require './Unoconv.php'的相对路径加载文件,相对路径是基于PHP脚本的执行工作目录计算,两个站点的运行工作目录不同就会导致当前站点找不到文件,执行use语句时找不到对应命名空间直接报错。
    解决:改用绝对路径加载文件:

    require __DIR__ . '/Unoconv.php';
    

    __DIR__是当前业务脚本所在的目录,路径不受执行工作目录影响,稳定性更高。

  • 文件权限不足
    两个站点的PHP运行用户(常见为www-data、apache、nginx)可能不同,当前站点的运行用户没有Unoconv.php的读取权限,就会加载失败触发500。
    解决:给Unoconv.php设置644权限,确保所属用户/用户组和当前站点的PHP运行用户匹配。

  • PHP版本不兼容
    命名空间语法是PHP 5.3版本之后才支持的,如果当前站点的PHP版本低于5.3,执行use语句会直接报语法错误触发500。
    解决:对比正常运行的站点PHP版本,将当前站点PHP版本升级到5.3及以上即可。

  • 命令调用/目录权限问题(加载无问题后排查)
    若上述问题都解决后仍报错,排查以下两点:

    1. unoconv命令路径问题:站点运行用户的PATH环境变量可能没有包含unoconv的安装路径,直接写unoconv系统会找不到命令。可在服务器执行which unoconv拿到命令绝对路径,替换Unoconv类中的命令前缀,例如:
    $command = '/usr/bin/unoconv --format %s --output %s %s';
    
    1. 读写目录权限问题:确保源docx文件所在目录、PDF输出目录都给PHP运行用户开放读写权限,同时输出目录要提前创建,不存在的话可在代码中用mkdir()递归创建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:51:01