PHP – Concaténation de include_path dans php.ini
Comment concaténer des include_path dans un ou plusieurs php.ini.
Tout d’abord le contexte :
Debian 5, installation standard, et j’utilise 3 php.ini dont les 2 premiers sont inchangés :
- /etc/php5/apache2/php.ini –> qui est le php.ini pour les pages web
- /etc/php5/cli/php.ini –> qui est le php.ini pour les scripts php en ligne de commande
- /etc/php5/conf.d/fichier.ini –> Par défaut tout ce qui est dans conf.d/ est ajouté au php.ini des pages web et de la ligne de commandes. C’est ce fichier commun aux deux autre que je modifie.
D’après la doc php, pour concaténer des include_path il faut faire :
include_path = ${include_path}:/nouv/path
Mais ceci n’est pas suffisant :
Si on regarde le path en ligne de commande avec la commande php -i | grep include_path
, on obtient :
include_path => .:/usr/share/php:/usr/share/pear
On pense à un path par défaut (ce qui est vrai car include_path est commenté dans le php.ini)
Mais quand on ajoute à « /etc/php5/conf.d/fichier.ini » la ligne include_path = ${include_path} :/nouv/path
on obtient comme nouveau path :
include_path => :/nouv/path
On peut donc penser que l’ajout du path n’a pas fonctionné.
Oui mais à présent décomentons dans le fichier « /etc/php5/cli/php.ini » la ligne include_path = ".:/usr/share/php
la path devient à présent :
include_path => .:/usr/share/php:/nouv/path
La concaténation a fonctionné !
En conclusion il faut comprendre qu’on ne peut pas concaténer de path au path par défaut, mais seulement à un path déjà définit.