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

IIS+Windows Server下PHP(Laravel)调用exec执行PDFCreator失败排查

问题:IIS环境下PHP exec()无法调用PDFCreator-cli.exe完成docx转pdf

背景与已排除方案

  • 耗时三天排查,PHP通过exec()调用.exe文件将docx转为pdf始终失败
  • 曾尝试libreoffice及其他转换库,均存在严重格式丢失问题,已排除
  • 服务器上PDFCreator命令行工具转换后的PDF格式完美,服务器已安装MS Word和PDFCreator

已配置的环境与权限

  • IIS站点应用程序池为"evp",进程模型标识设为"evpuser",已启用加载用户配置文件
  • evpuser、IIS_IUSRS、IUSR对以下路径拥有完全控制权限:
    • pdfcreator-cli.exe
    • Program Files目录下的PDFCreator文件夹
    • PDF输出文件夹
  • IIS站点启用匿名身份验证,指定身份为evpuser
  • 执行exec(whoami)返回SRV\evpuser,已将evpuser加入管理员组

关键现象

  • 以evpuser身份在cmd中执行以下命令,可正常生成PDF:
    "C:\\Program Files\\PDFCreator\\PDFCreator-cli.exe" PrintFile /File="C:\\inetpub\\evp\\storage\\app\\temp\\2024-03-04--22-39-37-802_1.3.docx"
    
  • 但PHP中执行相同命令无任何反应,代码如下:
    $command =  '"C:\\Program Files\\PDFCreator\\PDFCreator-cli.exe" PrintFile /File="C:\\inetpub\\evp\\storage\\app\\temp\\2024-03-04--22-39-37-802_1.3.docx"';
    
    $out = array();
    exec($command, $out,$exitcode);
    echo "<br />EXEC: ( exitcode : $exitcode )";
    dd($out);
    
  • 将上述命令写入批处理文件,直接在服务器运行可生成PDF,但通过PHP exec()调用批处理仍无反应

求助

已尝试网上所有相关方案,因公司规定不愿卸载IIS更换Apache,求可行的调试方法,找出exec()命令无法执行完成的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:53:41