我在基于 Windows 的 PHP 服务器上运行 exec 命令时遇到问题。
我正在尝试使用LibreOffice Portable将.docx文件转换为.pdf文件。代码的启示部分如下:
exec('LibreOfficePortable/App/libreoffice/program/soffice.exe'
. ' --headless --convert-to pdf'
. ' C:'inetpub'wwwroot'eCaseDev'Webapp'pdfmaker'output.20.docx'
. ' --outdir C:'inetpub'wwwroot'eCaseDev'Webapp'pdfmaker');
问题是该命令未完成,使浏览器无限期等待,直到超时。直接在 Windows 命令提示符下运行时,相同的命令有效。
我相信这个问题可能与运行 PHP 进程的用户的权限有关,尽管我已经向所有用户授予了调用可执行文件的完全权限(除非我这样做不正确)。
尝试使用shell_exec();
它检查权限是否在以下位置设置良好:
- C:/窗口/温度
- C:/程序文件 (x86)/Java
- 文件夹 PDFMAKER