【发布时间】:2018-03-19 10:17:05
【问题描述】:
我使用下面的 PHP 脚本使用 libre office 将 docx 文件转换为 pdf。
<?php
$command = 'soffice --headless --invisible --convert-to pdf C:\Users\Administrator\Desktop\php\test.docx --outdir C:\inetpub\myapp\pdffiles';
exec($command);
?>
我在 IIS 服务器上托管的 symfony 1.4 应用程序中运行此命令。但它不会创建任何pdf(也不会给出任何错误)。但这在 Linux 中运行良好。
注意: 我尝试通过以下方式检查输出。
- 从命令提示符运行相同的命令 - 工作
- 使用 PHP 脚本(不是通过 Symfony 应用程序)运行相同的命令 - 工作
- 通过 IIS 服务器托管网站运行相同的命令(而不是通过 Symfony 应用程序)- 工作
- 通过托管在 IIS 服务器上的 Symfony 1.4 应用程序运行相同的命令 - 不工作
我的测试环境是 Windows Server 2012,安装了 PHP7 和 IIS 8。
【问题讨论】:
-
我在 IIS 上遇到了同样的问题,本地工作正常。你搞定了吗?
-
我使用了一个额外的标志
-env。我的最终命令是soffice -env:UserInstallation= <sofficeTmpDirUrl> --headless --invisible --convert-to pdf C:\Users\Administrator\Desktop\php\test.docx --outdir C:\inetpub\myapp\pdffiles。它对我有用。将 sofficeTmpDirUrl 替换为您的(例如:- file://tmp/soffice/loaction)。 -
临时位置的内容是什么? file://tmp/soffice/loaction,我需要添加任何文件吗?
-
无需添加任何内容。 libreoffice 将使用 tmp 位置作为当前进程的临时位置。
标签: symfony-1.4 php-7 iis-8 windows-server-2012-r2 libreoffice