Ceci est une ancienne révision du document !
Table des matières
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 :
</subnumberlist>
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
<WRAP list-deep>
- 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
</subnumberlist>
Conclusion
Problèmes connus
Voir aussi
Basé sur « Comment revenir à Apache de Nginx » par W3Ask.