Cet article à pour but certes d’installer un serveur web mais surtout de voir comment héberger plusieurs domaine sur le même serveur. On passera l’installation de base et on passera directement àl’installation des logiciels concernés. Ce tutoriel peut aussi être appliqué pour un serveur à la maison à condition d’avoir un accès à la console et si vous voulez avoir accès à la console à distance il faut au préalable avoir installé le serveur SSH.
Tout le tutoriel est fait avec l’utilisateur root qui est activé d’office en installant Ubuntu sur une Dedibox pour le faire avec le premier utilisateur il faut rajouter sudo avant chaques commande
Installation du serveur SSH:
apt-get install openssh-server
Une fois installé la connexion se fait à partir de la commande aussi en tapant:
ssh user@ip_serveur
Ou
ssh user@domain.tld
1 – Installation
Pour installer le serveur web et tous les autres paquets nécessaire il faut utiliser la commance suivante:
apt-get install mysql-server mysql-client apache2 php5 php5-mysqli
apache2 sert à installer le serveur web en version 2 d’Apache et toutes ses dépendances. mysql-server sert à installer le serveur MySQL en version 5 mysql-client installe le client en ligne de commande de MySQL php5 comme son nom l’indique installe PHP en version 5 php5-mysqli installe un lien pour que PHP5 puisse se connecter à MySQL
2 – Configuration
Une fois les logiciels installés nous allons devoir créer les répertoires qui hébergeront les futurs sites web. Afin de simplifier la sauvegarde il serait bon de centraliser les fichiers dans /home .
Création des répertoires:
mkdir /home/httpd/vhosts/domain.tld
mkdir /home/httpd/vhosts/domain.tld/httpdocs
mkdir /home/httpd/vhosts/domain.tld/logs
domain.tld est à remplacer par votre domaine par exemple motarion.net tout ce qui concerne ce domaine sera regroupé dans ce dossier. httpdocs servira à acceuillir les pages web du site en question afin que le serveur puisse les servir aux clients web. logs contiendra tous les fichiers de logs générés par le serveur web notament les visites ou les erreurs sur le domaine.
Maintenant nous allons configurer le serveur web afin qu’il puisse répondre aux demande. Mais avant cela nous allons le sauvegarder:
cp /etc/apache2/sites-available/default ~/default.sites-available.bak
Pour rendre accessible les domaines il faut éditer le fichier /etc/apache2/sites-available/default avec la commande:
nano -w /etc/apache2/sites-available/default
J’utilise nano qui est plus sympa que vim mais n’importe quel éditeur de texte fera l’affaire, l’option -w de nano sert à entrer dans le mode édition.
Il faut qu’il ressemble à ça (les éléments en gras sont à modifier en fonction du domaine):
@@ NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin adresse_mail
ServerName domain.tld
DocumentRoot /home/httpd/vhosts/domain.tld/httpdocs
ErrorLog /home/httpd/vhosts/domain.tld/logs/error.log
LogLevel warn
CustomLog /home/httpd/vhosts/domain.tld/logs/access.log combined
ServerSignature On
</VirtualHost>
<VirtualHost *:80>
ServerAdmin adresse_mail
ServerName autredomain.tld
DocumentRoot /home/httpd/vhosts/autredomain.tld/httpdocs
ErrorLog /home/httpd/vhosts/autredomain.tld/logs/error.log
LogLevel warn
CustomLog /home/httpd/vhosts/autredomain.tld/logs/access.log combined
ServerSignature On
</VirtualHost>
@@
Sauvegardez (Ctrl+O) les modifications et relancer le service web comme suit:
/etc/init.d/apache2 restart
Il faut être root pour pouvoir relancer les services.
Maintenant que l’on a configuré le service web nous allons configurer le service de base de données. Première chose à faire changer le mot de passe root de la base de donnée car il est vide lors de l’installation du serveur de base de données.
Connexion à la base:
mysql -u root
(vous remarquez qu’il ne vous demande pas de mot de passe 😉 )
Modification du mot de passe dans le shell MySQL:
mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('nouveau_mot');
Il faut remplacer host_name par le nom d’hôte qui est localhost dans un premier temps et le numéro de votre dedibox sd-xxxx et bien entendu nouveau_mot par le mot de passe désiré.
3 – Utilisation
Maintenant il faut envoyer les pages web sur le serveur et comme aucun serveur FTP n’est installer il va falloir passer par scp qui fait partit intégrante de SSH, scp est la copie sécurisée des fichiers et donc tout le transfert passe par dessus SSL. Pour copier les fichiers sur le serveur il faut donc utiliser la commande suivante:
scp /home/user_local/fichier_a_copier user@ip_serveur:/home/httpd/vhosts/domain.tld/httpdocs
Lors de l’envois il vous demandera de taper le mot de passe du serveur sur lequel vous voulez copier les fichiers, il faut taper celui de l’utilisateur du serveur.
Pour copier un répertoire entier il faut mettre comme pour cp c’est à dire l’option -r. Une autre option pratique pour le transfert de gros fichiers c’est de mettre -C qui active la compression. Sinon pour copier des fichiers du serveur sur la machine locale on peut utiliser la commande:
scp -rC user@ip_serveur:/home/httpd/vhosts/domain.tld/httpdocs /home/user_local/site_web
Dans cet exemple on copie de façon récursive (-r) et compressé -C) l’enssemble de l’arboresnce du site web. Il est aussi possible de copier des fichier entre deux serveur distant.
4 – Annexe
- PuTTY sert à la connexion SSH sous Windows, il est très pratique si vous n’avez que Windows de disponible
- WinSCP tout comme scp sous Linux seulement là il sert aux transfert sécurisé sous Windows, attention tout de même un fichier html fait sous Windows n’aura pas le bon encodage caratère et il est possible que certain caractère spéciaux s’affiche mal.
- SFTP avec Gnome: sous Ubuntu et plus particulièrement Gnome il est possible de passer par Gnome pour afficher les répertoires distants pour cela il faut cliquer sur:
Raccourcis -> Se connecter à un serveur
Il ne reste plus qu’à paramétrer la connexion comme si vous le faisiez avec SSH. Grâce à cet utilitaire il est possible aussi de sauvegarder le mot de passe de connexion mais attention si quelqu’un prend possession de votre machine la sécurité ne sera plus de mise. Une icône apparaîtra sur le bureau pour commencer la connexion.
J’espère que cela pourra vous être utile si vous voulez mettre plusieurs sites sur le même serveur. N’oubliez pas de faire pointer vos noms de domaine sur le serveur ! Si vous avez des remarques merci de les mettre en commentaire.
À suivre comme billet la sauvegarde automatisé et sécurisée des fichiers et bases de données sur un autre serveur possédant un serveur SSH