ich eine PHP-Web-Seite von dem Apache-Server lief zu sein, wird in /var/www/myweb/
gespeichert und aufgerufen index.php
einen 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?
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. –
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
'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/ ' –