8

Click here to load reader

Tutorial_ Créer un serveur web complet sous debian -

Embed Size (px)

Citation preview

Page 1: Tutorial_ Créer un serveur web complet sous debian -

15/03/13 Tutorial: Créer un serveur web complet sous debian - #1 Apache - La Ferme du web

www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html 1/8

TUTO APPLICATIONFACEBOOK

Créer une application Facebookde A à Z en PHP. API Facebook,viralité, monétisation ...

TUTO SYMFONY2

A travers le projet WatchMyDesk,apprenez à maîtriser leFramework PHP5 Symfony2.

CRÉATION SITE WEB

Création de sites web,applications Facebook surmesure, e-commerce,applications iPhone ...

08JAN

TUTORIAL: CRÉER UN SERVEUR WEB COMPLET SOUS DEBIAN - #1 APACHE

Publié le 08/01/09 à 08h48 par DJo

Voici un nouveau tutorial qui vous sera sans doute utile si vous venez d'installer la distribution linux Debian (Ou Ubuntu)sur votre serveur.

INTRODUCTION

OBJECTIF DE CE TUTORIAL

L'objectif du tutorial est d'obtenir un serveur linux debian permettant d'héberger et de gérer vos sites web PHP / MySQLà distance, uniquement avec un accès SSH.

Voici les différentes parties du tutorial qui seront divisées en 5 billets:

Configuration de Debian

Installation et configuration d'Apache 2

Installation et configuration de PHP 5

Installation et configuration de la base de données: MySQL

Installation de phpMyAdmin

Installation et configuration d'un serveur FTP: pureFTPd + MySQL

Installation et configuration d'un serveur d'email: Postfix + Courier

Mise en place d'un Webmail: RoundCube

Installation d'un script de Backup

Chercher

ACCUEIL

FORUM

LA FERME

Toutes les actus

S'inscrire

S'identif ier

Forum

Web Event

Contactez-nous

A propos

LES TUTOS

LA VEILLE TWITTER

LES ARCHIVES

NUAGE DE TAGS

SERVICES

Guide Hébergeur / Serveur

www.guide-hebergeur.fr

Comparer les offres d'hébergement Domaine, Mutualisé, VDS/VPS, Dédié

SeConnecter

Créerun compte

Page 2: Tutorial_ Créer un serveur web complet sous debian -

15/03/13 Tutorial: Créer un serveur web complet sous debian - #1 Apache - La Ferme du web

www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html 2/8

Un peu de sécurité serveur

PRÉ REQUIS

Pour réaliser ce tutorial, vous devrez au préalable avoir des connaissances en ligne de commande linux (Au moins les

commandes basiques: cd, mkdir, mv ...).

Disposer d'un client SSH (Comme Putty), d'un client FTP (Comme FileZilla), et bien sûr de votre serveur avec une

Debian fraichement installée.

Vous aurez aussi besoin d'au moins un nom de domaine pointant sur votre serveur.

CONFIGURATION DE DEBIAN

Ca y'est on entre dans le vif du sujet.

Votre distribution Debian est correctement installée (Pas besoin d'installer d'environnement graphique).

Ouvrez votre client SSH (Putty ou autre), et connectez-vous à votre serveur en mode root

(Note aux puristes: Je suis un fainéant, je n'utilise pas sudo, mais je vous recommande de ne pas faire comme moipour éviter les bêtises irréversibles)

Une fois connecté, je vous conseille de modifier directement le fichier .bashrc pour plus de confort:

root$ nano .bashrc

Dans le fichier, décommentez ou rajoutez les lignes suivantes:

if [ "$TERM" != "dumb" ]; then eval "̀dircolors -b̀" alias ls='ls --color=auto'

fi

# ls Aliasesalias ll='ls -alL'alias la='ls -A'

alias l='ls -CF'

Elles nous permettront d'utiliser des raccourcis, et modifiez aussi le 'PS1'

PS1="\u [\w] > "

Ctrl + X pour quitter nano, puis O (ou Y suivant la langue) pour sauvegarder et entrer pour valider le nom du fichier.

Il faut que la console actuelle prenne en compte nos modifications, tapez la commande suivante:

root$ source .bashrc

Et vous remarquerez que le curseur de votre console à changé. Il affichera désormais l'utilisateur logué en premier puis

entre crochet, le chemin du répertoire où vous vous trouvez.

Nous sommes prêts désormais à attaquer la configuration !

MISE À JOUR DE LA DISTRIBUTION ET SOURCES.LIST

Votre distribution de Debian n'est peut être pas la dernière version, nous allons donc tout mettre à jour maintenant.

Nous allons utiliser le plus bel outil de Debian: apt-get

root [~] > apt-get update

puis

root [~] > apt-get upgrade

répondez oui si il vous ai demandé d'installer les dernières versions des logiciels et enfin

root [~] > apt-get dist-upgrade

Mettez tout à jour si vous en avez besoin.

Ensuite, nous allons renseigner les sources des dépôts que l'on va utiliser plus tard.

root [~] > nano /etc/apt/sources.list

Ajoutez ou décommentez les lignes suivantes:

Page 3: Tutorial_ Créer un serveur web complet sous debian -

15/03/13 Tutorial: Créer un serveur web complet sous debian - #1 Apache - La Ferme du web

www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html 3/8

deb http://ftp.easynet.be/ftp/debian/ etch main non-free contribdeb http://security.debian.org/ etch/updates main contrib non-free

Vous pouvez choisir d'autres dépôts officiels.

Assurez-vous surtout de ne pas avoir uniquement la source CD-Rom comme dépot.

Après modifications du fichier sources.list, mettez à jour la liste des dépôts:

root [~] > apt-get update

Installez les librairies de bases:

root [~] > apt-get install build-essential

INSTALLATION ET CONFIGURATION D'APACHE 2

Commençons déjà par installer apache2, le serveur web.

root [~] > apt-get install apache2

Répondez oui pour installer les packages dépendants:

The following extra packages will be installed:

apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1 libexpat1 libmagic1 libpcre3 libpq4 libsqlite3-0 mime-support

Et voilà, apache2 est prêt à emploi ! Pour vérifier si tout s'est bien passé, ouvrez votre navigateur préféré et entrez l'IPde votre serveur. Vous devriez avoir le message suivant:

It works!

UN PETIT TOUR DANS LE FICHIER DE CONFIG D'APACHE

Nous allons faire quelques petites modifications dans la configuration de base d'apache2:

root [/var/www] > nano /etc/apache2/conf.d/charset

1) Changement du Charset

Si vous souhaitez que votre serveur web prenne en charge par défaut le charset utf-8 ou ISO-8859-1, je vous

recommande de décommenter la ligne suivante:

AddDefaultCharset UTF-8

Supprimez simplement le # devant la ligne.

Sauvegardez et quittez.

2) Fichiers index

Il faut spécifier à Apache les fichiers qu'il doit considérer comme des fichiers index et qui seront donc automatiquementappelés.

Pour faire plus propre, nous mettrons tous nos ajouts en terme de configuration dans le fichier httpd.confautomatiquement chargé par apache2.

root [/var/www] > nano /etc/apache2/httpd.conf

Ajoutez la ligne suivante en spécifiant les types de fichier index à prendre en compte:

DirectoryIndex index.html index.htm index.xhtml index.php

Dans ce même fichier, ajoutez le reverse-DNS de votre serveur ou à défaut localhost:

ServerName debian.domain.tld#ServerName localhost

3) Dossiers web personnels

Optionnellement, si vous souhaitez que chaque utilisateur de votre serveur linux dispose d'un espace web, vous pouvez

Page 4: Tutorial_ Créer un serveur web complet sous debian -

15/03/13 Tutorial: Créer un serveur web complet sous debian - #1 Apache - La Ferme du web

www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html 4/8

ajouter la ligne suivante:

UserDir www

Sauvegardez et quittez.

Dans la version 2.2 d'apache, il faut activer le module userdir, tapez:

root [/var/www] > a2enmod userdir

Ainsi vous pourrez accéder au contenu de l'espace web /home/NOMUSER/www/ à partir de l'adressehttp://www.votredomaine.com/~NOMUSER/

4) Reboot du serveur web

Pour qu'apache prenne en compte ces modifications, nous rebootons le serveur web:

root [/var/www/] > apache2ctl restart

Si tout s'est correctement déroulé, vous ne devriez avoir aucun message et votre serveur web devrait toujours êtreaccessible.

Nous aurons sans doute à retourner dans ces fichiers de configuration plus tard, pour le moment, passons aux virtualshost.

CONFIGURATION DES VHOSTS ET RÉPERTOIRES WEB

Apache créé le dossier /var/www/ où seront stockés vos sites web.

Nous allons commencer par déplacer le répertoire par défaut d'apache qui se trouve à la racine :

root [/var/www] > mkdir default-site

Puis modifiez le vhost par défaut en ouvrant le fichier /etc/apache2/sites-available/default.

Si le documentRoot se résume à /var/www, remplacez le par /var/www/default-site. Faire de même pour la directiveDirectory.

Sauvegarder et fermer ce fichier, puis ouvrez la version ssl, /etc/apache2/sites-available/default-ssl, et effectuer les

mêmes changements.

Puis, déplacez le fichier par défaut dans ce nouveau dossier :

root [/var/www/] > mv -f /var/www/index.html /var/www/default-site/index.html

Nous allons maintenant créer le répertoire où sera stocké notre site.

root [/var/www] > mkdir lafermeduweb

J'utiliserais lafermeduweb comme nom de répertoire dans tout le tutorial, dès que vous verrez ce nom de dossier,remplacez le par le nom de votre site.

Bon, notre serveur marche bien, mais pour le moment, nous ne pouvons que y accéder à partir de son IP. Pas très

pratique !

Nous allons créer des virtuals hosts dans apache pour que notre nom de domaine pointe directement sur le répertoireque nous venons de créer sur le serveur.

Créez un fichier index.html dans le répertoire que vous venez de créer.

root [/var/www/lafermeduweb] > nano index.html

Puis mettez une balise de titre juste pour tester si la redirection du domaine est bien effectuée.

<h1>Bienvenue sur mon nouveau site !</h1>

Sauvegardez (CTRL+X, Y ou O, Entrée) et quittez l'édition du fichier.

Comment faire pour afficher l'index.html lorsque l'on entre mon domaine ?

Page 5: Tutorial_ Créer un serveur web complet sous debian -

15/03/13 Tutorial: Créer un serveur web complet sous debian - #1 Apache - La Ferme du web

www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html 5/8

(1) L'utilisateur va entrer l'adresse de notre site dans son navigateur.

(2) Les serveurs DNS vont être interrogés pour connaître l'IP associée

(3) Notre serveur web est interrogé

(4) Les fichiers vHosts sont analysés par Apache, s'il trouve une correspondance avec l'adresse demandée, il appelle lefichier index du répertoire associé. Et la page est affichée au visiteur.

Créer les fichiers vHosts apache

Rendez-vous dans le répertoire /etc/apache2/sites-availab le puis créer le fichier vHost (Pour rester clair, il est conseillé

de faire un fichier vHost par domaine):

root [/etc/apache2/sites-available] > nano lafermeduweb.net

Et entrez les lignes suivantes:

<VirtualHost *:80> ServerAdmin postmaster [ at ] lafermeduweb.net

ServerName www.lafermeduweb.net ServerAlias *.lafermeduweb.net

DocumentRoot /var/www/lafermeduweb/ <Directory /var/www/lafermeduweb/> Options -Indexes FollowSymLinks MultiViews AllowOverride All </Directory>

ServerSignature Off</VirtualHost>

(Remplacez le [ at ] par un @ naturellement)

Sauvegardez et quittez.

Explications

ServerAdmin S'il y'a un problème, le serveur écrit un message à cette adresse.

ServerName Le nom doit domaine que vous souhaitez associer au serveur. Il doit être dans les DNS du serveur. Siaucun nom n'est spécifié, alors le serveur tente de déduire un nom en procédant à un "lookup inverse" à partir de

l'adresse IP.

ServerAlias Cette instruction permet d'ajouter d'autres domaines ou sous domaines qui prendront en compte le mêmefichier vHost.

DocumentRoot Le répertoire sur lequel apache redirigera les addresses spécifiées plus haut.

Directory Cette instruction permet d'ajouter des options et règles au répertoire web. Les options: -Indexes -> Permet de

désactiver le listing des fichiers si un utilisateur entre le nom d'un dossier sans index dans votre répertoire web.FollowSymLinks -> Active le suivis des liens symboliques dans ce répertoire. MultiViews -> Permet de dire à apache dechercher s'il existe des fichiers du même nom dans le répertoire en cas d'erreur 404.

Notre vHost est disponible mais il n'est pour le moment pas activé. Pour l'activer, il faut créer un lien symbolique dansle répertoire des sites activés d'apache:

root [/etc/apache2/sites-available] > a2ensite lafermeduweb.net

Et enfin, comme apache2 n'a pas pris en compte nos modifications, on le restart:

root [/etc/apache2/sites-available] > apache2ctl restart

C'est l'heure du test !

Tapez votre nom de domaine dans votre navigateur web favoris:

It works!

Page 6: Tutorial_ Créer un serveur web complet sous debian -

15/03/13 Tutorial: Créer un serveur web complet sous debian - #1 Apache - La Ferme du web

www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html 6/8

25 Commentaires linux - tutorials - cours - debian - apache - serveur

J’aime 38 personnes aiment ça. Inscription pour voir ce que vos amis aiment.

2

TweeterTweeter

17

1 2

Suivant votre distribution, vous pouvez retomber sur le même résultat que tout à l'heure, le domaine pointe bien sur leserveur mais pas sur le bon répertoire.

C'est normal, il faut commenter une ligne dans le vHost par défaut:

root [/etc/apache2/sites-enabled] > nano /etc/apache2/sites-enabled/000-default

#RedirectMatch ̂ /$ /apache2-default/

Ajoutez un # devant RedirectMatch (Ligne 17) pour ne pas être redirigé systématiquement sur le répertoire apache2-default/

On re reboot !

root [/etc/apache2/sites-enabled] > apache2ctl restart

Et on re test:

Bienvenue sur mon nouveau site!Ca marche !

CONCLUSION DE CETTE PARTIE 1

Votre serveur web est opérationnel !

Dans le prochain épisode, nous verrons comment installer et configurer PHP5 et MySQL.

Aide & Questions: Pour tous problèmes ou questions à propos de ce tutorial, merci d'utiliser le topic dédié dans leforum de La Ferme du Web

A VOIR AUSSI SUR LE MÊME SUJET:

Apprendre Ruby on Rails avec La Ferme du Web - Partie 1

Apprendre Ruby on Rails avec La Ferme du Web - Partie 2

Ubersvn - Une application complète de gestion de Subversion sociale

Tutorial: Créer un serveur web complet sous debian - #4 Postfix et Courier

Tutorial: Créer un serveur web complet sous debian - #3 pureFTPd

Baraguiné par parweb le 14/01/09 à 18h34

Salut je pense avoir bien suivis ton tutoriel en tout cas les serveurs apache et php et mysqlfonctionnent très bien mais c'est au niveau des vHost que ça commence a merder.

enfaîte jais un serveur dédié kimsufi du coup une adresse du genre xxxxx.kimsufi.com

seulement quand je vais sur l'URL http://xxxxx.kimsufi.com il me revoit sur le dossier/var/www/ au lieu de /var/www/sites/dailymatons/alors que jais créé un vHost xxxxx.kimsufi.com que jais ensuite activer, qui contient :

ServerAdmin [email protected]

ServerName xxxxx.kimsufi.comServerAlias *.kimsufi.comDocumentRoot /var/www/sites/dailymatons/

Options -Indexes FollowSymLinks MultiViewsAllowOverride All

ServerSignature Off

Hebergement Serveurs

www.Oxito.com

Des offres simples, un hébergement facile à gérer, un support attentif

Page 7: Tutorial_ Créer un serveur web complet sous debian -

15/03/13 Tutorial: Créer un serveur web complet sous debian - #1 Apache - La Ferme du web

www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html 7/8

et jais bien sur commenter la ligne dans le fichier defaut dans le dossier /etc/sites-available/ :#RedirectMatch /̂$ /apache2-default/

Mais ce qui m'intrigue c'est justement ce fichier defaut qui contient lui aussi un sur le dossier /var/www/ faut il que jel'enlève ?

pWb

Baraguiné par parweb le 14/01/09 à 18h36

oula il ma enlevé les balises xml des vHosts dans mon précédent commentaire :/

ça ira quand même ?

Baraguiné par DJo le 14/01/09 à 19h57

Salut, est-ce que tu pourrais poster dans le forum ? C'est justement pour ce genre desoucis avec les commentaires que j'ai créé un topic dédié :)

http://forum.lafermeduweb.net/sujet-11-tutorial-creer-serveur-web-complet-sous-debian

Merci !

Baraguiné par parweb le 15/01/09 à 11h49

ok ca marche ;)

Baraguiné par Facebook User le 01/08/09 à 19h33

Salut merci pour le tuto. Je pense avoir bien suivi à la lettre tes explications cependant je

rencontre actuellement un souci.

Quoi que je fasse j'ai toujours "It works!" et rien d'autre et concernant ce fichier "/etc/apache2/sites-available/000-default " à modifier, il ai vide ( surement ce qui poseproblème ? ).

Une solutions ? merci d'avance.

Baraguiné par Ouark le 02/08/09 à 15h28

Et dans /etc/apache2/sites-enabled/000-default ? à la place de sites-available.

Baraguiné par Facebook User le 02/08/09 à 19h48

dans "/etc/apache2/sites-enabled/000-default" tout est ok et en modifiant le chemin "document root et directory " après reload apache je tombe bien sur ma page " bienvenuesur ... " . est ce normal ? comment régler le problème ?

Baraguiné par Ouark le 02/08/09 à 20h51

C'est une erreur dans le tuto, c'est bien dans sites-enabled qu'il faut l'editer.

Baraguiné par Facebook User le 03/08/09 à 10h54

ok merci

Baraguiné par Facebook User le 01/09/09 à 18h04

Bon apres avoir suivit ce tuto j'ai perdu enormement de temps, pensans qu'avec cela j'arriverai a configurer mon

Page 8: Tutorial_ Créer un serveur web complet sous debian -

15/03/13 Tutorial: Créer un serveur web complet sous debian - #1 Apache - La Ferme du web

www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html 8/8

1 2

serveur web assez facilement, je suis au final trés décu de voir qu'il faut 15 pages decodes, donc enormement ne marchent pas suivant la version qu'on as, pour finalementarriver a... rien, je retourne sous windaube qui, malgres qu'il soit pas super optimisé,marche avec 5min de config...

Baraguiné par Loudgi le 01/09/09 à 20h47

Bonjour,

Déjà grand merci pour ce tuto qui aide pas mal, et qui à dû prendre également pas mal de

temps.

Toute fois, il est vrai quelques changements au tuto serait nécessaires en raison despetits probs rencontrés.

Pour ma part je partage cette info en espérant que ça aide plus d'un :

root [/var/www] >apache2 -k restartapache2: bad user name ${APACHE_RUN_USER}

Solution ? root [/var/www] >apache2ctl restart

Et voila :-) si les autres peuvent partager également c'est super.

A plus et bon courage à tous :-)

Baraguiné par traxedo le 10/09/09 à 17h10

Salut,

Incroyable, ça marche ! Je n'y croyais pas du tout... J'en ai fait des tutos, mais c'est le tiensle meilleur. Juste une petite erreur qui est corrigé en commentaires (/etc/apache2/sites-enabled/000-default à la place de sites-available.)

Et une petite précision que tu n'as pas donnée pour éviter depuis internet le "Forbidden,you don't have permission" ---> ouvrez le port 80 de votre freebox ou autres bidules box.

INCROYABLE, ÇA MARCHE ! Merci à toi ô grand manitou du web, t'es le meilleur !! Tu aurai un système de dons,t'en aurai eu un direct ! ^^

Baraguiné par DJo le 10/09/09 à 19h21

Content que cela t'ai servi !J'ai corrigé pour le sites-enabled.

Concernant les dons, c'est gentil, mais effectivement, je n'ai pas envie d'être un mendiantdu web lol. Par contre je ne suis pas contre la désactivation d'adblock et un petit clic pub :D

Bon courage pour la suite ;)

Baraguiné par traxedo le 12/09/09 à 07h52

Je viens de tester ton tuto sur une Debian fraîche d'aujourd'hui : horrible! Ils ont tout changédans les fichiers, pratiquement rien n'est pareil et donc le débutant ne s'y retrouvera pas...

J'ai pris la Debian stable pour amd64 5.03 -> la toute dernière donc.

Je n'aime pas ce genre d'évolutions sur linux... Si avancer c'est renier le passé et oubliétoutes les bonnes contribs comme cet excellent tuto, linux va définitvement me dégouter...

Imagine que je fasse comme toi, et que ce qui marchait à l'instant T, je le met sur papier ou dans un fichier, essayede le réutiliser 4ans après et puis... oups... tout à changé !

J'iame pas bien ce genre d'avancé... Il faut toujours avancer, mais sans oublier le passé. Cela m'inquiète de voirque ton tuto n'est donc plus utilisable avec la toute drnière debian 5.03 amd64.

Si tu as l'occasion et le moyen, essaye de voir si ce n'est pas moi qui hallucine... J'espère pas en tout cas.

AJOUTER UN COMMENTAIRE

Pour poster un commentaire, vous devez être identifié. Vous pouvez choisir parmi ces trois méthodes d'identification:

Compte la Ferme du Web

Identifiez-vousInscrivez-vous

Compte Facebook Compte Twitter

LaFermeDuWeb.net par Novaway

Tous droits réservés © 2008-2012 - Mentions légales