De Nginx à Apache : remplacer Nginx par Apache sans perdre les données du site Web et avec le minimum de temps d'arrêt

Ce tutoriel explique comment migrer un site Web de Nginx vers Apache sur un VPS Ubuntu 12.04.

Il suppose que vous avez installé un environnement LEMP (Linux, Nginx, MySQL et PHP).

L'idée est d'installer Apache sur le port 8080 et en parallèle avec Nginx qui reste accessible sur le port 80, pour pouvoir configurer le nouveau serveur Apache tout en consultant les fichiers de configuration de Nginx.

Adaptez-le selon vos besoins.

Principales différences entre Apache et Nginx :

Apache	NGINX
emplacement des fichiers de configuration	/etc/apache2/apache2.conf	/etc/nginx/nginx.conf
fonctionnement	hôte virtuel	bloc server
répertoire racine par défaut	/var/www/html	/var/www/html
système de cache intégré	non	oui

Pré-requis

Un serveur LEMP installé

Première étape : Installer Apache

Nous commençons par installer notre nouveau logiciel Apache, ce qui nous permettra de configurer le nouveau serveur en consultant les fichiers de configuration Nginx actuels.

Installez apache2

...@...:~$ sudo apt update
...@...:~$ sudo apt install apache2
...
Les paquets supplémentaires suivants seront installés :
apache2-bin apache2-data apache2-utils libapr1 libaprutil1
libaprutil1-dbd-sqlite3 libaprutil1-ldap
Paquets suggérés :
apache2-doc apache2-suexec-pristine | apache2-suexec-custom
Les NOUVEAUX paquets suivants seront installés :
apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1
libaprutil1-dbd-sqlite3 libaprutil1-ldap
...
Souhaitez-vous continuer ? [O/n] o
...
...systemd[1]: Failed to start The Apache HTTP Server.
...

Les erreurs sont dûes au fait que Apache s'installe sur le port 80, déjà utilisé par Nginx.

Cele sera corrigé plus bas par la configuration provisoire de Apache

Installez php-fpm pour traiter les scripts PHP

...@...:~$ sudo apt install php-fpm

Mettre en place la configuration de test de Apache : Puisque Nginx est en cours d'exécution, il nous faut configurer notre serveur Apache indépendamment d'Nginx pour que notre site soit toujours opérationnel pendant la transition. Il suffit de tester Apache sur un autre port jusqu'à ce que nous soyons prêts à consolider nos modifications. De cette façon, nous pouvons faire fonctionner les deux serveurs simultanément. Commencez par ouvrir le fichier de configuration du site Apache par défaut :

Première étape : supprimer le serveur Web Nginx

Arrêtez Nginx :

...@...:~ $ sudo systemctl stop nginx

Désactivez le lancement de Nginx au démarrage :

...@...:~ $ sudo systemctl disable nginx

Désinstallez Nginx :

...@...:~ $ sudo apt remove {nginx,nginx-full}

ou en effaçant la configuration de nginx :

...@...:~ $ sudo apt purge {nginx,nginx-full}

Supprimez les dépendances indésirables :

...@...:~ $ sudo apt autoremove

Autres étapes

Mettez à jour le système :

...@...:~ $ sudo apt clean all
...@...:~ $ sudo apt update
...@...:~ $ sudo apt dist-upgrade

Installez Apache :

...@...:~ $ sudo apt install apache2

Lancez Apache :

...@...:~ $ sudo systemctl start apache2

Redémarrez Apache :

...@...:~ $ sudo apache2ctl restart

Conclusion

Problèmes connus

Voir aussi

(fr) https://fr.w3ask.com/revenir-apache-nginx/

Basé sur << Comment revenir à Apache de Nginx >> par W3Ask.