Tem Card Fmarie
Google Adsense

Installer un serveur dédié Kimsufi pour les nuls

Categories: Général
Tags: No Tags
Comments: 3 Comments
Published on: 24 septembre 2013

Que l’on soit clair immédiatement, c’est un copier coller de l’excellent article http://blog.imgdev.net/webmasters/installer-un-serveur-dedie-kimsufi-pour-les-nuls-1.html

Installer un serveur kimsufi pour héberger ses sites web, voici ce dont va traiter cet article. Avec un tarif ovh particulièrement attractif, un serveur kimusufi est idéal pour l’hébergement d’un petit site ou d’un serveur de développement perso, et que l’on peut administrer facilement depuis le terminal ubuntu via un access ssh (et même depuis windows avec putty ssh)

On part pour ce tuto sur une distribution Debian 6 (squeeze) nue donc il va falloir tout installer depuis le début. Vérifiez quand même dans votre manager V5 que Debian 6 est installé, et si ce n’est pas encore le cas, faites le (3 clics).

Pour notre première connexion au serveur, on va lancer le terminal et écrire la commande suivante :

ssh root@xx.xx.xx.xx -p 22

ssh : tunnel qui permet de se connecter au serveur

root : identifiant par défaut pour la connexion au serveur

xx.xx.xx.xx : ip de votre serveur indiquée dans le mail reçu votre commande du kimsufi)

-p 22 : on se connecte avec ssh via le port par défaut qui est 22

On valide la commande…

Petite astuce à connaître : la commande « rm .ssh/known_hosts » permet d’effacer les anciennes clés ssh, si par exemple vous venez de réinstaller votre serveur et que le mot de passe est différent (et que vous avez un message d’erreur).

Ssh nous demande si l’on veut vraiment se connecter au serveur, on répond « yes » et on indique le mot de passe root reçu par email.

On obtient un truc dans ce genre :

root@vksxxxxxx:~#

Cela signifie que l’on est connecté en tant que root (administrateur) sur notre serveur. A partir de ce moment là, nous pouvons gérer complètement notre serveur via ssh. Attention donc à ne pas faire n’importe quoi :)

Première des choses à faire, mettre à jour le système. Des paquets plus réçents peuvent être disponible depuis la sortie de debian 6, on utilise une commande très simple :

apt-get update

On enchaine avec a commande upgrade qui va installer les paquets mis à jour qui ont été trouvés avec la commande précédente :

apt-get upgrade

Le terminal nous demande si on veut installer les paquets [Y/n], on répond oui (Y pour yes). A savoir que dans ce cas, le yes est en majuscule donc c’est le choix par défaut et nous ne sommes pas obligés d’écrire Y puis de valider. La touche entrée validera directement l’option Yes. Si l’on souhaite répondre non, là alors on écrira n pour dire non (n n’est pas en majuscule, donc pas par défaut, donc on doit le sélectionner). Voilà pour la parenthèse…

Donc, upgrade suivi de Yes, les mises à jour s’installent sur le serveur.

On peut prendre de bonnes habitudes et optimiser la sécurité du serveur en évitant de se connecter directement en root.

Créons plutôt un utilisateur :

adduser imgdev (NDLR : J’ai même gardé le nom user du site imgdev ^^ )

On indique un mot de passe « compliqué » de préférence (éviter les nom/prenoms/adresses/tel…). On n’est pas obligé d’indiquer les autres infos demandées, on valide avec la touche entrée jusqu’à revenir au shell root. Notez bien votre mot de passe…

Il est aussi préférable de modifier le mot de passe de l’utilisateur root (qui a déjà transité via email), c’est toujours bon de le changer pour être tranquille, avec la commande :

passwd root

On indique le nouveau mot de passe et on le confirme une deuxième fois sans oublier de le noter quelque part pour s’en rappeler…

Si le mot de passe root à bien été changé, on obtient le message suivant :

passwd: password updated successfully

Maintenant, on va sécuriser ssh pour pouvoir administrer notre serveur sans crainte. Pour cela on va changer le port ssh qui par défaut est 22. On va choisir un port entre 1023 et 65000 qui n’est pas utilisé. Par exemple, le port 1612 et on vérifie que ce port est libre :

netstat -a

Vous verrez plusieurs adresses ip suivies de :XX (XX étant le numéro de port). Pas de port 1612 en vue, on peut donc l’utiliser.

On va donc sécuriser ssh en éditant un fichier de configuration avec la commande :

vi /etc/ssh/sshd_config (NDLR : Je préfère nano mais c’set une question d’habitude)

Vi est un éditeur de fichier en ligne de commande; on peut modifier un fichier directement depuis le terminal. Par défaut à l’ouverture du fichier, on peut simplement lire le fichier. Pour le modifier on passe en mode « insertion » en appuyant sur la touche « i » du clavier. On obtiens un message au bas de la fenêtre qui nous informe que l’on est bien en mode insertion.

On retrouve la ligne « Port 22″ au début du fichier, et on remplace 22 par le port que l’on a choisi, ici dans l’exemple c’est 1612. Modifiez uniquement 22 par 1612, n’ajoutez pas de points, de virgules etc… Faîtes attention, c’est un fichier de configuration ;)

Une fois le port modifié, on sort du mode « insertion » (ou édition du fichier si vous préférez) avec la touche « echap » du clavier.

On utilise ensuite la touche / (slash) pour rechercher une expression dans le texte :

/PermitRootLogin puis entrée

La valeur par défaut est sur yes, il vaut mieux interdire la possibilité de se connecter directement en root. Et c’est pour cela que l’on a crée un utilisateur…

En passe en mode insertion (i), on remplace yes par no, touche echap et on se place deux lignes dessous pour rajouter une ligne dans ce fichier de configuration, qui va spécifier qui peut se connecter sur le serveur, ici l’user imgdev précédemment crée (mode insertion, i) :

AllowUsers imgdev

On ressort du mode insertion (échap) et on enregistre notre fichier…

Pour enregistrer un fichier avec vi :wq (deux points wq, le tout écrit en attaché), pour fermer sans enregistrer avec vi : :q!  (deux points q point d’exclamation, le tout écrit en attaché). On enregistre donc avec :wq puis on valide avec la touche entrée.

Étant donné que l’on a modifié la configuration de ssh, on va maintenant redémarrer ssh pour que les modifications soient prises en compte :

/etc/init.d/ssh restart

Avant de poursuivre, on peut activer la coloration syntaxique du code dans la console ssh :

vi /root/.bashrc

On dé-commente les lignes :

export LS_OPTIONS=’–color=auto’
eval « `dircolors` »
alias ls=’ls $LS_OPTIONS’
alias ll=’ls $LS_OPTIONS -l’
alias l=’ls $LS_OPTIONS -lA’

On sort du fichier tout en enregistrant avec :wq entrée.

On a sécurisé l’accès à ssh, c’est déja une bonne chose. Passons maintenant au serveur en lui-même, en installant quelques paquets qui vous serviront par la suite :

apt-get install nano zip unzip make gcc diff wget bzip2 linux-kernel-headers

On confirme l’installation de ces paquets avec la touche entrée…

Une fois que c’est fait, on redémarre la machine :

reboot

Le serveur à redémarré, on essaye de se connecter en root :

ssh root@IP.IP.IP.IP -p 22

Réponse du serveur ??? Héhé :

ssh: connect to host root@IP.IP.IP.IP -p 22: Connection refused

On voit ici que l’on ne peut plus se connecter en root sur le port 22, car on a précédemment spécifié un port différent de 22… On essaye à nouveau avec le port que l’on a choisi tout à l’heure (1612 dans l’exemple) :

ssh root@IP.IP.IP.IP -p 1612

Si votre terminal s’affole en empechant la connexion et en affichant un message « WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!… », une commande va vous permettre de pouvoir vous connecter :

rm .ssh/known_hosts

Vous pourrez ensuite vous connecter sur le port que l’on a spécifié ;) Mais cette fois, au lieu de se connecter directement en root, on va se connecter avec l’utilisateur que l’on a crée au tout début de cet article (imgdev dans l’exemple) :

ssh imgdev@IP.IP.IP.IP -p 1612

On confirme que l’on souhaite se connecter avec le nouvel utilisateur (yes … entrée) et on indique le mot de passe qui lui est associé (et non pas le mot de passe root, pas maintenant).

On retrouve l’invité de commande sous le pseudo choisi, maintenant on va passer en root avec la commande :

su

Et là on rentre le mot de passe de root (que l’on a modifié précédemment pour plus de sécurité…)

On est maintenant connecté sur notre nom d’utilisateur, avec les droits root. L’invité de commande ressemble à :

root@vksXXXXXX:/home/imgdevt#

On peut afficher la liste des répertoires dans le dossier dans le dossier où l’on se trouve avec

ls /

Les noms des dossiers sont colorés et nous permettent de s’y retrouver plus facilement dans l’arborescence des fichiers et dossiers.

Installation Apache

On commence par installer Apache, le coeur de notre serveur web :

apt-get install apache2 apache2-doc

On accepte l’installation de ces paquets avec entrée. Une fois les paquets installés, on peut aller vérifier qu’Apache est bien installé… On ouvre le navigateur et on se rend sur l’adresse de notre serveur (précisé dans l’email reçu après la commande ou bien après une réinstallation de la machine) :

http://adresse-de-mon-serveur-kimsufi

On obtiens un message :

It work’s!
This is the default web page for this server.
The web server software is running but no content has been added, yet.

Apache est donc bien installé sur notre serveur ;) On peut passer à sa configuration…

Configuration Apache

On se positionne dans le dossier d’apache :

cd /etc/apache2/

On peut afficher le contenu de ce dossier avec la commande ls. Rappelez vous que pour chacun des sites que l’on va créer, on va éditer un fichier de configuration dans le dossier sites-available (sites disponibles sur le serveur). Un autre dossier à retenir, sites-enabled, les sites disponibles sur le serveur ET qui sont en ligne.

Première chose, on va activer un module qui va nous servir, c’est le module apache de ré-écriture d’url, le mod rewrite :

a2enmod rewrite

Explications : avec a2en, on active(en… enable) un mod apache, avec a2dis (dis… disable) on désactive un mod. Donc ici, on active le mod apache qui s’appelle rewrite.

A savoir aussi, pour activer un site dans apache, on utilise a2ensite nomdusite et pour le désactiver a2dissite nomdusite. On ne va pas s’en servir tout de suite mais j’en profite pour vous apprendre quelques commandes qui vous serviront plus tard ;)

On n’oublie pas de relancer la configuration d’apache pour prendre en considération notre modification (l’ajout du mod rewrite) :

/etc/init.d/apache2 reload

Passons à la configuration d’apache pour améliorer un peu plus la sécurité du serveur. On édite le fichier apache2.conf :

vi apache2.conf

On se place tout en bas du fichier et on va rajouter quelques directives importantes :

(on descend en bas du fichier, on passe en mode insertion avec la touche i, on rajoute un petit commentaire # secure et en dessous on ajoute 3 lignes :  )

ServerSignature Off
ServerTokens Prod
ServerName vksxxxxxx.kimsufi.com

(on clique sur echap, puis :wq pour fermer et enregistrer)

ServerSignature Off permet de masquer la signature de votre serveur. Autrement, si l’on se rend sur http://adresse-de-mon-serveur/exemple, des informations concernant le serveur apparaissent. On les masque pour éviter de donner certaines infos aux pirates qui veulent attaquer notre site.

ServerTokens Prod permet de limiter la divulgation d’infos concernant notre serveur.

ServerName adresse-du-serveur pour spécifier le nom de notre serveur.

On vient de modifier la configuration d’apache, on doit alors le relancer pour que les modifications soit prises en compte :

/etc/init.d/apache2 reload

Installation Php

On poursuit avec l’installation d’une partie très importante pour nos sites web, j’ai nommé « php ». Php va nous servir à pouvoir héberger des sites « dynamiques ». La plupart des cms populaires ont besoin de php pour fonctionner.

Php s’installe avec des dépendances (pour installer le paquet A, il faut le paquet B, C etc…), on va donc l’installer avec cette ligne de commande :

(copiez le code en entier, c’est une seule et même ligne de commande, poursuivez l’installation des paquets avec entrée)

apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

On vérifie que php est bien installé ? On redémarre d’abord apache :

/etc/init.d/apache2 restart

Dans la première partie du tutoriel, on a vu que lorsque l’on se rend à l’adresse de notre serveur sur Firefox, on obtient une page « it works! ». C’est la page web par défaut de notre serveur, et elle se trouve dans /var/www/. On se dirige donc vers ce dossier :

cd /var/www/

On peut ensuite faire un ls pour afficher le contenu… on trouve un fichier nommé index.html .

Pour vérifier que php fonctionne bien, on peut déjà renommer index.html en index.php avec la commande :

mv index.html index.php

Et éditer ce fichier :

vi index.php

Sous le titre en <h1>, on peut rajouter un code php et vérifier que le code php est bien interprété par notre serveur :

(vous savez maintenant éditer / fermer / fermer+enregistrer avec vi…)

<html><body><h1>It works!</h1>
<?php
echo « Ok, php fonctionne ! »;
test();
echo « Test »;
?>
<p>This is the default web page for this server.</p>
<p>The web server software is running but no content has been added, yet.</p>
</body></html>

On se rend avec le navigateur sur l’adresse de notre serveur, on doit voir le message :

Ok, php fonctionne !

Php fonctionne, c’est bien… mais le echo « Test »; ne fonctionne pas… Le chargement du reste de la page est interrompu car la ligne test(); n’est pas reconnue et génère une erreur dans notre page. Pas très pratique si l’on comptais développer des sites web. L’affichage des erreurs doit être possible afin de réparer la page et obtenir un affiche complet de la page.

Configuration Php

On va alors configurer php et effectuer nos modifications dans le fichier php.ini (vous en avez sûrement déjà entendu parler…). On se place dans le bon dossier :

cd /etc/php5/apache2

On peut faire un ls pour voir le contenu du dossier (et voir qu’il existe bien un php.ini), passons directement à la configuration du php.ini :

vi php.ini

Rappel :

Lorsqu’on édite un fichier contenant beaucoup de lignes, on peut retrouver une expression (afin de la modifier ou voir son état) grâce à la touche slash (/) suivie du mot clé que l’on recherche. Si le mot clé est en plusieurs exemplaires dans le fichier on passe à l’expression suivante avec la touche n du clavier.

On modifie alors les lignes comme suit :

(exemple pour la première ligne : on recherche le mot clé /max_execution_timepuis touche entrée, touche i, on passe la valeur à 30, puis touche echap, faites de même pour les autres lignes)

max_execution_time = 30
max_input_time = 60
memory_limit = 64M
upload_max_filesize = 10M
register_globals = Off
display_errors = On
expose_php = Off

On désactive également certaines fonctions inutiles :

disable_functions = symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,passthru,escapeshellarg,escapeshellcmd

Veillez à ce que le code reste sur la même ligne dans votre php.ini ;)

Pour éviter les problèmes d’accents, on peut se rendre tout en bas du fichier et rajouter ce code pour activer utf8 par défaut :

mbstring.language=UTF-8
mbstring.internal_encoding=UTF-8
mbstring.http_input=UTF-8
mbstring.http_output=UTF-8
mbstring.detect_order=auto

Deux points wq pour fermer et sauvegarder. On a modifié la configuration du php.ini, on va alors recharger apache :

/etc/init.d/apache2 reload

On retourne dans le navigateur vérifier notre page web (la page index.php que l’on a modifié auparavant). On obtiens ce message :

Ok, php fonctionne ! Fatal error: Call to undefined function test() in /var/www/index.php on line 4

Tout va bien, l’erreur s’affiche, on peut donc la réparer vu qu’on sait qu’elle se trouve à la ligne 4. L’erreur en question, c’est la fonction test(); qui n’existe pas et qui retourne l’erreur.

On retourne dans l’édition de notre page index.php :

vi /var/www/index.php

On remplacer test(); par phpinfo(); (phpinfo est une fonction qui existe et ne doit pas retourner d’erreur)

On enregistre et on va vérifier ce qui est affiché sur la page web à l’adresse de notre serveur… Yes, la page s’affiche correctement, il n’y a aucune erreur sur la page, et plus bas, on retrouve bien notre echo « Test »;. Notre page php fonctionne donc parfaitement. Et le serveur php aussi ;)

Mais ce n’est pas fini… Pour pouvoir utiliser php confortablement et faire tourner la plupart des scripts du web, php doit communiquer avec « mysql »…

Installation MySql

Petite commande avant de commencer la partie Mysql, c’est la commande clearassez pratique et qui permet sans se déconnecter, de « vider la console » qui se remplit vite, vous avez remarqué ? ^^

Allez on passe à l’installation de Mysql :

apt-get install mysql-server mysql-client mysql-common

Pendant l’installation, la console va vous demander de définir un mot de passe pour le super-utilisateur mysql. Pensez à choisir un mot de passe assez compliqué pour sécuriser un max votre serveur(par exemple, mélanger chiffres/minuscules/majuscules). Confirmez le mot de passe une deuxième fois, et surtout notez le !

Une fois l’installation terminée, vous vous en doutez sûrement, on va configurer mysql :)

Configuration MySql

Vous n’avez pas encore pu mettre votre site en ligne après tout ce que l’on vient de faire ? C’est normal, un serveur dédié se configure de A à Z pour pouvoir être fonctionnel, contrairement à un hébergement mutualisé où l’on peut se connecter directement au ftp pour uploader son site web.

Allez un peu de courage :) On se positionne dans le dossier de mysql :

cd /etc/mysql

On édite le fichier de configuration de mysql :

vi my.cnf

Dans ce fichier, on change la langue de mysql (on remplace english par french), comme ceci :

language        = /usr/share/mysql/french

Puis on modifie certaines options :

key_buffer              = 32M
query_cache_limit       = 2M
query_cache_size        = 32M

On vérifie que ces deux lignes sont commentées (rajouter # devant l’option):

# log_bin
#expire_logs_days

On dé-commente ces deux options (enlever # devant l’option):

log_slow_queries       = /var/log/mysql/mysql-slow.log
long_query_time = 2

En dessous de la ligne skip-external-locking on rajoute quelques directives concernant l’encodage de caractères :

# utf8
default-character-set = utf8
default-collation = utf8_general_ci

On recherche ensuite cette partie :

[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock

On rajoute en dessous :

# utf8
default-character-set = utf8

Deux points wq, on ferme et on enregistre. On a fini de configurer mysql, mais pour que les modifications prennent effet, on redémarre mysql :

/etc/init.d/mysql restart

Une dernière étape pour sécuriser mysql, c’est la commande :

mysql_secure_installation

Indiquez le mot de passe root pour mysql que vous avez précisé lors de l’installation de mysql, et que vous avez noté :D

Ensuite, la console demande si vous souhaitez changer le mot de passe root, choisissez non (n), puis répondez oui aux questions suivantes (où bien pressez la touche entrée, puisque oui/Y est sélectionné par défaut).

Et pour finir, on recharge mysql :

/etc/init.d/mysql reload

On à fini avec mysql, une bonne chose de faite mais… pour administrer des bases de données, on a besoin d’un logiciel de type « phpmyadmin »…

Installation PhpMyAdmin

C’est la partie la plus simple; phpmyadmin s’installe avec cette commande :

apt-get install phpmyadmin

Pendant l’installation, la console demande quel serveur reconfigurer pour phpmyadmin, choisissez apache2 (n’appuyez pas sur entrée, appuyez sur la barre d’espace pour sélectionner apache, une petite étoile apparaît devant apache2, puis valider avec entrée). Il est aussi demandé si il faut reconfigurer la base de donnée, répondez oui.

Puis la console demande le mot de passe root mysql (celui que vous avez noté)… puis demande encore une fois de créer un mot de passe pour phpmyadmin et de le confirmer. (notez aussi ce mot de passe précieusement)

On peut maintenant vérifier que phpmyadmin est bien installé, en se rendant sur le navigateur à l’adresse :

http://adresse-de-mon-serveur/phpmyadmin

On peut se connecter avec l’identifiant root et le mot de passe root de mysql ;)

Installation Proftpd

Il nous manque un module pour effectuer aisément des transferts de fichiers sur notre serveur sans lancer shh : un module ftp, et pour cela on va installer Proftpd :

apt-get install proftpd

Pendant l’installation, proftpd demande de choisir le type de lancement, on sélectionne « indépendamment » (standalone si comme moi vous avez préféré tout laisser en anglais).

Maintenant qu’il est installé, on va le configurer. Rassurez vous, ce n’est pas l’étape la plus compliquée :D

Configuration Proftpd

On se place dans le dossier de proftpd :

cd /etc/proftpd/

N’hésitez pas à faire un ls afin de voir le contenu du dossier. On y trouve plusieurs fichiers de configuration dont proftpd.conf, c’est ce qui nous intéresse; on va l’éditer :

vi proftpd.conf

Vérifiez ces options dans votre fichier, modifiez les si besoin :

UseIPv6                         off
ShowSymlinks                    off

Dé-commentez les lignes (et mettez RequireValidShell sur on)  :

DefaultRoot                     ~
RequireValidShell               on

Tout en bas du fichier, on rajoute ces deux lignes :

AllowStoreRestart On
AllowRetrieveRestart On

Echap, fermez et enregistrez le fichier (:wq)

On vient de modifier la configuration de proftpd, donc on le ré-démarre pour qu’il prenne en compte nos dernières modifications :

/etc/init.d/proftpd restart

Vous pouvez lancer Filezilla et vous connecter avec l’user que l’on a crée dans la première partie :

hote : (adresse de votre serveur kimsufi)
identifiant : nom-de-votre-utilisateur (ex: imgdev)
mot de passe : le mot de passe de l’utilisateur
port : 21 (port ftp par défaut)

Filezilla doit arriver à se connecter à notre serveur ftp. On peut vérifier le nom d’utilisateur en retournant dans ssh, avec la commande ls /home . Vous devrez déja pouvoir retrouver votre nom d’utilisateur (si jamais vous l’avez déja oublié).

On peut créer un dossier « Test » dans le répertoire du serveur sur Filezilla. Puis dans ssh, on doit retrouver ce dossier « Test » avec ls /home/nom-de-votre-user . Vérifier en passant, que le transfert des fichiers fonctionne dans les deux sens (avec un fichier que vous avez sous la main…). Ça fonctionne ? Bravo !

On va modifier les répertoires de travail, configurer les DNS, et remplacer l’adresse du serveur kimsufi par un nom de domaine que l’on a choisi. Ensuite, notre serveur sera prêt :)

Allez … on commence par quoi ? Hum … (j’espère que vous avez du café lol)

Faire pointer le nom de domaine

Une adresse http://vksXXXXXX.kimsufi.com, c’est bien. Et c’est l’adresse internet de notre serveur donc indispensable. Mais vous avez un nom de domaine (url plus propre, plus lisible et plus facile à mémoriser) que vous souhaitez faire pointer sur votre kimsufi ?

Chez ovh, on se rend dans le manager. Bien entendu, on suppose que vous avez déja commandé votre domaine et qu’il apparaît dans la liste de vos services.

Pour faire pointer le nom de domaine sur le serveur kimsufi, il faut changer les dns du domaine par ceux du serveur kimsufi.

Cliquez dans votre manager sur le domaine à faire pointer sur le serveur, puis menu « Domaines & DNS » puis « Serveurs DNS » puis « Modification« .

On va modifier le dns primaire et le dns secondaire :

Primaire : adresse du serveur (ex: vksxxxxxx.ip-xx-xx-xx.eu)
Secondaire : ns.kimsufi.com

On valide notre modification, et le domaine que l’on à choisi pointera sur notre serveur dans les 48h, le temps de la propagation des dns. Et en parlant de DNS, on va aller les configurer sur notre serveur…

Configuration des DNS

On va récupérer l’adresse ip du dns secondaire de kimsufi. Ouvrez une nouvelle console et faites :

ping ns.kimsufi.com

Notez bien l’ip qui s’affiche, on va en avoir besoin ;)

Il faut maintenant créer une zone dns sur notre serveur, avec bind :

cd /etc/bind

Et modifier le fichier named.conf.local :

vi named.conf.local

En bas du fichier, on va rajouter une zone :

zone « mondomaine.fr » {
type master;
file « /etc/bind/db.mondomaine.fr »;
allow-transfer {213.186.33.199;};
allow-query{any;};
notify yes;
};

Indiquez bien le nom de domaine, ne laissez pas « mondomaine.fr » c’est juste un exemple. Dans allow-transfer, on met l’ip que l’on a récupéré avec le ping précédemment. On enregistre notre fichier et on ferme. Une fois qu’on a fait ça, on va modifier named.conf.options :

vi named.conf.options

Modifier la ligne :

listen-on { 127.0.0.1; };

par :

listen-on {any;};

Echap :wq … on va créer un fichier .db correspondant à notre domaine :

vi db.mondomaine.fr

Ouvrez maintenant votre éditeur de texte sur votre ordinateur (gedit par exemple) et copiez coller ceci :

; mondomaine.fr
$TTL    3600
@   IN  SOA vksXXXX.ip-XX-XX-XX.eu. root.mondomaine.fr. (
2011020906 ; SERIAL
3600; REFRESH
15M; RETRY
1W; EXPIRE
600 ) ; Negative Cache TTL
;
; NAMESERVERS
;
mondomaine.fr. IN       NS       vksXXXX.ip-XX-XX-XX.eu.
mondomaine.fr. IN       NS       ns.kimsufi.com.
;
; Nodes in domain
;
www       IN A         ip.ip.ip.ip
mail      IN A         ip.ip.ip.ip
ns1       IN A         ip.ip.ip.ip
smtp      IN A         ip.ip.ip.ip
pop       IN A         ip.ip.ip.ip
ftp       IN A         ip.ip.ip.ip
imap      IN A         ip.ip.ip.ip
mondomaine.fr.   IN  A   ip.ip.ip.ip
mondomaine.fr.   IN  MX  10 mail.mondomaine.fr.
;
; subdomains
;
*.mondomaine.fr. IN A ip.ip.ip.ip

Remplacez « mon-domaine.fr » par votre nom de domaine, remplacez « ip.ip.ip.ip » par l’ip de votre serveur (ovh vous a envoyé un mail contenant l’ip de votre serveur). Changez aussi « vksXXXX.ip-XX-XX-XX.eu » par l’adresse de votre serveur kimsufi. Mais veillez bien à ne pas modifier autre chose, ne pas enlevez les points à la fin des domaines par exemple ;)

Une fois que vous avez bien configuré ce fichier, copiez collez le contenu dans la console ssh, dans le fichier db.mondomaine.fr qu’on a crée. Puis fermez et enregistrez.

Avant toute chose, et pour bien prendre en compte toutes nos modifications, on relance bind

/etc/init.d/bind9 reload

On vérifie qu’il n’y a aucune erreur dans la configuration :

named-checkconf -z

La commande retourne quelques lignes commençant toutes par zone … Si il y a une erreur d’affiché, alors vous avez du vous tromper dans l’un des fichiers que l’on a modifié dans cette partie (si c’est le cas, reprenez l’article depuis le début et vérifiez que vous avez aucune faute).

Autrement, on peut enchaîner avec :

nslookup mondomaine.fr vksXXXX.ip-XX-XX-XX.eu

Précision concernant la syntaxe : nslookup mon-nom-de-domaine adresse-du-serveur

Si vous avez bien tout configuré, la commande retourne le nom du serveur, l’ip du serveur avec le port, le nom du serveur et l’adresse ip.

Et on peut maintenant vérifier, que notre domaine pointe bien sur notre kimsufi ;)

Répertoires de travail

À ce stade, notre nom de domaine pointe sur le dossier /var/www/ de notre serveur. Alors vous allez me dire, a quoi bon avoir crée un utilisateur ? On va remédier à cela …

On va déjà supprimer le dossier test :

cd /home/nom-de-votre-user
rmdir test

Et créer un répertoire www dans le répertoire de notre user :

mkdir www

On se place dans ce dossier www et on créer un fichier index.php :

cd www

vi index.php

Dans ce fichier (vide), on peut mettre :

<?php echo « home user www »; ?>

(vérifiez bien que ce sont des guillemets… ;) )

Maintenant, on va configurer apache de manière à ce que l’adresse principale de notre serveur pointe directement dans ce dossier, et non dans /var/www . Pour cela on va dans le répertoire d’apache (et on regarde le contenu avec ls) :

cd /etc/apache2
ls

C’est le dossier sites-enabled qui nous intéresse, il contient la configuration de sites activés sur notre serveur (enabled).

Dans ce dossier…

cd sites-enabled

ls

… se trouve un fichier par défaut (000-default), on va désactiver ce site par défault (qui redirige sur /var/www), avec cette commande :

a2dissite 000-default

On va le remplacer, en créant notre propre fichier de configuration :

vi nom-de-votre-user

Le fichier est vide, on va y mettre ce contenu :

<VirtualHost *:80>
ServerAdmin votreemail@exemple.com
ServerName www.monsite.fr
ServerAlias monsite.fr
DocumentRoot /home/mon-user/www

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

<Directory /home/mon-user/www>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Modifiez votre email, l’adresse de votre site dans servername, et l’addresse de votre site « sans www » dans serveralias. N’oubliez pas non plus de changer « <Directory /home/mon-user/www> » avec le nom de votre user. Puis on enregistre et on ferme (echap :wq)

On à désactivé la configuration du site par défaut, on va relancer apache :

/etc/init.d/apache2 restart

Voilà, désormais l’adresse de notre serveur pointe directement dans le dossier www de notre user :)

Mais il faut modifier les droits pour le dossier www de notre user, alors on va dans le dossier de l’user et on fait un ll (el el) pour voir à qui appartiennent les permissions de www :

cd /home/notre-user

ll

Pour le moment, www appartient à root, et on ne peut pas modifier/ajouter des fichiers dans ce dossier via filezilla.

On va donc donner les droits à notre user pour qu’il puisse gérer son dossier www :

chown -R notre-user www

chgrp -R notre-user www

Ces deux commandes viennent de changer le propriétaire et le groupe d’utilisateur. Notre user peut maintenant ajouter et modifier des fichiers dans /home/user/www via filezilla… Mais n’oubliez pas de relancer apache ;)

/etc/init.d/apache2 restart

Résumé :

Avec ce tutoriel, on a vu comment se connecter via ssh sur le serveur, comment editer un fichier avec l’éditeur vi (ouais c’est son nom), on a installé un serveur web fonctionnel (apache, php, mysql, phpmyadmin, proftpd) avec une configuration prête à l’emploi, on a fait pointer un nom de domaine et configuré le serveur dns… je trouve que c’est pas mal :)

Vous pouvez dès a présent installer votre site web ou votre blog sur le serveur, le temps que le nom de domaine pointe définitivement sur votre dédié virtuel (eh oui pour info, kimsufi = serveur dédié virtuel).

Mais je vous invite « vivement » à faire des recherches sur google afin de sécuriser votre serveur un peu plus (il y a de quoi faire si vous êtes maniaque et que vous connaissez apache/php/mysql sur le bout des doigts). Pour le sécuriser mais aussi, le personnaliser, selon vos besoin.. Il y a également d’autres modules qui vous intéresseront (webmin, fail2ban, un serveur mail, la liste est longue…).

Vous l’avez compris, ce tuto permet de monter « rapidement » un serveur kimsufi, et de passez de la distribution « nue » à un serveur « en état de marche » prêt à accueillir vos fichiers.

Copie du site : http://blog.imgdev.net/webmasters/installer-un-serveur-dedie-kimsufi-pour-les-nuls-1.html



3 Comments - Leave a comment
  1. VANCAPPEL dit :

    Bonjour,

    je suis dans la même situation que Francky.
    Je souhaiterais héberger sur le même serveur 2 sites différents, chacun pointant vers son répertoire respectif.
    http://mondomainenumero1.fr >>> pointe vers /home/nom-user/mondomainenumero1.fr
    http://mondomainenumero2.com >>> pointe vers /home/nom-user/mondomainenumero2.com

    Quelqu’un aurait-il svp trouvé un bon tuto ?

    Merci

  2. coucou dit :

    Merci énormement pour ce tuto précieux ( MON PRECIEUX ) qui m’a permit de configurer mon premier server dédicacé et qui me ressert régulierement depuis pour les configs.

  3. francky dit :

    Merci beaucoup pour ce tuto. Pour ma part je tente de mettre en place un second site sur le meme kimsufi. jusqu’a present mon 1ere site fonctionne parfaitement, mais pour la mise en place du second à l’etape:
    named-checkconf -z
    Erreur: zone site2.fr/IN: loading from master file /etc/bind/db.site2.fr failed: file not found
    zone site2.fr/IN: not loaded due to errors.
    _default/site2.fr/IN: file not found
    zone localhost/IN: loaded serial 2
    zone 127.in-addr.arpa/IN: loaded serial 1
    zone 0.in-addr.arpa/IN: loaded serial 1
    zone 255.in-addr.arpa/IN: loaded serial 1

    Alors que le fichier db.site2.fr est bien present….
    Une idée?

Leave a comment

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



Archives

Welcome , today is Vendredi, 18 avril 2014