Traductions de cette page?:

Migration rapide d'un site web sur un serveur Debian

Ce tutoriel est issu d'un fil de discussion sur Malekal.com.

Introduction, à lire

Que propose ce tutoriel, quand l'utiliser ?

  1. Si votre site web utilise PHP et MySQL,
  2. Si vous avez un serveur en hébergement mutualisé, ou sur un hébergeur qui ne vous satisfait pas
  3. Et que vous voulez déplacer votre site vers un serveur Debian sur lequel vous avez les droits administrateur et un accès par ssh.

Non-dits

La processus de migration va comporter quelques étapes non décrites dans ce tutoriel :

  • Vous allez vouloir empêcher les modifications sur la base de donnée de votre vieux serveur, ce qui peut impliquer de la mettre en lecture seule.
  • Vous allez faire une sauvegarde complète de cette base (avec un outil comme phpmyadmin)
  • Vous allez faire une sauvegarde complète de tous les fichiers du site web que vous récupérerez par exemple par ftp (en fait, de la même manière que vous publiiez vos fichiers).
  • Une fois le site mis en place sur le serveur, vous voudrez tester votre nouveau serveur, il faudra peut-être modifier votre fichier [i]hosts[/i] pour ça.
  • Une fois le serveur testé, vous voudrez changer vos enregistrements DNS pour qu'ils pointent vers l'ip du nouveau serveur.

Attention

  1. Toutes les commandes sont tapées en tant que root .
  2. On suppose que le serveur web configuré est destiné à répondre sur les adresses http://exemple.malekal.com/ et http://exemple2.chezlefab.net/.

Installation des paquets requis

aptitude install -R  apache2 mysql-server libapache2-mod-php5 phpmyadmin

Configuration de phpmyadmin (facultatif)

cd /var/www
ln -s /usr/share/phpmyadmin

Configuration d'apache2

Création des répertoires

mkdir -p /srv/malekal.exemple/www
mkdir /srv/malekal.exemple/logs

Upload du site web

depuis windows

Avec un client sftp comme filezilla, uploader les fichiers du site web dans /srv/malekal.exemple/www

depuis linux

Avec un bête scp (depuis la machine contenant les fichiers) :

scp -r /répertoire/contenant/les/fichiers/à/uploader root@ip_du_serveur:/srv/malekal.exemple/www[/code]

Et restauration des droits

(à nouveau en root sur le serveur)

chown www-data:www-data /srv/malekal.exemple/www -R

Configuration du « site » apache2 et du « VirtualHost »

cd /etc/apache2/sites-available/
cp default malekal.exemple

Puis éditer le fichier malekal.exemple (avec nano ou vim) pour qu'il ressemble à ça :

  • fichier /etc/apache2/sites-available/malekal.exemple
<VirtualHost *:80>
        ServerAdmin une_adresse_mail@spam
        ServerName exemple.malekal.com
        ServerAlias exemple2.chezlefab.net
 
        DocumentRoot /srv/malekal.exemple/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /srv/malekal.exemple/www>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
 
        ErrorLog /srv/malekal.exemple/logs/www.error.log
        LogLevel warn
        CustomLog /srv/malekal.exemple/logs/www.access.log combined
 
        ServerSignature Off
</VirtualHost>

Activez le nouveau site

ln /etc/apache2/sites-available/malekal.exemple /etc/apache2/sites-enabled/malekal.exemple
invoke-rc.d apache2 reload

Configuration du serveur Mysql (si le site requiert une base de donnée...)

Création d'une base de donnée

  1. Se connecter au serveur mysql en utilisant le mot de passe de l'administrateur mysql (donné lors de l'installation de mysql)
mysql -p
  1. Créer une base de donnée
51&q=CREATE&lr=lang_en">CREATE 51&q=DATABASE&lr=lang_en">DATABASE malekal_exemple;

Création de l'utilisateur mysql

  1. Ajouter un utilisateur
51&q=GRANT&lr=lang_en">GRANT 51&q=ALL&lr=lang_en">ALL 51&q=PRIVILEGES&lr=lang_en">PRIVILEGES 51&q=ON&lr=lang_en">ON malekal_exemple.* 51&q=TO&lr=lang_en">TO 'nom_dutilisateur'@'localhost' IDENTIFIED BY 'mot_de_passe';
FLUSH 51&q=PRIVILEGES&lr=lang_en">PRIVILEGES;
  1. Quitter mysql en tapant Control-D

Restauration de la base mysql.

  1. Le fichier contenant la vieille base

Uploader le fichier contenant la vieille base dans /srv/malekal.exemple/ Se rendre dans ce dossier

cd /srv/malekal.exemple/

S'il est gzipé, dégézipez-le avec « gunzip mon_fichier.gz » S'il est bzipé, débézipez-le avec « bunzip2 mon_fichier.bz2 »

  1. Restauration
mysql -u nom_dutilisateur -p < mon_fichier

Et voilà…

 
tuto_nix/migration_site.txt · Dernière modification: 18/09/2009 10:37 (édition externe)