debian — используйте & quot; wine & quot; с php’s shell_exec

В настоящее время я пытаюсь использовать команду «wine» из моего PHP-скрипта.

Если я выполню это:

$shell = shell_exec("/usr/bin/wine --version");

Все работает нормально, и WINE-версия отображается в $ shell.

Но если я попытаюсь сделать это так:

$run = shell_exec("/usr/bin/wine ".$workdir."/bin/tool.exe -m ".$workdir."/bin/std.maps -a ".$workdir."/bin/alias.file -n ".$workdir."/files/".$project_name."/upload/dump.bin -o ".$workdir."/files/".$project_name."/maps/definitions.list");

Что приводит к:

$run = shell_exec("/usr/bin/wine /var/www/html/bin/tool.exe -m /var/www/html/bin/std.maps -a /var/www/html/bin/alias.file -n /var/www/html/files/1-59374-94700/upload/dump.bin -o /var/www/html/files/1-59374-94700/maps/definitions.list 2>&1");

Я получаю следующий вывод:

wine: chdir в / .wine: нет такого файла или каталога

Что я делаю не так? Если я введу команду выше непосредственно в оболочку, все работает нормально. Если я сделаю это без / usr / bin / перед Wine, выходные данные будут такими же.

Br, Крис

0

Решение

Я сам не пробовал, но думаю, что это потому, что Wine запускается как другой пользователь с разными настройками среды. Попробуй создать .wine каталог внутри /var/www и сделать www-data пользователь как владелец этого каталога и сделать /var/www/.wine Домашний каталог.

$run = shell_exec("HOME=/var/www/.wine /usr/bin/wine ".$workdir."/bin/tool.exe -m ".$workdir."/bin/std.maps -a ".$workdir."/bin/alias.file -n ".$workdir."/files/".$project_name."/upload/dump.bin -o ".$workdir."/files/".$project_name."/maps/definitions.list");
1

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

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

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