Tutoriels Linux Debian

Gérer plusieurs clés SSH de manière simple et automatique Lorsqu'on développe on utilise parfois une paire de clés SSH public/privée pour s'authentifier auprès d'un serveur distant. On utilise un système de clé publique/ clé privée couplée à un agent...

Lire la suite

Héberger son site internet sur son serveur dédié... Avant d'entrer dans le vif de ce tuto, notons que pour des raisons pratiques, sur le serveur dédié : les sites seront installés sur /home/nomdusite/. chaque site contient un répertoire logs/...

Lire la suite

Compilation du noyau sous debian ( kernel ) La compilation du noyau Debian peut être une étape nécessaire dans l'exploitation du système. La gestion des pilotes de périphériques est géré différemment sous Linux que sur Windows. Les pilotes...

Lire la suite

TCPDump ou comment sniffer le trafic TCP sous Linux... Tcpdump est un outil d'analyse réseau très répandu chez les amateurs de sécurité de l'information et de routage réseau. Tcpdump affiche les en-têtes de paquets d'une interface réseau en fonction...

Lire la suite

Les commandes top et htop La commande top La commande top permet de lister l'ensemble des processus et de ressources utilisées sur votre système linux, Unix ou BSD. [bash] top [/bash] Précisons la 3ème ligne : Options...

Lire la suite

  • Prev
  • Next

Héberger son site internet sur son serveur dédié debian

Category : Apache, MySQL

Avant d’entrer dans le vif de ce tuto, notons que pour des raisons pratiques, sur le serveur dédié :

  • les sites seront installés sur /home/nomdusite/.
  • chaque site contient un répertoire logs/ et www/ ce qui donne les répertoires /home/nomdusite/www/ et /home/nomdusite/logs/

Etape 1 : préparation du webspace

On commence par créer un utilisateur spécifique avec la commande adduser.
La création de l’utilisateur monblog implique la création du répertoire /home/monblog/
Le système crée aussi un groupe système monblog qu’il attribue automatiquement à l’utilisateur monblog

# adduser monblog

Il faut maintenant créer un répertoire /home/monblog/logs/ et /home/monblog/www/ pour accueillier respectivement les logs de l’hôte virtuel,
et le blog wordpress.

# mkdir /home/monblog/logs
# mkdir /home/monblog/www

On se place dans le dossier /home/monblog/www/ et on récupère la dernière version de wordpress en français

# cd /home/monblog/www
# wget –c http://fr.wordpress.org/wordpress-3.2.1-fr_FR.zip 
# unzip wordpress-3.2.1-fr_FR.zip
# rm –rf wordpress-3.2.1-fr_FR.zip
# mv wordpress/* .
# rm –rf ./wordpress/

Comme le blog est vierge, on va restreindre l’accès par login / mot de passe.
On crée donc les fichiers /home/monblog/www/.htaccess pour indiquer la restriction d’accès
tandis que le fichier /home/monblog/.htpasswd contiendra les identifiants et les mots de passe
des utilisateurs autorisés à accéder au blog en cours de développement.
Notez qu’on place le fichier .htpasswd dans le répertoire /home/monblog/ plutôt que dans /home/monblog/www/
pour des raisons de sécurité. Aussi, les mots de passe dans /home/monblog/.htpasswd sont cryptés en MD5
par la commande Apache htpasswd.
Attention, pour le login, utilisez plutôt des lettres et des chiffres et évitez le – sinon ça risque de ne pas passer.

On crée le fichier .htaccess pour indiquer la limitation d’accès

# nano /home/monblog/www/.htaccess
AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /home/monblog/.htpasswd 
AuthGroupFile /dev/null
require valid-user

# redirection de tout domaine monblog.fr monblog.eu monblog.com vers www.monblog.com
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.monblog.com/$1 [R=301,L]

On crée le fichier .htpasswd correspondant pour l’utilisateur qu’on nommera « monblog » pour simplifier :

# htpasswd -c ./home/monblog/.htpasswd monblog

ici la doc de la commande htpasswd : http://httpd.apache.org/docs/2.0/programs/htpasswd.html
le shell vous demande d’entrer un mot de passe et de le confirmer … le fichier est maintenant créé

Comme les fichiers du répertoire /home/monblog/ ont été créés avec l’utilisateur système root, il faut les réattribuer à l’utilisateur monblog appartenant au groupe monblog

# chown –R monblog:monblog /home/monblog/

De même pour les fichiers cachés .htpasswd et .htaccess

# chown –R monblog:monblog /home/monblog/.htpasswd
# chown –R monblog:monblog /home/monblog/www/.htaccess

Etape 2 : création de l’hôte virtuel

On crée le fichier de configuration de l’hôte virtuel accueillant le blog wordpress www.monblog.com
On indique 2 hôtes : 1 pour le nom de domaine avec www et 1 pour le nom de domaine sans le www
On redirigera par la suite le nom de domaine sans le www vers le nom de domaine dans le fichier /home/monblog/.htaccess

# nano /etc/apache2/sites-availables/monblog.com.conf
Vous remarquerez que le serveur utilise le module apache2-mpm-itk qui permet d’associer chaque hôte virtuel avec un unique UID/GID.
C’est pratique pour detecter une source de problème lorsque vous hébergez plusieurs sites sur un même serveur. Sans ce module,
en cas de surcharge serveur, vous ne pouvez pas savoir quel site est incriminé, il n’y a qu’un processus pour le serveur web apache
qui est associé par défaut à l’utilisateur www-data:www-data

<VirtualHost *:80>
        ServerName www.monblog.com
        DocumentRoot /home/monblog/www
        ErrorLog /home/monblog/logs/error_log
        CustomLog /home/monblog/logs/access_log combined
        <Directory /home/monblog/www>
         Options ExecCGI -Indexes -MultiViews +SymLinksIfOwnerMatch
                AddHandler cgi-script .cgi .pl
                Order deny,allow
                Allow from all
                AllowOverride All
                php_flag apc.cache_by_default On
        </Directory>
        <IfModule mpm_itk_module>
                AssignUserId monblog monblog
        </IfModule>
        php_admin_value default_charset UTF-8
</VirtualHost>

<VirtualHost *:80>
        ServerName monblog.com
        DocumentRoot /home/monblog/www
        ErrorLog /home/monblog/logs/error_log
        CustomLog /home/monblog/logs/access_log combined
        <Directory /home/monblog/www>
         Options ExecCGI -Indexes -MultiViews +SymLinksIfOwnerMatch
                AddHandler cgi-script .cgi .pl
                Order deny,allow
                Allow from all
                AllowOverride All
        </Directory>
        <IfModule mpm_itk_module>
                AssignUserId monblog monblog
        </IfModule>
        php_admin_value default_charset UTF-8
</VirtualHost>

On active le site en créant un lien symbolique monblog.com dans /etc/apache2/sites-enabled/ vers le fichier de conf correspondant /etc/apache2/sites-available/blog.com.conf
remarque : on aurait pu aussi utiliser la commande spécifique à Debian : a2ensite

# cd /etc/apache2/sites-enabled/
# ln -s ../sites-available/monblog.com.conf monblog.com

On redémarre apache et on vérifie que tout est bon

# /etc/init.d/apache2 restart

Etape 3 : Créer la base de donnée MySQL monblogdb et l’utilisateur MySQL monblog spécifique à cette base

Pourquoi crée-t-on un utilisateur spécifique pour chaque base et pour chaque site ? Tout simplement car en cas de piratage par exemple par une injection SQL, le pirate récupère
l’utilisateur MySQL du site qui n’a que les droits sur le site et pas un superutilisateur.

Donc après avoir créé la base de données, on se connecte en root et on crée l’utilisateur monblog à qui l’on donne accès à notre base de données monblogdb.

# mysql -u root -p
vous entrez votre mot de passe ...
mysql>CREATE USER 'monblog'@'localhost' IDENTIFIED BY '******';
mysql>GRANT USAGE ON * . * TO 'monblog'@'localhost' IDENTIFIED BY '******' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
mysql>GRANT ALL PRIVILEGES ON `monblogdb` . * TO 'monblog'@'localhost';

Etape 4 : Faire pointer le domaine vers le serveur

Dernière étape de ce tutoriel, il suffit de faire pointer le domaine vers l’IP du serveur.
Ça se passe chez votre registrar : OVH, Online, 1and1, Gandi …
En général, il faut se connecter à votre espace d’administration, sélectionner le nom de domaine et chercher « Zone DNS »
Dans la zone DNS, il y a plusieurs liens de type différents. Il faut chercher un lien de type [A] vers une IP et indiquer
dans ce champ l’IP de votre serveur web.

VN:F [1.9.22_1171]
Rating: 5.8/10 (6 votes cast)
VN:F [1.9.22_1171]
Rating: -1 (from 1 vote)
Héberger son site internet sur son serveur dédié debian, 5.8 out of 10 based on 6 ratings
Be Sociable, Share!

Soutenez le blog :)

Leave a Reply