В настоящее время я пытаюсь использовать команду «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, Крис
Я сам не пробовал, но думаю, что это потому, что 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");
Других решений пока нет …