Suite à la mise à jour de php dans les dépôts instables debian j'ai du reconfigurer mon php.ini et vérifier que tout est en état de marche après la migration de php-5.2.6 à php-5.2.9.
Comme pour chaque migration j'effectue les mises à jour sur mon serveur de développement et si tout se passe bien j'applique la même méthode sur le serveur de production.
Mise à jour par aptitude
Il faut tout d'abord lancer la mise à jour de la liste des paquets :
root@home:~$ aptitude update
Ensuite je lance la mise à jour du système. J'ai volontairement tronqué la liste des paquets mise à jour pour n'afficher que les paquets concernant php :
root@home:~$ aptitude safe-upgrade
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Lecture de l'information d'état étendu
Initialisation de l'état des paquets... Fait
Lecture des descriptions de tâches... Fait
Résolution des dépendances...
Les paquets suivants seront mis à jour :
php-pear php5-cgi php5-cli php5-common php5-dev php5-gd
Il est nécessaire de télécharger 1106ko/53,1Mo d'archives. Après dépaquetage, 28,1Mo seront utilisés.
Voulez-vous continuer ? [Y/n/?]
En répondant par Y (pour oui) je lance la migration. Il ne me reste plus qu'a attendre un peu et à vérifier que tout se passe correctement.
Aptitude détecte que j'ai modifier ma configuration php et me propose les choix suivants :
Je choisi l'option Montrer les différences entre les versions afin d'analyser les changements apportés par les responsables du paquet. Les différences entre les fichiers de configuration s'affichent sous la forme suivante :
Les lignes précédées d'un "+" représentent celles de la nouvelle version, les lignes de l'ancienne version sont quant à elles précédées d'un "-".
Après réflexion et analyse je décide d'installer la version du responsable du paquet et de la modifier par la suite avec mes options de configuration de php.
Redémarrage du serveur http
Une étape importante est le redémarrage du serveur web pour qu'il charge la nouvelle version de php et ses fichiers de configuration :
root@home:~$ /etc/init.d/lighttpd restart
Vérifications après migration
En guise de vérification je me contente de générer quelques pages, et de vérifier les logs d'erreurs de mon serveur. Ensuite j'utilise la fonction phpinfo pour vérifier que toutes mes extensions php sont chargées.
Une fois que j'ai réalisé ces quelques test post-migration sur le serveur de dev, j'effectue la mise à jour en production.
Modification importante chez debian
Les mainteneurs du paquet php de debian ont décidé de désactiver pour des raisons de sécurité la fonction dl qui permet de charger des extensions php à l'exécution. En voici la preuve :
; NOTE: this is a potential security hole and is disabled by default in debian
enable_dl = Off
Je suis tout à fait d'accord avec eux, mais si vous utilisez la fonction dl pensez à l'activer comme cela :
; NOTE: this is a potential security hole and is disabled by default in debian
enable_dl = On
Image : Chris Seufert