Tidak berfungsi fungsi fopen() dalam PHP (Apache, Linux Mint)
P粉722409996
P粉722409996 2023-08-13 14:14:43
0
1
532
<p>fopen() tidak berfungsi pada pelayan tempatan apache2 saya pada Linux Mint</p> <pre class="brush:php;toolbar:false;"><?php error_reporting(E_ALL); ini_set('display_errors',1); sertakan_sekali "c&f.php"; fopen("test.txt", 'w');</pre> Fail <p>test.txt</code> telah dibuat dan saya boleh membukanya menggunakan Sublime dan menulis kepadanya. Direktori untuk projek khusus ini ialah <code>/var/www/site02</code>. Apabila mengkonfigurasi apache2 selepas pemasangan, saya secara khusus menukar pemilikan direktori khusus ini (site02) untuk dapat membaca dan menulis fail (sudo chown $USER:$USER -R... anda mendapat idea). Malah, saya sememangnya boleh membaca dan menulis dengan akaun pengguna saya dalam direktori ini (saya boleh menggunakan arahan cli git secara bebas dalam direktori ini tanpa "sudo"). </p> <p>Jika saya mengakses <code>index.php</code> menggunakan kod yang dinyatakan di atas, saya mendapat ralat berikut: </p> <blockquote> <p>"Amaran: fopen(test.txt): Tidak dapat membuka strim: Kebenaran ditolak dalam /var/www/site02/index.php, baris 6"</p> </blockquote> <p>Apa yang berlaku? Saya telah mencuba mencari masalah tetapi mendapat beribu-ribu sebab yang berbeza, yang hanya membingungkan saya. Adakah masalahnya adalah masalah dengan pelayan apache? Atau adakah saya perlu membuat beberapa perubahan konfigurasi pada PHP? </p>
P粉722409996
P粉722409996

membalas semua(1)
P粉107772015

Jadi, selepas menyiarkan soalan ini, saya memutuskan untuk membuka /var/www/site02 dengan pengurus fail (Thunar) untuk menyemak kebenaran di bawah antara muka grafik. Ya, pemilik direktori ini ialah saya dan saya boleh membaca dan menulis. Kumpulan itu ialah nama pengguna saya dan kebenaran dibaca dan ditulis. Tetapi untuk "orang lain" hanya ada satu kebenaran: baca. Saya menukarnya untuk membaca dan menulis. Dan uji dengan beberapa kod:

$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 "成功!";

Dan ia berjaya!

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan