Ich möchte PHP exec () Funktion auf einem Ubuntu-Server verwenden. Das Problem ist, ich bekomme immer einen Fehler, dass der Befehl nicht gefunden wird. Zum Beispiel mit
%Vor%druckt
sh: / echo: nicht gefunden
Für mich sieht es so aus, als würde php die sh-Shell verwenden, wenn ich bash verwenden möchte. Ich habe versucht, die Shell für www-Daten in / etc / passwd zu ändern, was auch nicht geholfen hat.
Hat irgendjemand eine Idee, wo sonst das Problem herkommt oder wie ich die Shell für den Ubuntuutzer von php ändern kann.
Danke, Timo
[BEARBEITEN]
Vielleicht hilft das:
Ich rufe ein Bash-Skript von ssh als timo auf, dieses Skript ruft ein PHP-Skript auf, das exec verwendet. Ich weiß, es klingt komisch, aber es ist Teil einer größeren Entwicklungsumgebung ...
Der Punkt ist, ich bin nicht sicher, als welcher Benutzer das Skript innerhalb von exec ausgeführt wird.
[BEARBEITEN]
Inzwischen habe ich herausgefunden, dass es ein anderes Rechtsproblem geben muss. Selbst wenn ich versuche, ein Bash-Skript test.sh (über den vollständigen Pfad!) Von exec aus aufzurufen, wird php test.php einfach sagen.
sh: /test.sh: nicht gefunden
Ich denke, das Problem ist, dass es kein $ PATH Setup gibt. Versuchen Sie, vollständige Pfade zu Ihren Binärdateien zu verwenden, z / bin / echo
Wenn Sie Folgendes tun möchten:
/usr/bin/mysql --user=asdf --password=asdf mydb < ./dump.sql
Dann stelle ich mir vor, das würde funktionieren (unabhängig von der Shell):
/usr/bin/mysql --user=asdf --password=asdf mydb < /full/path/to/dir/dump.sql