recherche

Maison  >  Questions et réponses  >  le corps du texte

"Impossible d'ouvrir le fichier requis, PHP a rencontré une erreur fatale"

<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粉345302753P粉345302753463 Il y a quelques jours530

répondre à tous(2)je répondrai

  • P粉662802882

    P粉6628028822023-08-21 16:05:34

    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

    répondre
    0
  • P粉251903163

    P粉2519031632023-08-21 13:14:41

    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.

    répondre
    0
  • Annulerrépondre