2017-04-01 3 views
0

Sorry, um eine grundlegende Frage zu stellen, aber ich kann die Antwort nicht finden. Ich versuche, von PHP aus in eine Datei zu schreiben, scheitert aber mit der Berechtigung verweigert, und ich weiß nicht warum. Mein Code istWie schreibe ich Datei von innerhalb von PHP - Berechtigung verweigert

<!DOCTYPE HTML> 
<html> 
<head> 
    <title>File test</title> 

<?php 
ini_set('display_errors', 'On'); 
error_reporting(E_ALL | E_STRICT); 

echo 'Current script owner: ' . get_current_user(); 
echo '<br>WhoAmI: '. shell_exec('whoami'); 
echo '<br>cwd: '.getcwd(); 
$plist = fopen("plist.txt", "w") or die("Unable to open file!"); 
fwrite($plist, 'some text'); 
fclose($plist); 
?> 

Dies ist der Ausgang Ich sehe besitzt

Current script owner: mick 
WhoAmI: www-data 
cwd: /home/mick/Documents/www/test 
Warning: fopen(plist.txt): failed to open stream: Permission denied in /home/mick/Documents/www/test/fileTest.php on line 13 
Unable to open file! 

Meinen Benutzer (mick) offensichtlich das Verzeichnis ich zu schreiben versuchen und www-data ist ein Mitglied der ‚mick Gruppe. Ich habe auch das Verzeichnis auf 777 gesetzt, um zu versuchen, es zur Arbeit zu bringen, aber immer noch den Fehler zu bekommen. Was habe ich hier verpasst?

+0

Dude, lauf 'ls -la/home/mick/Dokumente/www/test'. –

+0

Was ist der aktuelle Dateipfad und was ist der Pfad für die Textdatei? – C2486

+0

Das gibt -rw-r - r-- 1 mick mick 374 Apr 1 15:33 fileTest.php –

Antwort

0

Sie benötigen die Erlaubnis für www-Daten Benutzer. Sie können es tun, indem Sie diese Befehle ausführen:

sudo chown www-data:www-data /home/mick/Documents/www/test 
sudo chmod 777 /home/mick/Documents/www/test 

Der obige Code gibt vollen Zugriff für Benutzer www-data in das Verzeichnis.

Oder fügen Sie w + innere fopen hinzu. Es wird die Datei erstellen, wenn sie nicht existiert.

+0

Ja, es ist Apache. Ich habe gerade Ihren Vorschlag ausprobiert und es macht keinen Unterschied, immer noch den gleichen Fehler. –

+0

OK Ich denke ich habe es jetzt. Ich habe die Textdatei irgendwann erstellt, mit dem Besitzer 'mick' und ich nahm an, dass ich dazu in der Lage sein sollte. Zu der Zeit hatte ich nicht realisiert, dass es als www-Daten schreiben würde. Es funktioniert jetzt. Danke für Ihre Hilfe. –

Verwandte Themen