Installer Un Serveur web linux Fedora de A à www

Tout au long de ce tutoriel je vais vous apprendre à installer un serveur web avec la distribution linux Fedora.

Lorsque les commandes commencent par un $, c’est que je suis un simple utilisateur si non c’est un # et je suis un super utilisateur, dans tous les cas il ne faut pas recopier le $ ou le # pour exécuter la commande.

Etape 1

Etape 2

Le gros avantage c’est que tout est en français, de plus l’installation permet d’utiliser la souris (Qui à dit que linux c’est compliqué ?).

  • Montage de l’image disque dans Virtual box ou installation sur une machine dédiée (dans ce cas il faut démarrer sur le cd).
  • Sélection du type d’installation : (je choisis de n’installer que le noyau et la couche réseau sans l’interface graphique)
  • Je décide d’ajouter « fedora 15 repository i-386 » en dépôt

Etape 3

  • Redémarrage de la machine suite à l’installation de l’os
  • Redémarrage de l’interface réseau pour l’attribution d’une ip (commande : # service network restart)

Création d’un utilisateur pour mes besoins personnels avec la commande :

# adduser luc

ensuite

# passwd luc

  • Prise de connaissance de l’IP attribuée avec « ifconfig » en l’occurrence c’est l’ip 192.168.1.106 qui m’a été attribuée
  • Comme le protocole SSH est automatiquement disponible et pour avoir plus de confort notamment le copier collé je me connecte via le logiciel « Putty » (commande : ssh root@192.168.1.106 en tant qu’utilisateur root)
  • Je réalise une commande : « # yum update » pour être sûr d’avoir la dernière version de linux et des ces composants
  • Installation de man (manuel d’utilisation) avec la commande # yum install man
  • Installation de nano comme éditeur de texte # yum install nano
  • Comme la machine que j’utilise va être un serveur web il est judicieux quelle soit avec une IP fixe pour cela je me rend dans le dossier sysconfig avec la commande : $ cd /etc/sysconfig , je vérifie que la directive NETWORKING est à « yes » grâce à la commande $ nano network
  • Je me rends dans le dossier network-scripts puis dans le fichier ifcfg-eth0
  • (celui de la carte réseau) pour appliquer les réglages :

DEVICE=eth0

TYPE=Ethernet

BOOTPROTO=none

ONBOOT=yes

USERCTL=yes

IPADDR=192.168.1.106

GATEWAY=192.168.1.254

NETMASK=255.255.255.0

DNS1= 212.27.40.240

  • Comme je veux que network soit lancé au démarrage de la machine j’utilise la commande : # su -lc ‘chkconfig network on’
  • Je redémarre ma machine pour appliquer les réglages avec la commande $ reboot
  • Apres le redémarrage j’exécute la commande $ ifconfig qui me renvoi :

Link encap:Ethernet HWaddr 08:00:27:F7:DE:DD

inet adr:192.168.1.106 Bcast:192.168.1.255 Masque:255.255.255.0

adr inet6: 2a01:e35:8a50:5350:a00:27ff:fef7:dedd/64 Scope:Global

adr inet6: fe80::a00:27ff:fef7:dedd/64 Scope:Lien

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:47 errors:0 dropped:0 overruns:0 frame:0

TX packets:42 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 lg file transmission:1000

RX bytes:5565 (5.4 KiB) TX bytes:5485 (5.3 KiB)

 

lo Link encap:Boucle locale

inet adr:127.0.0.1 Masque:255.0.0.0

adr inet6: ::1/128 Scope:Hôte

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 lg file transmission:0

RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

  • Je peux ainsi constater que mes réglages IP ont bien été effectués

Etape 3

  • Installation du serveur web apache avec la commande # yum install httpd
  • Installation du manuel de apache avec la commande # yum install httpd-manual
  • Installation du module ssl de apache avec la commande # yum install mod_ssl
  • Démarrage de apache, commande : # service httpd start
  • Comme je veux que apache soit lancé au démarrage de la machine j’utilise la commande : # su -lc ‘chkconfig httpd on’
  • Redémarrage de apache avec la commande # service httpd restart

Etape 4

  • Pour que apache soit accessible depuis l’extérieur et opérationnel, il faut ouvrir le port 80. Je me rends dans le fichier iptables avec la commande

# cd /etc/sysconfig et je rajoute la ligne :

-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

Comme mon fournisseur d’accès est free et qu’il gère l’ip v6 je fais de même dans le fichier ip6tables

  • Pour restreindre l’accès aux adresses ip de ma machine je modifie le ficher /etc/httpd/conf/httpd.conf et je modifie la directive par défaut suivante :

Listen 80

Par

Listen 127.0.0.1:80 192.168.1.107:80

On peut vérifier que le serveur écoute sur les bonnes adresses avec la commande :

Netstat –an | grep 80 qui renvoie :

tcp 0 0 192.168.1.107:80 0.0.0.0:* LISTEN

tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN

 

Etape 5

  • Dans le dossier /var/www je crée le dossiers suivant en utilisant la commande :

# mkdir site1

  • comme les dossiers ont été créé par l’utilisateur root, il faut changer le propriétaire pour cela j’utilise la commande suivante :

# chown luc:luc site1

Je dois ensuite modifier les droits pour le dossier site1, pour cela je donne au propriétaire tous les droits, aux membres du groupe et aux autres les droits de lecture et d’accès.

Je fais :

# chmod 755 site

  • Avec la commande :

# ll

Je liste le contenu du répertoire www, je peux ainsi contrôler les droits et permissions de mes dossiers.

drwxr-xr-x. 2 root root 4096 27 oct. 12:04 cgi-bin

drwxr-xr-x. 3 root root 4096 22 janv. 19:19 error

drwxr-xr-x. 2 root root 4096 23 janv. 17:33 html

drwxr-xr-x. 3 root root 4096 22 janv. 19:19 icons

drwxr-xr-x. 14 root root 4096 22 janv. 20:02 manual

drwxr-xr-x. 2 luc luc 4096 27 janv. 21:32 site1

Etape 6

  • Ajout des hôtes virtuels dans le dossier : /etc/httpd/conf.d

Je crée le fichier virtualhost.conf avec la commande :

# nano virtualhost.conf

Et j’y inscris :

<VirtualHost 127.0.0.1:80>

DocumentRoot /var/www/site1

<Directory /var/www/site1>

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

  • Il faut maintenant créer les fichiers d’accueil à la racine de ces sites avec la commande :

# nano site1/index.htm

Comme c’est l’utilisateur root qui à créé ces fichiers, il faut que change le propriétaire avec les commandes :

# chown -R luc:luc site1

  • Avec la commande more je m’assure que mes dossiers et les contenus sont conformes :

# more site*/index.htm

  • En retour j’ai :

::::::::::::::

site1/index.htm

::::::::::::::

Coucou site 1

::::::::::::::

  • Je me rends ensuite dans le dossier site1 avec la commande :

# cd site1

  • Le système de sécurité « SeLinux » à été problématique, il est installé d’origine sur fédora15, la doc n’est pas clair je dois modifier les capacités d’exécution des scriptes dans le dossier cgi-bin avec la commande # chcon –t httpd_sys_script_exec_t *.cgi

Comme j’ai autorisé le ssh à s’exécuter je peux sans problème proposer à mes utilisateurs d’utiliser un logiciel comme FileZilla pour mettre à jours leur site, ils se connecteront via sftp avec leur compte utilisateur, ce sera beaucoup plus sécurisé et aussi efficace que d’utiliser le protocole ftp.

Pour vérifier que mon travail est terminé et comme je n’ai pas d’interface graphique j’installe le navigateur en mode texte Lynx avec la commande # yum install lynx

Je peux ainsi constater que mon travail est terminé.

@bientot Grand Maître L