将 "wine" 与 php 的 shell_exec 一起使用

use "wine" with php's shell_exec

我目前正在尝试使用我的 PHP-Script 中的 "wine" 命令。

如果我执行这个:

$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 to /.wine : No such file or directory

我做错了什么?如果我直接在 shell 中输入上面的命令,一切正常。如果我在没有 /usr/bin/ 的情况下在酒前这样做,输出是相同的。

兄弟,克里斯

我自己没有尝试过,但我认为这是因为 wine 运行 不同的用户使用不同的环境设置。尝试在 /var/www 中创建 .wine 目录,并使 www-data 用户成为该目录的所有者,并创建 /var/www/.wine HOME 目录。

$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");