Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menyelesaikan PHP Amaran: fopen(): gagal membuka strim: Kebenaran ditolak

Cara menyelesaikan PHP Amaran: fopen(): gagal membuka strim: Kebenaran ditolak

WBOY
WBOYasal
2023-08-20 13:45:143236semak imbas

如何解决PHP Warning: fopen(): failed to open stream: Permission denied

Cara menyelesaikan Amaran PHP: fopen(): gagal membuka strim: Kebenaran ditolak

Dalam proses membangunkan program PHP, kami sering menghadapi beberapa mesej ralat, seperti Amaran PHP: fopen(): gagal dibuka strim: Kebenaran ditolak. Ralat ini biasanya disebabkan oleh kebenaran fail atau direktori yang salah. Sebelum menyelesaikan masalah ini, kita perlu memahami konsep kebenaran fail dan direktori.

Kebenaran fail dan direktori adalah khusus untuk sistem pengendalian dan mentakrifkan kebenaran akses kepada fail dan direktori. Dalam sistem Linux, setiap fail dan direktori mempunyai tetapan kebenaran yang sepadan, yang kebanyakannya dibahagikan kepada tiga kebenaran: baca (R), tulis (W), dan laksana (X). Kita boleh menukar kebenaran dengan menggunakan arahan chmod.

Untuk menyelesaikan masalah PHP Amaran: fopen(): gagal membuka strim: Kebenaran ditolak, anda perlu mengikuti langkah berikut:

Langkah 1: Tentukan punca ralat

Kita perlu menentukan sumbernya terlebih dahulu daripada kesilapan itu. Kami boleh menentukan fail atau direktori yang mempunyai isu kebenaran akses dengan menambahkan beberapa maklumat penyahpepijatan pada kod.

$file = "test.txt";
if(!file_exists($file)){
    echo "File does not exist.";
} else {
    if(is_writable($file)){
        echo "File is writable.";
    } else {
        echo "File is not writable.";
    }
}

Dalam kod di atas, kami mula-mula menyemak sama ada fail itu wujud, dan kemudian menentukan sama ada fail itu boleh ditulis. Jika fail tidak wujud, laluan fail mungkin tidak betul jika fail wujud tetapi tidak boleh ditulis, kebenaran fail mungkin tidak betul.

Langkah 2: Tukar kebenaran fail

Jika ralat disebabkan oleh kebenaran fail yang salah, kita boleh menukar kebenaran fail dengan menggunakan arahan chmod. Penggunaan arahan ini ialah:

chmod 权限 文件名

Kebenaran boleh diwakili dengan nombor kebenaran yang biasa digunakan adalah seperti berikut:

  • 0: Tiada kebenaran
  • 1: Laksanakan kebenaran
  • 2: Keizinan tulis
  • :

Sebagai contoh, jika kita ingin menetapkan kebenaran fail untuk membaca dan menulis, kita boleh menggunakan arahan berikut:

chmod 0666 test.txt

Dalam contoh ini, nombor 0 mewakili kebenaran pemilik, kumpulan dan pengguna lain. 0666 bermaksud bahawa kebenaran fail boleh dibaca dan ditulis oleh pemilik, boleh dibaca dan ditulis oleh kumpulan, dan boleh dibaca dan ditulis oleh pengguna lain.

Langkah 3: Tukar kebenaran direktori

Jika ralat disebabkan oleh kebenaran direktori yang salah, kami perlu menukar kebenaran pada direktori dan subfail dan subdirektorinya. Anda boleh menggunakan arahan berikut:

chmod -R 权限 目录名

Dalam arahan ini, parameter -R bermaksud menukar kebenaran secara rekursif, iaitu menukar keizinan direktori dan subfail dan subdirektorinya.

Sebagai contoh, jika kita ingin menetapkan kebenaran direktori dan subdirektorinya supaya boleh dibaca dan ditulis, kita boleh menggunakan arahan berikut:

chmod -R 0777 /var/www/html/

Dalam contoh ini, 0777 bermakna kebenaran direktori dan subdirektorinya adalah boleh dibaca dan ditulis oleh pemilik, kumpulan boleh membaca dan menulis pelaksanaan, pengguna lain boleh membaca dan menulis pelaksanaan.

Ringkasan

Amaran PHP: fopen(): gagal membuka strim: Kebenaran dinafikan ialah ralat biasa Apabila menyelesaikan masalah ini, pertama sekali kita perlu menentukan punca ralat, dan kemudian membuat perubahan kebenaran yang sepadan mengikut yang khusus. keadaan. Dengan menetapkan kebenaran fail dan direktori dengan sewajarnya, kami boleh memastikan operasi biasa aplikasi.

Saya harap artikel ini dapat membantu semua orang menyelesaikan masalah PHP Amaran: fopen(): failed to open stream: Permission denied. Kesimpulan: Dalam dunia kod, tidak ada salahnya selagi kita terus belajar, kita semua boleh mendaki kemuncak teknologi.

Atas ialah kandungan terperinci Cara menyelesaikan PHP Amaran: fopen(): gagal membuka strim: Kebenaran ditolak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn