/ / Führen Sie Shell-Skript mit PHP - PHP, Linux, Bash, Shell, Curl

Run Shell Skript mit PHP - PHP, Linux, Bash, Shell, Curl

Ich stoße auf ein seltsames Problem. Ich habe eine Schaltfläche eingerichtet, die beim Klicken auf ein Shell-Skript ausgeführt wird, das ich mit PHP erstellt habe. Das Shell-Skript besteht aus zwei curl-Befehlen.

curl -H "Accept: application/xml" "http://blah/blah" > /tmp/listofchannels.xml
curl -H "Accept: application/xml" "http://blah/blah" > /tmp/listofnodes.xml
echo "Done!"

Ich habe benutzt shell_exec(), exec(), und system() um dieses Skript mit PHP auszuführen und es wird erfolgreich ausgeführt. ABER es leitet die Ausgabe nicht an die Dateien um /tmp/listofchannels.xml und /tmp/listofnodes.xml.

Ich habe benutzt tail auf den httpd Fehlerprotokollen und es zeigt die Locken laufen. Ich werde sogar sehen Done! auf meiner Webseite erscheinen, wenn sie benutzt wird system() aber es wird nicht die Dateien erstellen.

Wenn ich das Skript selbst über die Befehlszeile ausführe, funktioniert es vollständig. Die Dateien werden erstellt, aber nur, wenn ich das Skript von der Kommandozeile selbst ausführe, anstatt den PHP-Code zu verwenden.

Hat jemand eine Idee warum?

Ich dachte, dass es vielleicht ein Berechtigungsproblem ist, aber ich bekomme keinen Fehler, der besagt, dass ich keine Erlaubnis habe.

Jede Hilfe wäre großartig!


Aktualisieren:

Ich habe das Problem gefunden und behoben. Es war SElinux. Vielleicht hätte ich erwähnen sollen, dass ich das auf CentOS7 gemacht habe. Was ich getan habe, war einen neuen Ordner zu erstellen und machte den Besitzer Apache dann erlaubt Apache, um es zu schreiben.

chown apache:apache /folder
sudo chcon -t httpd_sys_rw_content_t /folder

Antworten:

2 für die Antwort № 1

Ich habe das Problem gefunden und behoben. Es war SElinux. Vielleicht hätte ich erwähnen sollen, dass ich das auf CentOS7 gemacht habe. Was ich getan habe, war einen neuen Ordner zu erstellen und machte den Besitzer Apache dann erlaubt Apache, um es zu schreiben.

chown apache:apache /folder
sudo chcon -t httpd_sys_rw_content_t /folder