Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Ceci est une ancienne révision du document !


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.

  1. 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

  2. Installez php-fpm pour traiter les scripts PHP

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

  3. 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

  1. Arrêtez Nginx :

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

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

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

  3. Désinstallez Nginx :

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

    ou en effaçant la configuration de nginx :

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

  4. Supprimez les dépendances indésirables :

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

Autres étapes

  1. Mettez à jour le système :

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

  2. Installez Apache :

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

  3. Lancez Apache :

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

  4. Redémarrez Apache :

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

Conclusion

Problèmes connus

Voir aussi