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
Lepaskan: 2025-01-15 18:03:49
asal
260 orang telah melayarinya

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>
Salin selepas log masuk

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:

chmod -R 775 /Applications/XAMPP/xamppfiles/htdocs/php-crash/extras
Salin selepas log masuk

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
Salin selepas log masuk

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:

touch /Applications/XAMPP/xamppfiles/htdocs/php-crash/extras/users.txt
Salin selepas log masuk

Kemudian tetapkan kebenarannya:

chmod 664 /Applications/XAMPP/xamppfiles/htdocs/php-crash/extras/users.txt
Salin selepas log masuk

Ini menjadikan fail boleh ditulis.

3. Sahkan Pemilikan

Pemilikan yang salah juga boleh menyebabkan masalah. Semak pemilikan:

ls -l /Applications/XAMPP/xamppfiles/htdocs/php-crash/
Salin selepas log masuk

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
Salin selepas log masuk

Ganti www-data dengan pengguna pelayan web sistem anda.

4. Laksanakan Pengendalian Ralat Teguh dalam PHP

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.";
}
?>
Salin selepas log masuk

Ini menyemak kewujudan direktori dan menyediakan mesej ralat bermaklumat.

5. Mulakan semula XAMPP

Memulakan semula XAMPP kadangkala boleh menyelesaikan isu kebenaran:

sudo /Applications/XAMPP/xamppfiles/xampp restart
Salin selepas log masuk

Petua Nyahpepijat

Dayakan pelaporan ralat PHP terperinci:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan