Rumah >pembangunan bahagian belakang >tutorial php >Cara Menyelesaikan Ralat &#Permission Denied' dalam Pengendalian Fail PHP

Cara Menyelesaikan Ralat &#Permission Denied' dalam Pengendalian Fail PHP

Barbara Streisand
Barbara Streisandasal
2025-01-15 18:03:49147semak imbas

How to Resolve the

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.

Memahami Ralat

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.

Menyelesaikan Ralat "Kebenaran Ditolak"

1. Semak Kebenaran Direktori

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.

2. Pastikan Kewujudan Fail

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.

3. Sahkan Pemilikan

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.

4. Laksanakan Pengendalian Ralat Teguh dalam PHP

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.

5. Mulakan semula XAMPP

Memulakan semula XAMPP kadangkala boleh menyelesaikan isu kebenaran:

<code class="language-bash">sudo /Applications/XAMPP/xamppfiles/xampp restart</code>

Petua Nyahpepijat

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.

Senarai Semak Penyelesaian Masalah

  • Sahkan direktori extras wujud dengan kebenaran yang betul.
  • Sahkan pemilikan fail dan direktori.
  • Gunakan chmod 777 buat sementara waktu untuk penyahpepijatan (kemudian kembalikan).
  • Periksa log ralat PHP: /Applications/XAMPP/logs/php_error_log.

Kesimpulan

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!

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