Comment puis-je inclure un php.fichier ini dans un autre php.fichier ini?
Comment puis-je inclure un php.fichier ini dans un autre php.fichier ini?
6 réponses
Je ne pense pas que vous puissiez "inclure".fichiers ini du php principal.fichier ini.
Une solution possible, cependant, pourrait être d'utiliser cette option sur la ligne configure, lors de la compilation de PHP:
--with-config-file-scan-dir=PATH
Set the path where to scan for configuration files
Si cette option est utilisée au moment de la compilation, PHP recherchera every .fichier ini dans ce répertoire, en plus du php "normal".fichier ini.
Je suppose que c'est ce qui est utilisé par Ubuntu, par exemple, qui utilise un autre .fichier ini pour chaque extension téléchargée, au lieu de modifier php.ini.
Le chemin d'accès au php.fichier ini étant défini avec cette option, sur la ligne configure:
--with-config-file-path=PATH
Set the path in which to look for php.ini [PREFIX/lib]
Pourtant, cela signifie probablement que vous devrez recompiler PHP - ce qui n'est pas si difficile, btw-le plus difficile étant d'obtenir les dépendances dont vous avez besoin.
Et, voici un post sur les internes @ mailling-list qui dit la même chose que moi: fichiers de configuration et PHP_CONFIG_FILE_SCAN_DIR
J'ai installé memcached pour php et je ne savais pas comment m'assurer que son ini était inclus dans mon php.ini, mais comme il s'avère, il est automatiquement. Vous pouvez valider ce qui est chargé en exécutant php --ini
.
php --ini
Configuration File (php.ini) Path: /opt/local/etc/php5
Loaded Configuration File: (none)
Scan for additional .ini files in: /opt/local/var/db/php5
Additional .ini files parsed: /opt/local/var/db/php5/memcached.ini
On peut aussi définir le chemin dans le ~/.bashrc
export PHP_INI_SCAN_DIR=/usr/local/lib/php.d
Semble que vous ne pouvez pas inclure un fichier ini dans un autre afin qu'il soit référencé et chargé. Mais vous pouvez configurer php pour charger plusieurs fichiers en le racontant les dossiers à examiner.
Lorsque vous utilisez une configuration FastCGI (peut-être aussi en FPM, bien que je ne le sache pas avec certitude), vous pouvez exporter des variables d'environnement à partir du wrapper php.
Là, vous pourriez faire:
export PHP_INI_SCAN_DIR=/etc/php5/cgi/conf.d:/var/www/mydomain.net/etc
/var/www/mydomain.net/etc
est juste un exemple, c'est le dossier dans lequel vous mettez vos fichiers ini supplémentaires. Il semble que ce peut être une liste séparée :
.
Utiliser phpinfo.php
(fichier appelé arbitrairement contenant uniquement <?php phpinfo();
), ouvrez l'URL correspondante dans votre navigateur et vérifiez la liste des répertoires qui sont analysés et la liste des fichiers pouvant être chargés dans la zone supérieure de il.
/etc/php5/cgi/conf.d
devrait toujours être inclus (je suppose parce qu'il a été compilé dans l'exécutable php) et peut-être pas vraiment nécessaire.
Vous ne pouvez pas. lire les pages en ligne:
Résumé: le fichier de configuration (php.ini) est lu au démarrage de PHP. Pour les versions du module serveur de PHP, cela se produit une seule fois, lorsque le web le serveur est démarré. Pour le CGI et CLI version, il arrive sur tous les invocation.
Résumé: en plus de la principale php.fichier ini, PHP analyse les fichiers INI dans chaque répertoire, en commençant par le répertoire du fichier php demandé, et de travailler son chemin jusqu'à l'actuel racine du document (comme défini dans $_SERVER['DOCUMENT_ROOT']). Seulement INI paramètres avec les modes PHP_INI_PERDIR et PHP_INI_USER sera reconnu dans .utilisateur.fichiers INI de style ini.