2010-10-06 4 views
15

J'ai trouvé que:2 fichiers php.ini

Quand je saisissez les informations suivantes sur le terminal:

php -i | grep php.ini 

Je reçois la sortie:

Le fichier de configuration Loaded est @/etc/php5/cli/php.ini

Cependant, à partir de phpinfo(), je peux voir:

Le fichier ini est chargé @ /etc/php5/apache2/php.ini

Lequel de ces travaille en ce moment? Comment est-il possible d'avoir deux fichiers php.ini?

+0

le chemin sur le serveur peut être différent puis le chemin affiché dans le navigateur – Grumpy

Répondre

28

Dépend de l'endroit où vous utilisez PHP. Si vous l'exécutez à partir de la ligne de commande, il utilise le cli/php.ini et apache2/php.ini lorsqu'il est exécuté par Apache.

Vous exécutez phpinfo() via le navigateur, d'où vous obtenez /etc/php5/apache2/php.ini comme réponse. En cours d'exécution php -r "phpinfo();" | grep "Loaded Configuration" à partir du terminal devrait sortir le INI CLI. Même fonction, le contexte change.

L'avantage de ce système est évidemment de permettre différentes configurations en fonction du contexte. Pour un exemple simplifié, vous pouvez avoir safe_mode activé dans apache mais ce n'est pas nécessaire en mode CLI.

Vos chemins .ini sont plutôt inhabituels. Normalement, le fichier .ini par défaut est php.ini et CLI .ini est appelé php-cli.ini et ils résident dans le même dossier.

Je ne suis pas un expert en la matière, mais cela devrait être l'idée de base. Si quelqu'un a des corrections, je serais heureux de les entendre.

+1

Yup. Vous avez bien compris. L'idée de base derrière différents fichiers INI pour la CLI et Apache est que l'on peut avoir plusieurs serveurs virtuels fonctionnant sur un seul système. Merci pour votre réponse. –

+1

@HrishikeshChoudhari "L'idée de base derrière différents fichiers INI pour la CLI et Apache est que l'on peut avoir plusieurs serveurs virtuels fonctionnant sur un seul système." 100% pas le cas. La version PHP CLI de 'php.ini' est pour la ligne de commande PHP. Le module Apache 'php.ini' est pour le module PHP Apache. Deux choses distinctes et différentes. – JakeGould