Rumah > Soal Jawab > teks badan
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
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.
Pengendalirequire
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_htmlBahagian
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.