2016-03-28 8 views
1

ich eine PHP-Web-Seite von dem Apache-Server lief zu sein, wird in /var/www/myweb/ gespeichert und aufgerufen index.phpeinen Bash-Skript von PHP-Webseite Laufen

Jetzt versuche ich ein Skript in /home/me/test.sh aus dem php aufgerufen zu nennen Website . Denn es macht nicht ist eine file1 auf /home/me/ erstellen

test.sh:

#!/bin/bash 


touch file1 
~                          
~                          
~                          
~ 

innen index.php, ich versuche das Skript

index.php zu nennen:

if ($_GET['run']) 
        { 
              exec('/home/me/test.sh'); 
        } 

leider funktioniert das nicht, und es scheint, der Grund ist Erlaubnisprobleme. Ich ging weiter und versuchen, diesen Befehl auszuführen von /var/www/myweb/

/home/me/test.sh 

und ich habe diesen Fehler:

touch: cannot touch ‘file1’: Permission denied

Gibt es eine Möglichkeit, dieses Problem zu beheben?

+0

je nach System verwendet der Apache2 Server den Benutzer "www-data" oder "http" oder andere Einstellungen. Die test.sh muss ausführbar sein und die richtigen Berechtigungen haben. –

+0

Verwenden Sie 'cd' oder' chdir() 'in Ihren Skripten? Was gibt 'ls -ld/var/www/myweb/home/mich zurück? Dein Code wird wahrscheinlich nicht ausgeführt, wo du denkst, dass er es tut. – Amadan

+0

'drwxr-xr-x 29 mich me 4096 Mar 27 21:02/home/me/ drwxr-xr-x 4 root www-daten 4096 Mar 27 20:22/var/www/html/ ' –

Antwort

1

Wenn Sie ein Verzeichnis nicht ändern, sind Sie nicht versuchen, /home/me/file1 zu berühren, aber /var/www/myweb/file1. Jedoch erlaubt /var/www/mywebroot bis rwx; www-data Gruppe zu r-x und auch alle anderen zu r-x. Wenn Apache es ausführt, wird es als www-data, in www-data Gruppe ausgeführt; Es erhält die Gruppenberechtigungen r-x, die das Erstellen einer neuen Datei verbieten. Wenn Sie es ausführen, läuft es als me, vermutlich nicht in www-data Gruppe, die den letzten Satz von Berechtigungen übernimmt: immer noch r-x, immer noch nicht in der Lage zu schreiben.

Idealerweise würden Sie den vollständigen Pfad zur Datei erstellt werden, zur Verfügung stellen mögen Verwirrung zu vermeiden, wo im Dateisystem Sie sind, und diese Position wollen würde, um die Berechtigungen haben drwxrwxr-x (oder drwxrwsr-x) für me und Gruppen www-data.

Verwandte Themen