Rumah  >  Soal Jawab  >  teks badan

Ralat maut PHP tidak dapat membuka fail yang diperlukan

<p>Saya menerima ralat berikut daripada Apache</p> <p><strong>[Sab Mac 19 23:10:50 2011] [AMARAN] mod_fcgid: stderr: PHP ralat maut: require_once() [function.require]: Tidak dapat membuka '/common' /configs/ yang diperlukan config_templates.inc. php' (include_path='.:/usr/share/pear:/usr/share/php') di /home/viapics1/public_html/common/configs/config.inc.php baris 158</strong>< ; <p>Saya pastinya bukan pakar Apache, tetapi fail config.inc.php dan config_templates.inc.php ada di sana. Saya juga cuba menavigasi ke halaman test.html yang diletakkan dalam common/configs/ jadi saya tidak fikir sebarang isu kebenaran berlaku. Saya juga menetapkan kebenaran pada config_templates.inc.php untuk memberi semua orang kebenaran membaca, menulis dan melaksanakan. Tidak pasti apa yang perlu dilakukan pada ketika ini, saya menyemak untuk melihat sama ada terdapat direktori /usr/share/php dan mendapati bahawa tidak ada, tetapi apabila saya memasang yum php, ia berkata ia mempunyai yang terkini. Ada idea? </p>
P粉470645222P粉470645222395 hari yang lalu434

membalas semua(2)saya akan balas

  • P粉683665106

    P粉6836651062023-08-24 11:50:35

    Jika anda menjalankan SELinux, anda mungkin perlu memberikan kebenaran httpd untuk membaca data daripada direktori /home:

    sudo setsebool httpd_read_user_content=1

    balas
    0
  • P粉727531237

    P粉7275312372023-08-24 09:24:51

    Ini sebenarnya bukan isu berkaitan Apache. Malah tidak berkaitan dengan PHP. Untuk memahami ralat ini, anda perlu membezakan antara laluan pada Pelayan Maya dan laluan dalam Sistem Fail.

    Pengendali

    require berfungsi pada fail. Tetapi jalan ini

    /common/configs/config_templates.inc.php

    Hanya wujud pada pelayan HTTP maya, laluan tidak wujud dalam sistem fail. Laluan sistem fail yang betul ialah

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

    Di mana

    /home/viapics1/public_html
    Bahagian

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

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

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

    Kemas kini: Akhirnya saya menulis artikel yang menerangkan perbezaan antara laluan relatif dan mutlak dalam fail pada kedua-dua sistem dan pelayan web, menerangkan masalah secara terperinci dan termasuk beberapa penyelesaian praktikal. Seperti, pembolehubah mudah sedemikian tidak wujud apabila anda menjalankan skrip dari baris arahan. Dalam kes ini, teknik yang dipanggil "titik masuk tunggal" boleh menyelesaikan masalah. Anda juga boleh merujuk artikel di atas untuk butirannya.

    balas
    0
  • Batalbalas