====== Migration rapide d'un site web sur un serveur Debian ======
//Ce tutoriel est issu d'[[http://forum.malekal.com/migration-site-web-sur-serveur-debian-t21007.html|un fil de discussion]] sur [[http://forum.malekal.com|Malekal.com]].//
===== Introduction, à lire =====
==== Que propose ce tutoriel, quand l'utiliser ? ====
- Si votre site web utilise PHP et MySQL,
- Si vous avez un serveur en hébergement mutualisé, ou sur un hébergeur qui ne vous satisfait pas
- 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 ====
- Toutes les commandes sont tapées en tant que //root// .
- 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''
ServerAdmin une_adresse_mail@spam
ServerName exemple.malekal.com
ServerAlias exemple2.chezlefab.net
DocumentRoot /srv/malekal.exemple/www
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
ErrorLog /srv/malekal.exemple/logs/www.error.log
LogLevel warn
CustomLog /srv/malekal.exemple/logs/www.access.log combined
ServerSignature Off
==== 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 ====
- Se connecter au serveur mysql en utilisant le mot de passe de l'administrateur mysql (donné lors de l'installation de mysql)
mysql -p
- Créer une base de donnée
CREATE DATABASE malekal_exemple;
==== Création de l'utilisateur mysql ====
- Ajouter un utilisateur
GRANT ALL PRIVILEGES ON malekal_exemple.* TO 'nom_dutilisateur'@'localhost' IDENTIFIED BY 'mot_de_passe';
FLUSH PRIVILEGES;
- Quitter mysql en tapant Control-D
==== Restauration de la base mysql. ====
- 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 »
- Restauration
mysql -u nom_dutilisateur -p < mon_fichier
Et voilà…