====== 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à…