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?

27
demandé sur Itay Moav -Malimovka 2009-09-08 07:27:52

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

19
répondu Pascal MARTIN 2009-09-08 04:27:57

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
8
répondu hockey_dave 2013-10-12 18:41:21

On peut aussi définir le chemin dans le ~/.bashrc

export PHP_INI_SCAN_DIR=/usr/local/lib/php.d
8
répondu Martin Zeitler 2016-11-17 04:40:08

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.

2
répondu sjas 2018-05-30 17:22:11

Vous ne pouvez pas. lire les pages en ligne:

Le fichier de configuration

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.

.utilisateur.les fichiers ini

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.

1
répondu adatapost 2009-09-08 03:45:44

Vous pouvez essayer de le simuler en utilisant la fonction ini_set. Mais comme l'indique la" page de manuel", toutes les options ini ne peuvent pas être modifiées en utilisant ini_set. C'est certainement une fonction utile, cependant.

0
répondu Stephen 2009-09-08 04:35:55