que signifie “(include_path='.:/usr/share/pear:/usr/share/php')”?
J'ai de la structure du fichier sur EC2 comme : mais, face à certains fichier de référencement de problème.
index.php
-db
-config.php
-cron
-cron1.php
J'ai essayé de fichier de référencement:
`require_once (dirname(__FILE__).'/db/config.php');`
`require_once (($_SERVER['DOCUMENT_ROOT']).'/db/config.php');`
mais cron ne fonctionne pas.il donne une erreur de mail
`PHP Warning: require_once(/db/config.php): failed to open stream: No such file or directory in /var/www/html/cron/cron1.php on line 3
Warning: require_once(/db/config.php): failed to open stream: No such file or directory in /var/www/html/cron/cron1.php on line 3
PHP Fatal error: require_once(): Failed opening required '/db/config.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/cron/cron1.php on line 3
Fatal error: require_once(): Failed opening required '/db/config.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/cron/cron1.php on line 3`
require_once
dans lequel la page php? Est-il dans index.php
?OriginalL'auteur ketul shah | 2013-08-08
Vous devez vous connecter pour publier un commentaire.
Si vous regardez la constante PHP PATH_SEPARATOR, vous verrez qu'il soit ":" pour vous.
Si vous briser votre chaîne ".:/usr/share/pear:/usr/share/php" à l'aide de ce personnage, vous obtiendrez 3 pièces
Toute tentative de include () ou require() des choses, va le chercher dans ces répertoires, dans cet ordre.
C'est de vous montrer que dans le message d'erreur pour vous permettre de savoir d'où il ne pouvait PAS trouver le fichier que vous essayez d'exiger()
Pour votre premier besoin, si cela est inclus à partir de votre index.php, alors vous n'avez pas besoin de la dir choses, il suffit de faire:
OriginalL'auteur Uberfuzzy
Solution au problème
comme mentionné par Uberfuzzy [ cause réelle du problème ]
Si vous regardez la constante PHP [PATH_SEPARATOR][1], vous verrez qu'il soit ":" pour vous.
Si vous briser votre chaîne ".:/usr/share/pear:/usr/share/php" à l'aide de ce personnage, vous obtiendrez 3 pièces
Toute tentative de include () ou require() des choses, va le chercher dans ces répertoires, dans cet ordre.
C'est de vous montrer que dans le message d'erreur pour vous permettre de savoir d'où il ne pouvait PAS trouver le fichier que vous essayez d'exiger()
Qui a été la cause de l'erreur.
Arrive maintenant à la solution
php --ini
( dans mon cas :/etc/php5/cli/php.ini
)include_path
en viesc
puis appuyez sur/include_path
puisenter
include_path = ".:/usr/share/php:/var/www/<directory>/"
sudo service apache2 restart
Ce qu'il est.
Espérons que cela aide.
que faire si vous n'avez pas accès au php.fichier ini de la colombie-britannique, vous êtes libre d'accueil?
OriginalL'auteur Abhishek Goel
En fait, la solution est d'ouvrir le php.fichier ini modifier le include_path ligne et
soit changer complètement de
ou ajouter la
à la valeur actuelle de l'include_path.
Il est expliqué plus en détail dans : http://pear.php.net/manual/en/installation.checking.php#installation.checking.cli.phpdir
OriginalL'auteur Ivan Aranibar
J'ai eu un problème similaire.
Juste pour aider quelqu'un avec le même problème:
Mon erreur a été de l'utilisateur attribut de fichier pour les fichiers dans /var/www.
Après la modification de leur retour à l'utilisateur "www-data", le problème avait disparu.
OriginalL'auteur Gaston
C'est juste les répertoires de vous montrer où PHP est à la recherche de votre fichier. Assurez-vous que
cron1.php
existe où vous pensez que cela fonctionne. Et assurez-vous que vous savez oùdirname(__FILE__)
et$_SERVER['DOCUMENT_ROOT']
sont en pointant l'endroit où vous le souhaitez.Cette valeur peut être ajustée dans votre php.fichier ini.
mais u peut me dire ce que signifie "(include_path='.:/usr/share/pear:/usr/share/php')"
il me donne '/var/www/html"
ai-je besoin de changer quelque chose dans
php.ini
?J'ai dit que vous voulez que cela signifiait. Sa vous dit les répertoires que le moteur regardé dans vos fichiers. Ses deux points liste délimitée par des virgules. Donc, il semblait en
.
, qui est le répertoire de travail courant. il a ensuite regardé dans/usr/share/pear
, et enfin dans/usr/share/php
. Il a été incapable de trouver votre fichier.OriginalL'auteur castis
J'ai eu la même erreur tout en incluant le fichier à partir de la racine de mon projet en
codeigniter
.J'ai été en utilisant cettecommon.php
de mon projet.je l'ai changé pour
Fonctionne bien maintenant.
OriginalL'auteur Bugfixer