Ralat maut PHP tidak dapat membuka fail yang diperlukan
P粉470645222
P粉470645222 2023-08-23 19:46:43
0
2
483
<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粉470645222
P粉470645222

membalas semua(2)
P粉683665106

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

sudo setsebool httpd_read_user_content=1
P粉727531237

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!