"Impossible d'ouvrir le fichier requis, PHP a rencontré une erreur fatale"
P粉345302753
P粉345302753 2023-08-20 17:22:12
0
2
515
<p>J'obtiens l'erreur suivante d'Apache : </p> <p><strong>[Samedi 19 mars 23:10:50 2011] [warn] mod_fcgid : stderr : Erreur fatale PHP : require_once() [function.require] : Ouverture de '/common/configs/config_templates.inc. php' a échoué (include_path='.:/usr/share/pear:/usr/share/php') à la ligne 158 de /home/viapics1/public_html/common/configs/config.inc.php </strong> ;/p> <p>Je ne suis certainement pas un expert d'Apache, mais les fichiers config.inc.php et config_templates.inc.php sont tous deux là. J'ai également essayé d'accéder à la page test.html que j'ai placée dans le répertoire common/configs/, donc je ne pense pas qu'il y ait un problème d'autorisations. J'ai également défini les autorisations sur le fichier config_templates.inc.php pour donner à tout le monde des autorisations de lecture, d'écriture et d'exécution. Je ne sais pas quoi faire, j'ai vérifié s'il y avait un répertoire /usr/share/php et j'ai constaté qu'il n'y en avait pas, mais lorsque j'ai installé php en utilisant yum, il a dit que c'était déjà la dernière version. Aucune suggestion? </p>
P粉345302753
P粉345302753

répondre à tous(2)
P粉662802882

Si vous utilisez SELinux, vous devrez peut-être autoriser httpd à lire le répertoire /home, utilisez la commande suivante :

sudo setsebool httpd_read_user_content=1
P粉251903163

Ce n'est en fait pas une question liée à Apache ni même une question liée à PHP. Pour comprendre cette erreur, vous devez faire la différence entre les chemins sur le serveur virtuel et les chemins dans le système de fichiers.

requireles opérateurs sont utilisés sur les fichiers. Mais un chemin comme celui-ci

/common/configs/config_templates.inc.php

Existe uniquement sur le serveur HTTP virtuel, il n'existe pas de chemin de ce type dans le système de fichiers. Le chemin correct du système de fichiers devrait être

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

Parmi eux

/home/viapics1/public_html
La section

s'appelle Document Root et connecte le monde virtuel au monde réel. Heureusement, les serveurs Web ont généralement la racine du document dans une variable de configuration partagée avec PHP. Alors si vous changez votre code comme ça

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

Cela fonctionnera dans n'importe quel fichier dans n'importe quel répertoire !

Mise à jour : Enfin, j'ai écrit un article expliquant la différence entre chemins relatifs et absolus sur les systèmes de fichiers et les serveurs Web, expliquant le problème en détail et incluant quelques solutions pratiques. Par exemple, lorsque vous exécutez le script à partir de la ligne de commande, une variable aussi pratique n'existe pas. Dans ce cas, il peut être résolu en utilisant une technique dite « à entrée unique ». Vous pouvez également vous référer à l'article ci-dessus pour plus de détails.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!