cari

Rumah  >  Soal Jawab  >  teks badan

Tidak berfungsi fungsi fopen() dalam PHP (Apache, Linux Mint)

<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粉722409996P粉722409996516 hari yang lalu560

membalas semua(1)saya akan balas

  • P粉107772015

    P粉1077720152023-08-14 11:21:06

    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!

    balas
    0
  • Batalbalas