(modifié le 2 novembre 2010 à 23:09)

Suite au passage à PHP 5.3.x sur l'un de mes serveurs, l'interface de Centreon ne fonctionnait plus. Dans mon cas c'était suite à l'upgrade de Ubuntu 9.04 vers Ubuntu 10.10.

Symptôme

La page Centreon renvoie une erreur sur du code PHP déprécié, ce qui chamboule l'interprétation du code PHP. En effet l'erreur s'insère directement dans la page et empêche session_start() de fonctionner, puisque aucun caractère ne doit être envoyé avant l'utilisation de session_start().

Voici le contenu du message d'erreur renvoyé dans le code source de la page d'authentification (assorti du message 'Invalid User' en rouge) :

De ce fait il est impossible de se connecter à la console Centreon.

Voici deux solutions pour corriger ce problème.

La solution propre

En PHP5, le passage par référence est systématique sur new, donc l'ampersand "&" n'a plus lieu d'être. Dans le fichier /usr/local/centreon/www/index.php (le chemin peut varier suivant les installations), trouver la ligne 160 :

et la remplacer par :

C'est tout ! Maintenant tout devrait fonctionner.

La solution "crade"

La deuxième solution consiste à inhiber les messages renvoyé par PHP concernant la dépréciation. L'effet est immédiat et Centreon fonctionnera de nouveau.

Localiser votre fichier php.ini (généralement dans /etc/php5/apache2/php.ini) :

[shell]locate php.ini[/shell]

Editez le fichier :

[shell]nano /etc/php5/apache2/php.ini[/shell]

Puis localiser la chaine : error_reporting = E_ALL & ~E_NOTICE

Remplacer cette chaîne par :

[shell]error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED[/shell]

Relancer le service Apache :

[shell]/etc/init.d/apache2 restart[/shell]

Maintenant tout fonctionne !

Attention : cette modification n'est pas idéale car elle peut masquer des erreurs importantes,  surtout si vous développez sur ce même serveur. Cette solution est temporaire, en attendant que Centreon fasse évoluer son code source dans une future version (v2.1.9 actuellement).

Conclusion

Si vous avez de nombreux serveurs qui utilisent Centreon, attendez que Centreon corrige ce "bug" avant de passer à PHP 5.3.x via les mises à jours systèmes. En revanche, si vous êtes un jedi du monitoring cette manipulation ne vous posera guerre de souci.

TJ28N0-P5HY0C-MVAPAA-XYK65T-9JB9FF-FTQ4YR

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter