Ralat maut PHP tidak dapat membuka fail yang diperlukan
P粉470645222
2023-08-23 19:46:43
<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>
Jika anda menjalankan SELinux, anda mungkin perlu memberikan kebenaran httpd untuk membaca data daripada direktori /home:
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.
Pengendalirequire
berfungsi pada fail. Tetapi jalan iniHanya wujud pada pelayan HTTP maya, laluan tidak wujud dalam sistem fail. Laluan sistem fail yang betul ialah
Di mana
Bahagiandipanggil 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
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.