Windows позволяет пользователю запускать команды - PullRequest
0 голосов
/ 11 июня 2018

На Windows XP я могу запустить много команд из PHP с функцией shell_exec ().

Мне нужно использовать OfficeToPDF на Windows 10 с PHP.Мой скрипт php:

<?php
$command = 'OfficeToPDF input.docx output.pdf';
$exec = shell_exec($command);
echo $exec;
?>

Этот скрипт работает в Windows XP Professional, но не в Windows 7, 8, 10. OfficeToPdf просто открывает Microsoft Word и сохраняет файл в формате PDF.Что изменилось на win7, win8, win10?Почему я не смог выполнить эту команду из PHP на новых ОС?

У меня служба apache запускается автоматически от пользователя SYSTEM.

ОБНОВЛЕНИЕ: Но я могу запустить команду OfficeToPDF input.docx output.pdf при открытии окна cmd вручную.

1 Ответ

0 голосов
/ 11 июня 2018

Я подозреваю, что отсутствуют некоторые переменные среды, которые требуются.Вы должны попытаться запустить его из экземпляра командного окна, который установит переменные по умолчанию:


    $command = 'cmd /c OfficeToPDF input.docx output.pdf';
    $exec = shell_exec($command);
    echo $exec;

Возможно, вы захотите использовать полный путь к OfficeToPDF, input.docx и output.pdf, если вы используете их по умолчаниюневерный каталог, или сначала вызовите chdir ().

Значение / C:

/ C Выполняет команду, указанную в строке, а затем завершается

...