Windows позволяет пользователю запускать команды

В 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 вручную.

0

Решение

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


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

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

Значение / C является:

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]