Pas mal de problèmes sur le serveur ces derniers jours. J’ai eu la bonne idée de faire la mise à jour depuis Ubuntu 13.04 à Ubuntu 13.10 sur le serveur. Du coup Apache a été mis à jour (bonne chose) mais beaucoup de choses ont changé (mauvaise chose).
La première chose à savoir si le problème vous arrive aussi c’est qu’apache, dans ses nouvelles configurations, n’accepte plus les fichiers de configuration de site qui ne finissent pas en « .conf« . Moi qui les avais tous nommés en fonction du nom du site(domaine/sous-domaine), j’ai dû renommer tous mes fichiers de config pour rajouter l’extension magique.
Une fois que ceci était fait, il m’a fallut supprimer les anciens lien symboliques rajoutés par apache lors des mes précédents a2ensite et présents dans /etc/apache2/sites-enabled/ en faisant :
cd /etc/apache2/sites-enabled/
rm *
De plus, mes fichiers de configuration possédaient des « – » lorsque je voulais désactiver une option mais jamais de « + » lorsque je voulais en ajouter une. Je me contentais par exemple de marquer
Options -Indexes FollowSymLinks MultiViews
Il faut donc reprendre tous les fichiers pour rajouter les « + » qui ont l’air d’être devenus obligatoires donnant donc :
Options -Indexes +FollowSymLinks +MultiViews
Voilà tous les fichiers de configuration de sites sont désormais valides il ne reste plus qu’à activer soit site par site ceux que l’on désire mettre en place soit d’un coup d’un seul tous ceux disponibles en faisant :
a2ensite *
La plupart du temps, les anciens fichiers de configurations ont été conservés et le nouveau fichier de configuration a été mis à côté avec pour extension « .dpkg-new« . Cependant l’ancien est toujours effectif. Dans le doute j’ai quand même refait mes configurations dans le nouveau fichier histoire de ne pas prendre de risques.
Cependant, si vous n’aviez jamais touché un fichier de config, il a été remplacé par la nouvelle version. Dans mon cas, ceci n’a pas été un franc succès puisque le dossier de base des fichiers de site du serveur était revenu à sa valeur par défaut à savoir /var/www/
J’ai donc changé dans le fichier /etc/apache2/apache2.conf les lignes
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
par le bon dossier et les bonnes options.
J’ai aussi eu la désagréable surprise de voir que le module php5-json n’était plus installé. Mais pour régler le problème un petit
apt-get install php5-json
et le voilà installé. Plus qu’à faire
service apache2 restart
et voilà un apache qui refait ce qu’on attend de lui.
En conclusion, je dirais que là la solution était relativement simple donc même si ce n’était pas la meilleure des surprises, le problème se corrigeait rapidement. Cependant, pour ceux qui ne savent pas trop gérer les fichiers de config, la tâche aurait pu s’avérer compliquée. Ne faites donc les mises à jour de version d’Ubuntu sur votre serveur qu’en gardant en tête que bien des choses peuvent ne pas se passer comme prévu. Gardez vous quelques heures/jours devant vous quand vous réalisez ce genre d’opération.
EDIT : Une petite précision après quelques recherches. Ce tuto s’applique sur Ubuntu de fait car les versions intégrées entraîne ce problème mais la résolution peut être la même du moment qu’Apache passe d’une version 2.2.X à 2.4.X. (Dans mon cas 2.2.22 à 2.4.6)