cari

Rumah  >  Soal Jawab  >  teks badan

"Tidak dapat membuka fail yang diperlukan, PHP mengalami ralat maut"

<p>Saya mendapat ralat berikut daripada Apache: </p> <p><strong>[Sab 19 Mac 23:10:50 2011] [amaran] mod_fcgid: stderr: PHP ralat maut: require_once() [function.require]: Membuka '/common/configs/config_templates.inc. php' gagal (include_path='.:/usr/share/pear:/usr/share/php') pada baris 158 /home/viapics1/public_html/common/configs/config.inc.php </strong> ;/p> <p>Saya pastinya bukan pakar Apache, tetapi fail config.inc.php dan config_templates.inc.php kedua-duanya ada. Saya juga cuba menavigasi ke halaman test.html yang saya letakkan di bawah direktori common/configs/, jadi saya tidak fikir terdapat masalah kebenaran. Saya juga menetapkan kebenaran pada fail config_templates.inc.php untuk memberi semua orang kebenaran membaca, menulis dan melaksanakan. Tidak pasti apa yang perlu dilakukan, saya menyemak sama ada terdapat direktori /usr/share/php dan mendapati bahawa tiada satu pun, tetapi apabila saya memasang php menggunakan yum, ia berkata ia sudah pun versi terkini. Ada apa-apa cadangan? </p>
P粉345302753P粉345302753531 hari yang lalu571

membalas semua(2)saya akan balas

  • P粉662802882

    P粉6628028822023-08-21 16:05:34

    Jika anda menjalankan SELinux, anda mungkin perlu memberi kebenaran httpd untuk membaca direktori /home, gunakan arahan berikut:

    sudo setsebool httpd_read_user_content=1

    balas
    0
  • P粉251903163

    P粉2519031632023-08-21 13:14:41

    Ini sebenarnya bukan soalan berkaitan Apache malah soalan berkaitan PHP. Untuk memahami ralat ini, anda mesti membezakan antara laluan pada pelayan maya dan laluan dalam sistem fail.

    requirepengendali digunakan pada fail. Tetapi jalan seperti ini

    /common/configs/config_templates.inc.php

    Hanya wujud pada pelayan HTTP maya, tiada laluan sedemikian dalam sistem fail. Laluan sistem fail yang betul hendaklah

    /home/viapics1/public_html/common/configs/config_templates.inc.php

    Antaranya

    /home/viapics1/public_html
    Bahagian

    dipanggil Document Root dan ia menghubungkan dunia maya dengan dunia nyata. Nasib baik, pelayan web biasanya mempunyai akar dokumen dalam pembolehubah konfigurasi yang dikongsi dengan PHP. Jadi jika anda menukar kod anda seperti ini

    require_once $_SERVER['DOCUMENT_ROOT'].'/common/configs/config_templates.inc.php';

    Ia akan berfungsi dalam mana-mana fail dalam mana-mana direktori!

    Kemas kini: Akhirnya saya menulis artikel yang menerangkan perbezaan antara laluan relatif dan mutlak pada sistem fail dan pelayan web, menerangkan masalah secara terperinci dan termasuk beberapa penyelesaian praktikal. Sebagai contoh, apabila anda menjalankan skrip dari baris arahan, pembolehubah mudah seperti itu tidak wujud. Dalam kes ini, ia boleh diselesaikan menggunakan teknik yang dipanggil "single entry". Anda juga boleh merujuk artikel di atas untuk butiran lanjut.

    balas
    0
  • Batalbalas