2016-11-01 14 views
0

Ich bin derzeit versucht, einen „Wein“ Befehl von meinem PHP-Script zu verwenden.Verwendung „Wein“ mit PHP shell_exec

Wenn ich ausführen dieses:

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

Alle funktioniert gut und WINE-Version wird in $ Shell angezeigt.

Aber, wenn ich versuche, es so zu machen:

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

was zur Folge hat:

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

ich folgende Ausgabe:

Wein: chdir zu /.wine: Keine solche Datei oder Verzeichnis

Was mache ich falsch? Wenn ich den obigen Befehl direkt in die Shell eingebe, funktioniert alles gut. Wenn ich es ohne/usr/bin/vor dem Wein mache, sind die Ausgaben gleich.

Br, Chris

Antwort

1

Ich habe es selbst nicht versuchen, aber ich denke, es liegt daran, dass Wein als verschiedene Benutzer mit unterschiedlichen Umgebungseinstellungen ausgeführt wird. Versuchen Sie erstellen .wine Verzeichnis innerhalb /var/www und www-data Benutzer als Eigentümer dieses Verzeichnisses machen und /var/www/.wine HOME-Verzeichnis machen.

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

Vielen Dank für Ihre Antwort. Es scheint jetzt zu funktionieren. Aber die Skriptlaufzeit ist sehr lang. Ich versuchte mit Sudo, und dort war die Laufzeit ca. ~ 0,5 sek, jetzt mit Ihrer Lösung läuft es etwa 4 Sekunden, und ich bekomme die X-Server-Warnung. (Es ist eine cmd Linie Werkzeug, so brauche ich keine Grafik-Ausgabe. Wissen Sie, wie man das zur Arbeit? Ich möchte nicht sudo verwenden. Br –