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.