Wie ändere ich die Shell für php's exec ()

8

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

    
Timo 24.11.2009, 20:16
quelle

3 Antworten

8

Versuchen Sie stattdessen shell_exec (). exec sollte keine Shell aufrufen, um Ihr Programm auszuführen. Alternativ können Sie bash mit exec wie

aufrufen %Vor%     
Trey 24.11.2009 20:57
quelle
0

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

    
camomileCase 24.11.2009 20:18
quelle
0

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

    
Iain Collins 24.11.2009 20:37
quelle

Tags und Links