Rumah >pembangunan bahagian belakang >tutorial php >Cara Menyelesaikan Ralat Permission Denied' dalam Pengendalian Fail PHP
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:
<code class="language-bash">chmod -R 775 /Applications/XAMPP/xamppfiles/htdocs/php-crash/extras</code>
Ini memberikan akses membaca, menulis dan melaksanakan akses kepada pemilik dan kumpulan serta membaca dan melaksanakan kepada orang lain. Untuk nyahpepijat sahaja, gunakan sementara:
<code class="language-bash">chmod -R 777 /Applications/XAMPP/xamppfiles/htdocs/php-crash/extras</code>
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:
<code class="language-bash">touch /Applications/XAMPP/xamppfiles/htdocs/php-crash/extras/users.txt</code>
Kemudian tetapkan kebenarannya:
<code class="language-bash">chmod 664 /Applications/XAMPP/xamppfiles/htdocs/php-crash/extras/users.txt</code>
Ini menjadikan fail boleh ditulis.
Pemilikan yang salah juga boleh menyebabkan masalah. Semak pemilikan:
<code class="language-bash">ls -l /Applications/XAMPP/xamppfiles/htdocs/php-crash/</code>
Tukar pemilikan kepada pengguna pelayan web (cth., _www
atau www-data
):
<code class="language-bash">sudo chown -R www-data:www-data /Applications/XAMPP/xamppfiles/htdocs/php-crash/extras</code>
Ganti www-data
dengan pengguna pelayan web sistem anda.
Tingkatkan kod PHP anda dengan pengendalian ralat:
<code class="language-php"><?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."; } ?></code>
Ini menyemak kewujudan direktori dan menyediakan mesej ralat bermaklumat.
Memulakan semula XAMPP kadangkala boleh menyelesaikan isu kebenaran:
<code class="language-bash">sudo /Applications/XAMPP/xamppfiles/xampp restart</code>
Dayakan pelaporan ralat PHP terperinci:
<code class="language-php">ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);</code>
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!