Pengendalian fail PHP sering menimbulkan ralat "Kebenaran Ditolak" yang mengecewakan, terutamanya semasa membuat atau menulis fail. Artikel ini memperincikan punca biasa dan penyelesaian yang berkesan.
Mesej ralat biasanya kelihatan seperti ini:
<code>Warning: fopen(extras/users.txt): Failed to open stream: Permission denied in /Applications/XAMPP/xamppfiles/htdocs/php-crash/14_file_handling.php on line 25 Failed to open file for writing.</code>
Ini bermakna skrip PHP anda tidak mempunyai kebenaran yang diperlukan untuk mengakses users.txt
.
Pertama, sahkan kebenaran direktori. Pada macOS/Linux:
chmod -R 775 /Applications/XAMPP/xamppfiles/htdocs/php-crash/extras
Ini memberikan akses membaca, menulis dan melaksanakan akses kepada pemilik dan kumpulan serta membaca dan melaksanakan kepada orang lain. Untuk nyahpepijat sahaja, gunakan sementara:
chmod -R 777 /Applications/XAMPP/xamppfiles/htdocs/php-crash/extras
Ingat untuk kembali kepada kebenaran yang lebih ketat (seperti 775) selepas menyelesaikan masalah.
Jika fail tidak wujud, penciptaan mungkin gagal disebabkan masalah kebenaran. Cipta secara manual:
touch /Applications/XAMPP/xamppfiles/htdocs/php-crash/extras/users.txt
Kemudian tetapkan kebenarannya:
chmod 664 /Applications/XAMPP/xamppfiles/htdocs/php-crash/extras/users.txt
Ini menjadikan fail boleh ditulis.
Pemilikan yang salah juga boleh menyebabkan masalah. Semak pemilikan:
ls -l /Applications/XAMPP/xamppfiles/htdocs/php-crash/
Tukar pemilikan kepada pengguna pelayan web (cth., _www
atau www-data
):
sudo chown -R www-data:www-data /Applications/XAMPP/xamppfiles/htdocs/php-crash/extras
Ganti www-data
dengan pengguna pelayan web sistem anda.
Tingkatkan kod PHP anda dengan pengendalian ralat:
<?php $file = 'extras/users.txt'; // Ensure directory exists if (!is_dir('extras')) { mkdir('extras', 0777, true); // Create directory (full permissions for debugging) } $handle = fopen($file, 'w'); if ($handle) { $contents = 'Brad' . PHP_EOL . 'Sara' . PHP_EOL . 'Mike'; fwrite($handle, $contents); fclose($handle); echo "File created and written successfully."; } else { echo "Failed to open file for writing. Check file permissions."; } ?>
Ini menyemak kewujudan direktori dan menyediakan mesej ralat bermaklumat.
Memulakan semula XAMPP kadangkala boleh menyelesaikan isu kebenaran:
sudo /Applications/XAMPP/xamppfiles/xampp restart
Dayakan pelaporan ralat PHP terperinci:
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
Ini membantu mengenal pasti masalah.
extras
wujud dengan kebenaran yang betul.chmod 777
buat sementara waktu untuk penyahpepijatan (kemudian kembalikan)./Applications/XAMPP/logs/php_error_log
.Menyelesaikan ralat "Kebenaran Ditolak" PHP melibatkan pengurusan kebenaran fail dan direktori, memastikan pemilikan yang betul dan menggunakan pengendalian ralat yang mantap. Langkah di atas akan membantu anda menyelesaikan isu biasa ini dan meningkatkan pengendalian fail PHP anda. Untuk bantuan lanjut, rujuk blog kami atau tinggalkan komen di bawah. Selamat mengekod!
Atas ialah kandungan terperinci Cara Menyelesaikan Ralat Permission Denied' dalam Pengendalian Fail PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!