运行(生成 PDF)Windows PHP 上的 soffice LibreOffice exec() 不起作用
Running (Generate PDF) soffice LibreOffice on Windows PHP exec() doesn't work
我正在尝试使用 soffice 从 docx 生成 pdf,所以我在 apache linux 及其作品上尝试它,但我在 windows 服务器 2012 和 IIS 6.2 中尝试。
如果我 运行 在 CMD 上运行此命令:
soffice --headless --convert-to pdf:writer_pdf_Export --outdir ../../storage/app/ACTIVO/2019-03/3404/docx/ ../../storage/app/ACTIVO/2019-03/3404/docx/documento_word.docx
所以在 PHP 我试试这个:
$comando = 'soffice --headless --convert-to pdf:writer_pdf_Export --outdir ../../storage/app/ACTIVO/2019-03/3404/docx/ ../../storage/app/ACTIVO/2019-03/3404/docx/documento_word.docx';
$var = exec($comando);
var_dump($var);
它给了我 "NULL"
当我尝试在 PHP.
中使用 soffice --version 时,也会发生同样的情况
我在 C:\Program Files\Libreoffice 和 storage/app 中完全授予 IUSR 权限。在 IIS 中启用了匿名身份验证。
I 运行 in php 及其 return " string(26) "iis apppool\defaultapppool" "
$var = exec('whoami');
var_dump($var);
我不知道该如何修复它。
我解决了,在 Windows 中创建了一个新用户,对 运行 的命令权限较低,类似于该用户。
我
nstall SysinternalsSuite to 运行 psexec命令,zip解压在C:\
因此,我更改的行是:
$comando = 'soffice --headless --convert-to pdf:writer_pdf_Export --outdir ../../storage/app/ACTIVO/2019-03/3404/docx/ ../../storage/app/ACTIVO/2019-03/3404/docx/documento_word.docx';
至:
$comando = '"C:\SysinternalsSuite\psexec.exe" -u DOMAIN\USER -p PASSWORD "C:\Program Files\LibreOffice\program\soffice.exe" --headless --convert-to pdf:writer_pdf_Export --outdir C:\inetpub\wwwroot\storage\app\ACTIVO19-0304\docx\ C:\inetpub\wwwroot\storage\app\ACTIVO19-0304\docx\documento_word.docx';
我正在尝试使用 soffice 从 docx 生成 pdf,所以我在 apache linux 及其作品上尝试它,但我在 windows 服务器 2012 和 IIS 6.2 中尝试。
如果我 运行 在 CMD 上运行此命令:
soffice --headless --convert-to pdf:writer_pdf_Export --outdir ../../storage/app/ACTIVO/2019-03/3404/docx/ ../../storage/app/ACTIVO/2019-03/3404/docx/documento_word.docx
所以在 PHP 我试试这个:
$comando = 'soffice --headless --convert-to pdf:writer_pdf_Export --outdir ../../storage/app/ACTIVO/2019-03/3404/docx/ ../../storage/app/ACTIVO/2019-03/3404/docx/documento_word.docx';
$var = exec($comando);
var_dump($var);
它给了我 "NULL"
当我尝试在 PHP.
中使用 soffice --version 时,也会发生同样的情况我在 C:\Program Files\Libreoffice 和 storage/app 中完全授予 IUSR 权限。在 IIS 中启用了匿名身份验证。
I 运行 in php 及其 return " string(26) "iis apppool\defaultapppool" "
$var = exec('whoami');
var_dump($var);
我不知道该如何修复它。
我解决了,在 Windows 中创建了一个新用户,对 运行 的命令权限较低,类似于该用户。 我 nstall SysinternalsSuite to 运行 psexec命令,zip解压在C:\
因此,我更改的行是:
$comando = 'soffice --headless --convert-to pdf:writer_pdf_Export --outdir ../../storage/app/ACTIVO/2019-03/3404/docx/ ../../storage/app/ACTIVO/2019-03/3404/docx/documento_word.docx';
至:
$comando = '"C:\SysinternalsSuite\psexec.exe" -u DOMAIN\USER -p PASSWORD "C:\Program Files\LibreOffice\program\soffice.exe" --headless --convert-to pdf:writer_pdf_Export --outdir C:\inetpub\wwwroot\storage\app\ACTIVO19-0304\docx\ C:\inetpub\wwwroot\storage\app\ACTIVO19-0304\docx\documento_word.docx';