Funktioniert nicht mit der Funktion fopen() in PHP (Apache, Linux Mint)
P粉722409996
P粉722409996 2023-08-13 14:14:43
0
1
550
<p>fopen() funktioniert auf meinem lokalen Apache2-Server unter Linux Mint nicht</p> <pre class="brush:php;toolbar:false;"><?php error_reporting(E_ALL); ini_set('display_errors',1); include_once "c&f.php"; fopen("test.txt", 'w');</pre> Die Datei <p>test.txt</code> wird erstellt und ich kann sie mit Sublime öffnen und darauf schreiben. Das Verzeichnis für dieses spezielle Projekt ist <code>/var/www/site02</code>. Bei der Konfiguration von Apache2 nach der Installation habe ich speziell den Besitzer dieses spezifischen Verzeichnisses (site02) geändert, um Dateien lesen und schreiben zu können (sudo chown $USER:$USER -R... Sie verstehen, was ich meine). Tatsächlich kann ich mit meinem Benutzerkonto in diesem Verzeichnis lesen und schreiben (ich kann in diesem Verzeichnis ohne „sudo“ Cli-Git-Befehle frei verwenden). </p> <p>Wenn ich mit dem oben genannten Code auf <code>index.php</code> zugreife, erhalte ich die folgende Fehlermeldung: </p> <blockquote> <p>"Warnung: fopen(test.txt): Stream kann nicht geöffnet werden: Berechtigung verweigert in /var/www/site02/index.php, Zeile 6"</p> </blockquote> <p>Was ist passiert? Ich habe versucht, das Problem zu googeln, habe aber tausende verschiedene Gründe gefunden, die mich nur noch mehr verwirrt haben. Ist das Problem ein Problem mit dem Apache-Server? Oder muss ich einige Konfigurationsänderungen an PHP vornehmen? </p>
P粉722409996
P粉722409996

Antworte allen(1)
P粉107772015

所以,在发布这个问题后,我决定用文件管理器(Thunar)打开 /var/www/site02 来检查图形界面下的权限。是的,这个目录的所有者是我,我可以读取和写入。组是 我的用户名,权限也是读取和写入。但是对于“其他人”,只有一个权限:读取。我把它改成了读取和写入。并用一些代码进行测试:

$fh = fopen("test.txt", 'w') or die("error writing the file");

    $text = <<<_END
    line 1
    line 2
    line 3
    _END;

    fwrite($fh, $text) or die("error writing the file");
    fclose($fh);
    echo "成功!";

而且它成功了!

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage