Hallo,
ich habe ein alt bekanntes Problem. Ich kann folgendes PHP-Skript mit php exec.php in der Kommandozeile mit Ausgabe und Erfolg ausführen. Ich möchte aber gerne in unserer Firma den Server nur zu einem beschimmten Zweck in einer kleinen IP range den Server als Web-Server nutzen und das Shell-Skript durch aufrufen von 10.255.255.23/exec.php ausführen lassen. Anzeige vom Output wäre idial, ist aber nicht wichtig. Sicherheit ist völlig irrelevant.
Im Prinzip soll das PHP-Skript genauso laufen wie in der Komandozeile laufen.
NGINX und PHP laufen als "Main-User", der sich karl nennt. Gleicher Nutzer mit dem das Skript in der Kommandozeile läuft.
Ich denke, dass es mit Rechten zu tun hat. Ich habe schon viel probiert und das halbe stackoverflaw durch Finde keine Lösung.
Skript:
PS: Ausgabe im Web ist:
karl
hi
Im Terminal wird mit der Ausgabe von hi solange gewartet bis das shell script ausgeführt wurde und dessen Ausgabe angezeigt wurde. Bitte helft mir. Ich hab viel ausprobiert und gesucht. Falls ihr noch Infos braucht, bitte teilt es mir mit.
Lg
ich habe ein alt bekanntes Problem. Ich kann folgendes PHP-Skript mit php exec.php in der Kommandozeile mit Ausgabe und Erfolg ausführen. Ich möchte aber gerne in unserer Firma den Server nur zu einem beschimmten Zweck in einer kleinen IP range den Server als Web-Server nutzen und das Shell-Skript durch aufrufen von 10.255.255.23/exec.php ausführen lassen. Anzeige vom Output wäre idial, ist aber nicht wichtig. Sicherheit ist völlig irrelevant.
Im Prinzip soll das PHP-Skript genauso laufen wie in der Komandozeile laufen.
NGINX und PHP laufen als "Main-User", der sich karl nennt. Gleicher Nutzer mit dem das Skript in der Kommandozeile läuft.
Ich denke, dass es mit Rechten zu tun hat. Ich habe schon viel probiert und das halbe stackoverflaw durch Finde keine Lösung.
Skript:
PHP-Code:
echo exec("whoami");
echo "\n";
$projectpath = "/home/karl/projects/01/";
chdir($projectpath);
echo exec("pwd");
echo shell_exec('bash start.sh');
echo "hi";
Code:
#!/usr/bin/env bash echo "Hallo Europa" echo "Hallo Osterhase..." cd /home/support/projects/StreamOn/ bash start.sh pwd whoami now=$(date +"%m_%d_%Y %H:%M:%S") mkdir reports/"rep_$(date +'%F_%T')" cucumber --format pretty --format json --out=reports/"rep_$(date +'%F_%T')"/out.json features/big.feature -t ~@wip
karl
hi
Im Terminal wird mit der Ausgabe von hi solange gewartet bis das shell script ausgeführt wurde und dessen Ausgabe angezeigt wurde. Bitte helft mir. Ich hab viel ausprobiert und gesucht. Falls ihr noch Infos braucht, bitte teilt es mir mit.
Lg
Kommentar