"Tidak dapat membuka fail yang diperlukan, PHP mengalami ralat maut"
P粉345302753
P粉345302753 2023-08-20 17:22:12
0
2
524
<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粉345302753
P粉345302753

membalas semua(2)
P粉662802882

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

sudo setsebool httpd_read_user_content=1
P粉251903163

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan