Voilà un sujet brûlant et qui demande un peu de concentration et de patience. En effet, il ne s'agit pas que d'effectuer une mise à jour des packages pour que tout fonctionne.
En effet, les modifications sont telles que certains autres packages comme munin, owncloud, et plus généralement le php ne fonctionneront pas nativement.
De plus, vous devez savoir que:
- le répertoire
/etc/apache2/conf.d n'est plus utilisé. A la place, deux dossiersconf-available etconf-enabled sont créés, sur le même mode de fonctionnement que mods et sites. Pensez à copier vos fichiers dans conf-available avec l'extension .conf, vous pourrez ensuite les activer/désactiver aveca2enconf a2disconf/a2enconf . - Vous devrez renommer tous vos fichiers/sites présents dans
sites-available/sites-enabled avec l'extension.conf sinon ils ne seront pas pris en compte. - Il est nécessaire d'effectuer une configuration supplémentaire pour le php, ainsi que pour les scripts cgi.
- Ne pas oublier la mise à jour de
openssl en lien avec celle d'apache !
Allez, maintenant que l'on sait cela, passons aux choses sérieuses. Et comme je n'ai peur de rien, voici comment j'ai procédé:
- Ajouter les dépots testing. Oui, autant utiliser les packages debian, les dépendances seront correctement gérées et le moindre conflit pourra être facilement résolu. Ajoutons alors à
/etc/apt/souces.list la ligne suivante:deb http://ftp.fr.debian.org/debian/ testing main contrib non-free
- Après avoir mis à jours la liste des paquets avec
apt-get update , il reste à installer les packages suivants:apt-get -t testing install apache2 openssl libapache2-mod-fastcgi php5-fpm libssl1.0.0 openssl-blacklist openssl-blacklist-extra memcached php5-memcached
Vous pourrez remarquer qu'un bon nombre de paquets seront mis à jour, de façon à satisfaire les dépendances, le plus important est de constater que
apache2.2-bin apache2.2-common et libapache2-mod-php5 font partie des paquets marqués ensuppression .
Vérifiez que tout se passe bien lors du processus de mise à jour, notamment si vous n'avez pas des messages du genre:dpkg: warning: unable to delete old directory '/etc/php5/conf.d': Directory not empty
[warn] The apache2 configtest failed (ce qui est normal vu que pas mal de fichiers de configuration sont encore écrits pour apache 2.2, munin, phpmyadmin …) - Vérifier que le fichier
/etc/php5/fpm/pool.d/www.conf contient la ligne suivante:listen = /var/run/php5-fpm.sock
Si ce n'est pas le cas, modifiez le fichier en conséquence, et redémarrez le service:
service php5-pfm restart - Nous allons maintenant configurer le module
fastcgi pour qu'il puisse se connecter à php5-pfm. Pour cela, il est nécessaire d'éditer le fichier/etc/apache2/mods-enabled/fastcgi.conf et contenir:<IfModule mod_fastcgi.c>
AddType application/x-httpd-fastphp5 .php
Action application/x-httpd-fastphp5 /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
</IfModule>On avance bien, non ?
- Il faut maintenant passer à une phase de renommage de vos fichiers de configuration de sites pour qu'ils soient pris en compte par apache.
Pour cela, rendez vous dans le dossier/etc/apache2/sites-available et ajouter l'extension.conf à tous vos sites.
Ensuite, il faudra effacer tous vos liens symboliques situés dans/etc/apache2/sites-enabled et activer de nouveau ces derniers avec la commandea2ensite . Exemple:cd /etc/apache2/sites-available
mv 01mysite 01mysite.conf
mv 01mysite-ssl 01mysite-ssl.conf
rm /etc/apache2/sites-enabled/*
a2ensite 01mysite.conf
a2ensite 01mysite-ssl.conf - On pourrait presque redémarrer le serveur apache, mais si vous aviez déjà une configuration en place, il est pratiquement sûr que l'on rencontrera des erreurs. On va maintenant s'intéresser aux scripts cgi.
Pour cela, rien de plus simple, un fichier de configuration est présent dans /etc/apache2/conf-available:
Vous avez alors deux possibilités:
– ajouter dans les virtualhost concernés la ligne suivante:Include conf-available/serve-cgi-bin.conf
– activer par défault pour tous vos sites la config cgi:a2enconf serve-cgi-bin.conf
Attention ! Pensez à éditer tous vos fichiers sites utilisés et supprimez les lignesScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ et blocks <Directory "/usr/lib/cgi-bin"> - Il va falloir maintenant basculer certains fichiers présents dans
/etc/apache2/conf.d dans /etc/apache2/conf-available avec l'extension .conf, et les activer avec la commandea2enconf . Exemple:cd /etc/apache2/conf.d
cp cp backuppc.conf ../conf-available/
cp munin.conf ../conf-available/
cp phpmyadmin.conf ../conf-available/
cp phpsysinfo ../conf-available/phpsysinfo.conf
a2enconf backuppc munin phpmyadmin phpsysinfo
Il nous restera à adapter ces fichiers pour pouvoir accéder aux services concernés. - Nous allons activer le module actions:
a2enmod actions
- On regarde les éventuelles erreurs de configuration. Vous pouvez alors utiliser 2 commandes:
–apache2 -t
–apache2ctl configtest
Si vous obtenezSyntax OK à cette dernière, c'est que l'on a déjà fait un grand pas ! - Allez, on redémarre le serveur apache !
service apache2 restart
Allez on croise les doigts pour avoir[ ok ] ! Mais çà ne veut pas dire que tout est accessible ! - Vérifier le fonctionnement du php. Pour cela, il faut créer un fichier dans /var/www (ou votre dossier racine de site web) nommé
phpinfo.php contenant:<?php
phpinfo();
?>Maintenant dans un navigateur, il suffit de taper:
http://ip_de_mon_serveur/phpinfo.php
- Reste à corriger les problèmes des applications "tierces". Normalement, les applications web telles que phpmyadmin, backuppc fonctionneront sna problème. Pour
munin , il est nécessaire de modifier le fichier/etc/apache2/conf-available/munin.conf :
Remplacer les lignes suivantes (pensez à adapter à votre config):Order allow,deny
Allow from localhost 127.0.0.0/8 ::1 192.168.x.x/24Par:
Require local
Require ip 127.0.0.0/8 ::1 192.168.x.x/24Recharger la nouvelle configuration par
service apache2 reload et munin fonctionnera de nouveau. - Retirer les dépôts testing, inutile de tenter le diable pour l'instant.
- Pour le fun, on peut enfin passer à un module différent de celui activé par défaut avec la version 2.2
a2dismod mpm-prefork
a2dismod mpm-worker
a2enmod mpm-event
service apache2 restart
Cà y est, on a un apache 2.4 fonctionnel ! Une migration toute simple, non ?
sources: https://www.linode.com/docs/websites/apache/running-fastcgi-php-fpm-on-debian-7-with-apache