Tutorial - Créer Un Serveur Web Complet Sous Debian
Tutorial - Créer Un Serveur Web Complet Sous Debian
Tutorial - Créer Un Serveur Web Complet Sous Debian
Tutorial: Crer un serveur web complet sous debian - #1 Apache - La Ferme du web
TUTO SYMFONY2
Crer une application Facebook de A Z en PHP. API Facebook, viralit, montisation ...
Cration de sites web, applications Facebook sur mesure, e-commerce, applications iPhone ...
08 JAN
Chercher
ACCUEIL FORUM LA FERME Toutes les actus S'inscrire S'identifier Forum Web Event Contactez-nous A propos LES TUTOS LA VEILLE TWITTER
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'hberger et de grer vos sites web PHP / MySQL distance, uniquement avec un accs SSH. Voici les diffrentes parties du tutorial qui seront divises 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 donnes: 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
www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html
1/8
15/03/13
Un peu de scurit serveur
Tutorial: Crer un serveur web complet sous debian - #1 Apache - La Ferme du web
PR REQUIS Pour raliser ce tutorial, vous devrez au pralable 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 sr de votre serveur avec une Debian fraichement installe. 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 installe (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 fainant, je n'utilise pas sudo, mais je vous recommande de ne pas faire comme moi pour viter les btises irrversibles) Une fois connect, je vous conseille de modifier directement le fichier .bashrc pour plus de confort: r o o t $n a n o. b a s h r c Dans le fichier, dcommentez ou rajoutez les lignes suivantes: i f[" $ T E R M "! =" d u m b "] ;t h e n e v a l" ` d i r c o l o r sb ` " a l i a sl s = ' l sc o l o r = a u t o ' f i #l sA l i a s e s a l i a sl l = ' l sa l L ' a l i a sl a = ' l sA ' a l i a sl = ' l sC F ' Elles nous permettront d'utiliser des raccourcis, et modifiez aussi le 'PS1' P S 1 = " \ 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: r o o t $s o u r c e. b a s h r c Et vous remarquerez que le curseur de votre console chang. Il affichera dsormais l'utilisateur logu en premier puis entre crochet, le chemin du rpertoire o vous vous trouvez. Nous sommes prts dsormais attaquer la configuration ! MISE JOUR DE LA DISTRIBUTION ET SOURCES.LIST Votre distribution de Debian n'est peut tre pas la dernire version, nous allons donc tout mettre jour maintenant. Nous allons utiliser le plus bel outil de Debian: apt-get r o o t[ ~ ]>a p t g e tu p d a t e puis r o o t[ ~ ]>a p t g e tu p g r a d e rpondez oui si il vous ai demand d'installer les dernires versions des logiciels et enfin r o o t[ ~ ]>a p t g e td i s t u p g r a d e Mettez tout jour si vous en avez besoin. Ensuite, nous allons renseigner les sources des dpts que l'on va utiliser plus tard. r o o t[ ~ ]>n a n o/ e t c / a p t / s o u r c e s . l i s t Ajoutez ou dcommentez les lignes suivantes:
www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html
2/8
15/03/13
Tutorial: Crer un serveur web complet sous debian - #1 Apache - La Ferme du web
d e bh t t p : / / f t p . e a s y n e t . b e / f t p / d e b i a n /e t c hm a i nn o n f r e ec o n t r i b d e bh t t p : / / s e c u r i t y . d e b i a n . o r g /e t c h / u p d a t e sm a i nc o n t r i bn o n f r e e Vous pouvez choisir d'autres dpts officiels. Assurez-vous surtout de ne pas avoir uniquement la source CD-Rom comme dpot. Aprs modifications du fichier sources.list, mettez jour la liste des dpts: r o o t[ ~ ]>a p t g e tu p d a t e Installez les librairies de bases: r o o t[ ~ ]>a p t g e ti n s t a l lb u i l d e s s e n t i a l
r o o t[ ~ ]>a p t g e ti n s t a l la p a c h e 2 Rpondez oui pour installer les packages dpendants: T h ef o l l o w i n ge x t r ap a c k a g e sw i l lb ei n s t a l l e d : a p a c h e 2 m p m w o r k e ra p a c h e 2 u t i l sa p a c h e 2 . 2 c o m m o nl i b a p r 1l i b a p r u t i l 1 l i b e x p a t 1l i b m a g i c 1l i b p c r e 3l i b p q 4l i b s q l i t e 3 0m i m e s u p p o r t Et voil, apache2 est prt emploi ! Pour vrifier si tout s'est bien pass, ouvrez votre navigateur prfr et entrez l'IP de 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: r o o t[ / v a r / w w w ]>n a n o/ e t c / a p a c h e 2 / c o n f . d / c h a r s e t 1) Changement du Charset Si vous souhaitez que votre serveur web prenne en charge par dfaut le charset utf-8 ou ISO-8859-1, je vous recommande de dcommenter la ligne suivante: A d d D e f a u l t C h a r s e tU T F 8 Supprimez simplement le # devant la ligne. Sauvegardez et quittez.
2) Fichiers index Il faut spcifier Apache les fichiers qu'il doit considrer comme des fichiers index et qui seront donc automatiquement appels. Pour faire plus propre, nous mettrons tous nos ajouts en terme de configuration dans le fichier httpd.conf automatiquement charg par apache2. r o o t[ / v a r / w w w ]>n a n o/ e t c / a p a c h e 2 / h t t p d . c o n f Ajoutez la ligne suivante en spcifiant les types de fichier index prendre en compte: D i r e c t o r y I n d e xi n d e x . h t m li n d e x . h t mi n d e x . x h t m li n d e x . p h p Dans ce mme fichier, ajoutez le reverse-DNS de votre serveur ou dfaut localhost: S e r v e r N a m ed e b i a n . d o m a i n . t l d # S e r v e r N a m el o c a l h o s t
3) Dossiers web personnels Optionnellement, si vous souhaitez que chaque utilisateur de votre serveur linux dispose d'un espace web, vous pouvez
www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html
3/8
15/03/13
ajouter la ligne suivante: U s e r D i rw w w Sauvegardez et quittez.
Tutorial: Crer un serveur web complet sous debian - #1 Apache - La Ferme du web
Dans la version 2.2 d'apache, il faut activer le module userdir, tapez: r o o t[ / v a r / w w w ]>a 2 e n m o du s e r d i r Ainsi vous pourrez accder au contenu de l'espace web /home/NOMUSER/www/ partir de l'adresse http://www.votredomaine.com/~NOMUSER/
4) Reboot du serveur web Pour qu'apache prenne en compte ces modifications, nous rebootons le serveur web: r o o t[ / v a r / w w w / ]>a p a c h e 2 c t lr e s t a r t Si tout s'est correctement droul, vous ne devriez avoir aucun message et votre serveur web devrait toujours tre accessible. Nous aurons sans doute retourner dans ces fichiers de configuration plus tard, pour le moment, passons aux virtuals host.
CONFIGURATION DES VHOSTS ET RPERTOIRES WEB Apache cr le dossier /var/www/ o seront stocks vos sites web. Nous allons commencer par dplacer le rpertoire par dfaut d'apache qui se trouve la racine : r o o t[ / v a r / w w w ]>m k d i rd e f a u l t s i t e Puis modifiez le vhost par dfaut en ouvrant le fichier /etc/apache2/sites-available/default. Si le documentRoot se rsume /var/www, remplacez le par /var/www/default-site. Faire de mme pour la directive Directory. Sauvegarder et fermer ce fichier, puis ouvrez la version ssl, /etc/apache2/sites-available/default-ssl, et effectuer les mmes changements. Puis, dplacez le fichier par dfaut dans ce nouveau dossier : r o o t[ / v a r / w w w / ]>m vf/ v a r / w w w / i n d e x . h t m l/ v a r / w w w / d e f a u l t s i t e / i n d e x . h t m l
Nous allons maintenant crer le rpertoire o sera stock notre site. r o o t[ / v a r / w w w ]>m k d i rl a f e r m e d u w e b J'utiliserais lafermeduweb comme nom de rpertoire dans tout le tutorial, ds 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 accder partir de son IP. Pas trs pratique ! Nous allons crer des virtuals hosts dans apache pour que notre nom de domaine pointe directement sur le rpertoire que nous venons de crer sur le serveur. Crez un fichier index.html dans le rpertoire que vous venez de crer. r o o t[ / v a r / w w w / l a f e r m e d u w e b ]>n a n oi n d e x . h t m l Puis mettez une balise de titre juste pour tester si la redirection du domaine est bien effectue. < h 1 > B i e n v e n u es u rm o nn o u v e a us i t e! < / h 1 > Sauvegardez (CTRL+X, Y ou O, Entre) et quittez l'dition du fichier.
Comment faire pour afficher l'index.html lorsque l'on entre mon domaine ?
www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html
4/8
15/03/13
Tutorial: Crer un serveur web complet sous debian - #1 Apache - La Ferme du web
(1) L'utilisateur va entrer l'adresse de notre site dans son navigateur. (2) Les serveurs DNS vont tre interrogs pour connatre l'IP associe (3) Notre serveur web est interrog (4) Les fichiers vHosts sont analyss par Apache, s'il trouve une correspondance avec l'adresse demande, il appelle le fichier index du rpertoire associ. Et la page est affiche au visiteur.
Rendez-vous dans le rpertoire /etc/apache2/sites-availab le puis crer le fichier vHost (Pour rester clair, il est conseill de faire un fichier vHost par domaine): r o o t[ / e t c / a p a c h e 2 / s i t e s a v a i l a b l e ]>n a n ol a f e r m e d u w e b . n e t Et entrez les lignes suivantes: < V i r t u a l H o s t* : 8 0 > S e r v e r A d m i np o s t m a s t e r[a t]l a f e r m e d u w e b . n e t S e r v e r N a m ew w w . l a f e r m e d u w e b . n e t S e r v e r A l i a s* . l a f e r m e d u w e b . n e t D o c u m e n t R o o t/ v a r / w w w / l a f e r m e d u w e b / < D i r e c t o r y/ v a r / w w w / l a f e r m e d u w e b / > O p t i o n sI n d e x e sF o l l o w S y m L i n k sM u l t i V i e w s A l l o w O v e r r i d eA l l < / D i r e c t o r y > S e r v e r S i g n a t u r eO f f < / V i r t u a l H o s t > (Remplacez le [ at ] par un @ naturellement) Sauvegardez et quittez.
Explications
ServerAdmin S'il y'a un problme, 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. Si aucun nom n'est spcifi, alors le serveur tente de dduire un nom en procdant 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 mme fichier vHost. DocumentRoot Le rpertoire sur lequel apache redirigera les addresses spcifies plus haut. Directory Cette instruction permet d'ajouter des options et rgles au rpertoire web. Les options: -Indexes -> Permet de dsactiver le listing des fichiers si un utilisateur entre le nom d'un dossier sans index dans votre rpertoire web. FollowSymLinks -> Active le suivis des liens symboliques dans ce rpertoire. MultiViews -> Permet de dire apache de chercher s'il existe des fichiers du mme nom dans le rpertoire en cas d'erreur 404.
Notre vHost est disponible mais il n'est pour le moment pas activ. Pour l'activer, il faut crer un lien symbolique dans le rpertoire des sites activs d'apache: r o o t[ / e t c / a p a c h e 2 / s i t e s a v a i l a b l e ]>a 2 e n s i t el a f e r m e d u w e b . n e t Et enfin, comme apache2 n'a pas pris en compte nos modifications, on le restart: r o o t[ / e t c / a p a c h e 2 / s i t e s a v a i l a b l e ]>a p a c h e 2 c t lr e s t a r t C'est l'heure du test ! Tapez votre nom de domaine dans votre navigateur web favoris:
It works!
www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html 5/8
15/03/13
Tutorial: Crer un serveur web complet sous debian - #1 Apache - La Ferme du web
Suivant votre distribution, vous pouvez retomber sur le mme rsultat que tout l'heure, le domaine pointe bien sur le serveur mais pas sur le bon rpertoire. C'est normal, il faut commenter une ligne dans le vHost par dfaut: r o o t[ / e t c / a p a c h e 2 / s i t e s e n a b l e d ]>n a n o/ e t c / a p a c h e 2 / s i t e s e n a b l e d / 0 0 0 d e f a u l t # R e d i r e c t M a t c h^ / $/ a p a c h e 2 d e f a u l t / Ajoutez un # devant RedirectMatch (Ligne 17) pour ne pas tre redirig systmatiquement sur le rpertoire apache2default/ On re reboot ! r o o t[ / e t c / a p a c h e 2 / s i t e s e n a b l e d ]>a p a c h e 2 c t lr e s t a r t Et on re test:
Aide & Questions: Pour tous problmes ou questions propos de ce tutorial, merci d'utiliser le topic ddi dans le forum de La Ferme du Web
Hebergement Serveurs
www.Oxito.com Des offres simples, un hbergement facile grer, un support attentif
A VOIR AUSSI SUR LE MME 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 complte de gestion de Subversion sociale Tutorial: Crer un serveur web complet sous debian - #4 Postfix et Courier Tutorial: Crer un serveur web complet sous debian - #3 pureFTPd
25 Commentaires
Jaime
17
Tw eeter
2
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 mysql fonctionnent trs bien mais c'est au niveau des vHost que a commence a merder. enfate jais un serveur ddi 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.com ServerAlias *.kimsufi.com DocumentRoot /var/www/sites/dailymatons/ Options -Indexes FollowSymLinks MultiViews AllowOverride All ServerSignature Off
www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html
6/8
15/03/13
Tutorial: Crer un serveur web complet sous debian - #1 Apache - La Ferme du web
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 je l'enlve ? pWb
Baraguin par parweb le 14/01/09 18h36
oula il ma enlev les balises xml des vHosts dans mon prcdent commentaire :/ a ira quand mme ?
Salut, est-ce que tu pourrais poster dans le forum ? C'est justement pour ce genre de soucis avec les commentaires que j'ai cr un topic ddi :) http://forum.lafermeduweb.net/sujet-11-tutorial-creer-serveur-web-complet-sous-debian Merci !
ok ca marche ;)
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 pose problme ? ). Une solutions ? merci d'avance.
Baraguin par Ouark le 02/08/09 15h28
dans "/etc/apache2/sites-enabled/000-default" tout est ok et en modifiant le chemin " document root et directory " aprs reload apache je tombe bien sur ma page " bienvenue sur ... " . est ce normal ? comment rgler le problme ?
C'est une erreur dans le tuto, c'est bien dans sites-enabled qu'il faut l'editer.
ok merci
Bon apres avoir suivit ce tuto j'ai perdu enormement de temps, pensans qu'avec cela j'arriverai a configurer mon
www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html
7/8
15/03/13
Tutorial: Crer un serveur web complet sous debian - #1 Apache - La Ferme du web
serveur web assez facilement, je suis au final trs dcu de voir qu'il faut 15 pages de codes, donc enormement ne marchent pas suivant la version qu'on as, pour finalement arriver a... rien, je retourne sous windaube qui, malgres qu'il soit pas super optimis, marche avec 5min de config...
Bonjour, Dj 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 ncessaires en raison des petits probs rencontrs. Pour ma part je partage cette info en esprant que a aide plus d'un : root [/var/www] >apache2 -k restart apache2: 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 tiens le meilleur. Juste une petite erreur qui est corrig en commentaires (/etc/apache2/sitesenabled/000-default la place de sites-available.) Et une petite prcision que tu n'as pas donne 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 systme 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 mendiant du web lol. Par contre je ne suis pas contre la dsactivation 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 frache d'aujourd'hui : horrible! Ils ont tout chang dans les fichiers, pratiquement rien n'est pareil et donc le dbutant ne s'y retrouvera pas... J'ai pris la Debian stable pour amd64 5.03 -> la toute dernire 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 dfinitvement me dgouter... Imagine que je fasse comme toi, et que ce qui marchait l'instant T, je le met sur papier ou dans un fichier, essaye de le rutiliser 4ans aprs et puis... oups... tout chang ! J'iame pas bien ce genre d'avanc... Il faut toujours avancer, mais sans oublier le pass. Cela m'inquite de voir que ton tuto n'est donc plus utilisable avec la toute drnire debian 5.03 amd64. Si tu as l'occasion et le moyen, essaye de voir si ce n'est pas moi qui hallucine... J'espre pas en tout cas.
AJOUTER UN COMMENTAIRE Pour poster un commentaire, vous devez tre identifi. Vous pouvez choisir parmi ces trois mthodes d'identification:
Compte Facebook
Compte Twitter
Identifiez-vous Inscrivez-vous
www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html
8/8