Problème : des paquets vieillots
Lorsque votre serveur tourne sous Debian, les paquets sont éprouvés mais souvent datés. Ils tournent bien mais on ne peut pas vraiment bénéficier des versions les plus actuelles pour Apache, MySQL ou PHP par exemple.
La solution : ajouter un nouveau dépôt pour LAMP
La solution est tout simple, il suffit d’ajouter un nouveau dépôt, Dotdeb, qui permet de mettre à jour les paquets libmemcached, mysql, nginx, percona-toolkit, php5, php5-pecl, pinba-engine, redis, ruby-passenger, zabbix.
On édite donc notre liste :
nano /etc/apt/sources.listCode language: PHP (php)
et on ajoute les dépôts de Dotdeb, qui sont maintenus à jour par Guillaume Plessis :
deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable allCode language: JavaScript (javascript)
et enfin, on ajoute la clé GPG :
wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add -Code language: JavaScript (javascript)
La mise à jour se fait comme d’habitude :
apt update && apt upgrade
Petit ménage
La mise à jour a induit 2 problèmes facilement solvables. Le premier problème a été ce message d’avertissement :
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/suhosin.so' - /usr/lib/php5/20090626/suhosin.so: cannot open shared object file: No such file or directory in Unknown on line 0Code language: JavaScript (javascript)
Les paquets PHP de Dotdeb contiennent déjà le Suhosin patch dont il n’est pas nécessaire d’avoir l’extension php5-suhosin installée. Nous pouvons donc la supprimer :
apt purge php5-suhosin
Le deuxième problème m’a pris beaucoup plus de temps à traquer : pages blanches pour l’ensemble du site! J’ai épluché tous les logs, vérifié ma configuration MySQL et PHP jusqu’à trouver ce message d’erreur :
PHP Parse error: syntax error, unexpected $end in /themes/functions.php on line 1624Code language: PHP (php)
Une recherche Google plus tard, il s’avère que cela est dû à l’utilisation de shortags PHP comme <? au lieu du standard <?php – qui ne sont plus acceptés par défaut dans les dernières versions de PHP. J’en avais deux et cela bloquait l’affichage des pages ET la connexion MySQL. Tout est rentré dans l’ordre maintenant.
Conclusion
Voici un très bon moyen de mettre les paquets importants qui font tourner le site à jour. On passe aux dernières versions de PHP et MySQL, une avancée par rapport aux versions disponibles sous les dépôts Debian officiels.
Vous souhaitez enrichir votre site avec de nouvelles fonctionnalités ? Ensemble, donnons vie à vos idées, simplement et efficacement.
