d'après 2007-10-02-apache.log,
sur le site U-Classroom
| 20:35 | Uggy | ca roule :) |
| 20:35 | +racoon97 | skateinmars, quelle version d'Apache ? |
| 20:35 | jos[] | c'est a quelle heure la récré ? |
| 20:35 | +gapz | hey Uggy :) |
| 20:35 | Uggy | gapz: ;) |
| 20:35 | @skateinmars | racoon97: 2.X |
| 20:35 | +racoon97 | ok :] |
| 20:36 | @skateinmars | salut Uggy (mince je vais me faire traquer ;) ) |
| 20:36 | Uggy | skateinmars: 'lut :) |
| 20:36 | Neoxygen | html seulement ? |
| 20:36 | cemoi | on parle de appache 2? |
| 20:36 | +arthur- | cemoi: oui |
| 20:36 | jos[] | cemoi: au piquet ! |
| 20:36 | @skateinmars | cemoi: oui mais il n'y aura pas de problemes pour s'adapter a apache 1 |
| 20:36 | @skateinmars | Neoxygen: on verra php rapidement |
| 20:36 | Neoxygen | oki |
| 20:37 | cemoi | ok |
| 20:37 | waloo | ko |
| 20:37 | @skateinmars | jos[]: pas de recre, un peu de serieux non mais |
| 20:37 | -!- | mode/#ubuntu-fr-classroom [+m] by skateinmars |
Commencons par le Web
Donc, qu'est-ce que le Web à proprement parler ?
Pour essayer de faire simple, bref et compréhensible, on va dire que le Web est un réseau composé de l'ensemble des sites Internet disponibles publiquement, reliés entre eux par des hyperliens.
On est pas trop avancé, il nous faut maintenant savoir ce qu'est un site Internet, aussi appelé site Web.
C'est un ensemble de pages Web, liées entre elles.
Un site web a une adresse.
Regardons par exemple le site d'ubuntu-fr : http://ubuntu-fr.org/
La page Web principale de ce site propose des liens hypertextes vers d'autres pages et d'autres sites, par exemple : http://ubuntu-fr.org/telechargement
Bref, tout le monde ici a certainement déjà visité un site Web.
Mais cette mini intro me semble utile utile pour éviter les amalgames que certains font parfois entre Internet et le Web.
Par exemple, ici [cette page est une transcription d'une discussion ("chat") sur IRC], vous utilisez IRC, mais pas le Web (à moins d'utiliser CGI:IRC ou une applet Java mais c'est un cas particulier dont nous ne parlerons pas).
Pour accéder à un site web, il vous faut utiliser un client Web, appelé communement Navigateur.
Par exemple : firefox, lynx, opera, konqueror, w3m...
C'est la qu'intervient le protocole HTTP.
Voyez par exemple le site suivant http://test.skateinmars.net/
Visitez le avec votre navigateur et vous verrez une page toute simple qui s'affiche.
Comment votre navigateur peut-il afficher cette page ? Il l'a en fait demandée au serveur qui s'occupe de ce site.
On va faire pareil à la main !
Ouvrez une console et tapez :
telnet test.skateinmars.net 80
Vous voyez s'afficher ceci :
Trying 82.228.105.196... Connected to skateinmars.net.
Vous êtes donc connecté au serveur identifié par le nom skateinmars.net et l'adresse IP 82.228.105.196
Le serveur attend une action de votre part.
Tapez donc dans la console
GET / HTTP/1.1Puis entrée, puis
Host: test.skateinmars.net
| 20:45 | waloo | ha non test.skateinmars.net |
| 20:45 | jos[] | j'a pas de telnet |
| 20:46 | jos[] | faut l'installé |
| 20:46 | @skateinmars | installe le paquet telnet jos[] |
| 20:46 | waloo | HTTP/1.1 301 Moved Permanently |
| 20:46 | Koyl | re jos[] |
| 20:46 | +Sp4rKy | ^^ |
| 20:46 | jos[] | re Koyl |
| 20:47 | @skateinmars | waloo: tu ne t'es pas trompé dans le Host ? |
| 20:47 | waloo | non, de version de protocole |
| 20:47 | waloo | c'est bon avec HTTP/1.1 |
| 20:48 | -!- | mode/#ubuntu-fr-classroom [+m] by skateinmars |
Vous voyez donc s'afficher du texte.
Si vous êtes toujours connecté (telnet ne s'est pas arrété)
entrez Control+C,
puis entrée, et vous verrez un "
Connection closed by foreign host."
La connexion au serveur est maintenant terminée.
Ce texte que vous pouvez voir , c'est le même que vous avez vu dans votre navigateur tout à l'heure : c'est une page Web.
Verifiez dans votre navigateur en regardant la source de la page : Bouton droit, "Code source de la page" sous Firefox.
Vous venez donc d'utiliser le protocole HTTP.
Qu'est-ce qu'un protocole (de communication) tout d'abord ?
C'est une spécification qui définit une manière de communiquer entre plusieurs machines. HTTP, c'est le protocole que l'on a choisi pour le Web. Il y a en d'autres pour d'autres usages, FTP par exemple.
Vous pouvez d'ailleurs le reconnaître dans l'adresse d'une page web : http://bla
HTTP veut dire Hypertext Transfer Procotol, soit « protocole de transfert hypertexte ».
Hypertexte, en raison des liens hypertextes qui pointent vers les ressources accessibles par HTTP.
On utilise donc HTTP à chaque fois que l'on visite une page Web.
Mais penchons nous encore un peu plus sur le sujet.
HTTP est apparu dans les années 89/90, sur une proposition de
Tim Berners-Lee, aujourd'hui président du
W3C, l'organisme qui produit des recommandations qui servent de standards pour le Web (XML, HTML, CSS entre autres).
Comme pas mal de protocoles il en existe plusieurs versions.
La première version est appelée HTTP/0.9, et la version 1.0 est devenue un standard IETF en mars 1996. Elle est definie dans la RFC 1945.
La norme actuelle est HTTP/1.1 et elle est décrite dans les RFC 2616 et 2068
Ce sont les documents à lire pour tout savoir sur HTTP (mais c'est pas grave si vous ne les lisez pas ;) )
Comme vous avez pu le remarquer lors de l'utilisation de telnet, HTTP utilise par défaut le port 80.
Votre navigateur le sait et c'est pour cela que vous n'avez pas à taper http://www.google.fr:80/ (vous pouvez néanmoins essayer, ca marche).
Quand on utilise HTTP, il faut définir deux choses essentielles : la ressource sur laquelle on agit, représentée par l'url, "/bob" par exemple.
(pas exactement l'url en fait...)
Puis la méthode à utiliser.
Il y a plusieurs méthodes disponibles, la plus utilisée étant GET. C'est celle que les navigateurs utilisent pas défaut quand vous cliquez sur un lien ou tapez l'adresse d'un site à consulter.
Une autre méthode, très utilisée, et la méthode POST. Elle est souvent utilisée avec des formulaire, pour envoyer un message sur un forum par exemple.
Ceux qui ont deja touché à PHP ou au développement web connaissent ces deux méthodes, il y en a d'autres mais elles sont beaucoup moins courantes : HEAD, PUT, DELETE etc...
Reprenons telnet.
telnet test.skateinmars.net 80 GET /test/test.txt HTTP/1.0 Host: test.skateinmars.net Connection: close
Vous obtenez la ressource test/test.txt, qui est un simple fichier texte, après avoir utilisé la méthode GET.
Vous avez également utilisé HTTP en version 1.0
refaites donc les etapes precedentes, mais Pour Connection, utilisez
Connection: keep-alive
vous pouvez voir que telnet reste connecté au serveur et vous pouvez ainsi envoyer une autre requete
analysons un peu plus ce que l'on vient de faire :
L'option Connection permet de spécifier si l'on veut rester connecté au serveur après avoir recu la ressource ou si l'on souhaite se déconnecter.
(on peut voir la différence avec keep-alive)
Il y a bien d'autre options disponibles, chacune étant un "en-tête".
On termine la requête par une ligne vide.
Regardons maintenant les quelques lignes renvoyées par notre action :
HTTP/1.1 200 OK
Ici on peut voir le protocole utilisé, et le code de retour.
Le code de retour est très important, il nous permet de savoir si la requête a reussi ou non.
Ici le code est 200, soit OK.
Le code 200, vous le recevez à peu prêt tout le temps, il signifie que la requête a réussi.
Bien sur vous ne le voyez pas dans votre navigateur puisque celui-ci affiche la ressource recue (ce qui vous interresse plus d'habitude que de savoir simplement si elle a été recue !)
Si vous êtes curieux vous pouvez essayer un telnet sur une ressource non existante, et vous verrez le code 404 bien connu qui signifie que la ressource n'existe pas.
Les codes d'erreur en 2XX sont des codes de réussite, en 3XX ce sont des redirections, en 4XX des erreurs de requête et en 5XX des erreurs du serveur.
Une liste de tous les codes est bien sur dispo dans la RFC.
Passons aux autres lignes :
Server: Apache/2.2.3 (Debian) DAV/2 SVN/1.4.2 mod_python/3.2.10
Python/2.4.4 PHP/5.2.0-8+etch7 proxy_html/2.5 mod_ssl/2.2.3
OpenSSL/0.9.8c
C'est simplement le nom et les informations sur le serveur qui vous a répondu. Ici Apache version 2.2.3.
On peut configurer son serveur pour cacher ces options et éviter les crackers qui recherchent une version précise d'apache vulnérable à certaines failles. (notez qu'il vaut mieux corriger la faille dans ce cas ;) )
| Last-Modified | nous donne la date à laquelle la ressource a été modifiée pour la dernière fois |
|---|---|
| ETag: | représente un identifiant du fichier |
Ces deux options permettent au navigateur de les comparer avec les fichiers qu'il a dans son cache pour ne pas retélécharger inutilement un fichier qu'il a déjà demandé auparavant.
| Content-Length | définit la taille du contenu que le serveur vous envoie, et |
|---|---|
| Content-Type | , c'est le type MIME du contenu (texte, image etc...) |
Voila le topo basique sur HTTP, avec ca vous pouvez jouer un peu sur les sites que vous connaissez, et bientôt sur votre propre serveur :)
http://fr.wikipedia.org/wiki/HTTP vous permet d'aller plus loin si la RFC vous donne des boutons.
Je n'ai pas parlé de HTTPS, celui-ci est la variante de HTTP qui utilise SSL pour sécuriser les échanges. Il utilise le port 443.
Passons à Apache
On va donc installer le serveur "Apache HTTP Server", qui est le plus connu des serveurs web et le plus utilisé.
Il a été concu en 1995 a partir d'une série de patchs sur le serveur NCSA HTTPd, un des premiers serveurs existants, d'ou son nom : "A patchy server" (qui ressemble a la prononciation d'Apache en anglais)
C'est un logiciel libre, distribué sous la licence Apache, version 2.0
La version courante est la 2.2.6, et 1.3.39 pour la branche "legacy" 1.X qui est parfois préférée pour éviter de migrer d'une branche à l'autre.
Nous allons utiliser la version 2.X, n'ayant pas de contraintes à ce niveau.
L'Installation :
Je part du principe que vous avez une machine sous ubuntu ou debian sous la main, et nous allons donc utiliser apt-get.
Ouvrez une console et installez apache avec la commande suivante :
sudo apt-get install apache2 apache2-mpm-prefork(ou utilisez su, ou synaptic...)
Vous pouvez donc voir une fois cela terminé qu'apache a été démarré :
* Starting web server (apache2)...
Vérifions son bon fonctionnement, en ouvrant votre navigateur et vous rendant sur http://localhost/
Vous verrez une page vous informant que le serveur marche correctement :)
Maintenant que le serveur est installé et marche correctement, nous allons voir les bases à connaître de sa configuration.
Rendez-vous dans le répertoire /etc/apache2/, et regardez les fichiers le composant :
apache2.conf conf.d envvars httpd.conf mods-available mods-enabled ports.conf sites-available sites-enabled
La plupart de ces fichiers sont plus ou moins spécifiques à debian/ubuntu et nous permettent de séparer la configuration en plusieurs parties.
Voyons donc ces fichiers :
| httpd.conf | est le fichier utilisé par apache1, il est conservé vide dans apache2 pour assurer la rétrocompatibilité. On en aura pas besoin. |
|---|---|
| envvars | est utilisé pour définir des variables d'environnement propres à apache. Je ne m'en suis jamais servi... |
| ports.conf | est plus interressant. Regardez son contenu :
Listen 80 Cette option de configuration (appelée directive) demande à apache d'écouter sur le port 80. Si vous utilisez HTTPS vous aurez à y spécifier le port 443. Bien sur on peut utiliser n'importe quel port mais restons dans les normes |
| apache2.conf | Ceci est le fichier principal de configuration, on y reviendra plus tard |
| conf.d | est un répertoire qui contient plusieurs petits fichiers qui seront analysés par apache.
Le seul fichier pour le moment est charset, qui spécifie le charset à utiliser par défaut. Vous pouvez y ajouter d'autres fichiers du même genre pour éviter d'encombrer le fichier principal. |
| mods-available | contient la liste des modules d'apache installés, et |
| mods-enabled | les modules activés. |
| sites-available | et |
| sites-enabled | contiennent la liste des vhosts à utiliser, on y reviendra. |
Ouvrons maintenant, avec les droits root, le fichier apache2.conf
Vous pouvez voir qu'il est allègrement commenté. Un commentaire
commence par # et le texte qui suit est ignoré par apache.
Voyons un peu les premières options :
ServerRoot "/etc/apache2"
Cette option définit le dossier de base qui contient la configuration d'apache. A ne pas toucher donc.
LockFile, PidFile,
si vous ne comprenez pas les commentaires vous n'avez pas besoin de savoir à quoi ca sert ;)
Timeout. Enfin une option interressante. C'est le nombre de secondes maximum au bout duquel une connection au serveur est interrompue
KeepAlive. On a vu son utilité tout à l'heure, vous pouvez ici le désactiver. Il y a également d'autres options pour KeepAlive pour affiner cette option.
On va zapper les options dans les blocs IfModule, néanmoins vous pouvez ici voir un bout de configuration typique d'apache, entre balises.
User et Group déterminent l'user avec lequel seront exécutés les processus d'apache.
On va arreter la, vous devez avoir une idée d'à quoi servent les options en lisant les commentaires associés.
Regardons tout de même la ligne 184 et suivantes, qui vous confirment que les fichiers ports.conf et autres sont pris en compte.
Bien sur vous pouvez désactiver certains fichiers pour faire un peu
de menage, comme httpd.conf
(Personellement j'ai déplacé le fichier ports.conf dans le répertoire conf.d mais à chacun ses manières.)
Voyons maintenant le répertoire sites-available. Il contient les différents vhosts que vous utiliserez.
Les vhosts (Virtual Hosts) vous permettent de définir plusieurs sites différents sur une même machine, le plus souvent des sous-domaines (www.chose.fr, machin.chose.fr...)
Éditez le seul vhost existant pour le moment : default
NameVirtualHost définit les IPs à utiliser par apache, ici * signifie qu'on utilise n'importe quel IP pour acceder au serveur : 127.0.0.1 (ip locale), 192.168.x.x (ip du reseau local), ou une IP externe.
Cette directive est en dehors du Vhost, on pourrait donc la déplacer dans apache2.conf. Dans tous les cas elle ne doit pas être reprise dans les autres vhosts si elle est déjà définie à *
Ensuite vient le vhost proprement dit : il est compris dans un bloc Ces blocs définissent la "portée" de la validité des directives qui y sont définies.
Le * derrière VirtualHost définit ici également que le vhost est valable pour toutes les IPs sur lesquelles apache écoute.
La directive ServerAdmin vous permet de spécifier un email à utiliser en cas de problème, sur une page d'erreur 404 par exemple.
Il manque une directive importante que l'on va ajouter :
Remplacez machin par le nom que vous souhaitez utiliser pour le vhost. Si vous possedez un compte dyndns ou d'un service du genre vous pouvez l'utiliser, sinon mettez un peu n'importe quoi comme truc.com
DocumentRoot définit le dossier dans lequel seront stockés les fichiers du site.
Les sous-blocs suivants définissent des options spécifiques au dossier du site.
Options FollowSymLinks par exemple demande à apache de suivre les liens symboliques si necessaire,
AllowOverride permet de définir si l'on peut changer certaines options en utilisant des fichiers .htaccess dans le répertoire du site
Indexes permet d'autoriser le listage de fichiers d'un répertoire qui ne contient pas d'index. Je passe le reste qui est assez explicite, ou pas assez interressant.
Voyons simplement Alias, qui permet de définir un répertoire précis pour certaines requêtes.
Ici /doc correspondra au
dossier /usr/share/doc/, mais comme le
montre Allow seul les IPs locales y ont accès.
Enregistrons les changements et fermons le fichier.
Il faut maintenant que le vhost soit actif.
Pour activer un vhost il faut créer un lien symbolique
du fichier vhost vers le dossier sites-enabled/, mais une commande est la pour nous aider dans cette tâche.
(Tout d'abord faites un
c'est un lien symbolique sur /etc/apache2/sites-available/default Utilisez donc "sudo a2ensite nomduvhost". Notez que a2dissite va logiquement réaliser le contraire. Cette méthode du lien symbolique permet de réaliser rapidement des changements dans la configuration d'apache.
Comme vous l'indique le résultat de la commande, vous devez
recharger la configuration d'apache avec un
Vous devrez recharger apache à chaque changement de
configuration. Notez aussi
l'option Petite note aussi, vous pouvez utiliser
Après cela votre vhost est actif. Reste encore une modif à faire :
ouvrez le fichier /etc/hosts, et entrez une nouvelle ligne :
Avec nomduvhost le ServerName que vous avez choisi. Cela permettra à
votre système de faire la correspondance entre le nom de l'host et
votre machine locale.
On a donc maintenant un apache fonctionnel, mais on va terminer avec un petit bonus et installer mod_php histoire de connaître les modules.
Les modules sont des extensions d'apache qui rajoutent des fonctionnalités diverses, du support d'un langage aux réécritures d'urls.
On va ainsi installer mod_php5 qui rajoutera comme son nom l'indique le support de php5 directement dans apache.
Installez le paquet libapache2-mod-php5, attendez le redemarrage d'apache, et voila :)
On va vérifier que cela marche. regardez le
dossier mods-enabled, vous pourrez y
voir un php5.conf
et php5.load.
La aussi, il s'agit de liens symboliques
vers mods-available comme pour les
vhosts, et vous devinerez l'utilité
de Créez ensuite le
fichier /var/www/test.php, et écrivez-y
le contenu suivant :
Ouvrez ensuite cette page dans votre navigateur (http://servername/test.php)
Vous y verrez la page interprétée (la fonction phpinfo affiche une page html d'informations sur votre installation de php)
(petite conclusion :) )
Voila, avec ceci vous avez un environnement quasiment prêt pour du développement web, il vous suffira d'installer une base de donnée et phpmyadmin si nécessaire.
Il vous faut néanmoins savoir qu'apache n'est pas _le_ serveur web le meilleur, même s'il est de très grande qualité.
Après avoir un peu touché à apache je vous conseille d'aller tester
d'autres serveurs tels que lighttpd, nginx ou cherokee, et d'explorer des configurations basées sur fastcgi, ne serait-ce que par curiosité.
N'oubliez pas non plus que même si on voit souvent apache, php et mysql ensemble il ne sont aucunement liés, n'hésitez donc pas à tester les langages python, ruby (et rails) ou encore le SGBD postgresql.
http://httpd.apache.org/docs/2.2/
http://www.ietf.org/rfc/rfc2068.txt
http://www.ietf.org/rfc/rfc2616.txt
Pour s'amuser avec les headers HTTP :
http://www.xml.com/pub/a/2004/12/15/telnet-REST.html
http://www.nextthing.org/archives/2005/08/07/fun-with-http-headers
Voila, merci :)
ServerName machin
21:43 @skateinmars ok ? 21:43 +gpocentek ouep 21:44 animimotus skateinmars: pkoi pas dans apache2.conf ? 21:44 @skateinmars animimotus: pour utiliser un vhost justement 21:45 @skateinmars tu peut appliquer ces parametres en dehors d'un vhost mais ils seront appliqués sur le "vhost par defaut" 21:45 @skateinmars ensuite :
21:45 cemoi_ on lem et n'importe ou ça? 21:46 cemoi_ le ServerName machin 21:46 @skateinmars cemoi_: non, dans le bloc du Vhost 21:46 @skateinmars après serveradmin par exemple 21:46 cemoi_ ok mais n'importe ou ds le bloc 21:46 @skateinmars oui 21:46 cemoi_ ok
(un exemple de listage : http://test.skateinmars.net/test/ )
21:47 @skateinmars ok ? 21:48 +gpocentek ouep 21:48 +gpocentek ça permet par exemple d'accéder à toutes la doc des paquets debian en allant sur http://localhost/doc, c'est ça ? 21:48 +gpocentek toute* 21:48 @skateinmars voila 21:49 +gpocentek ça tue 21:49 +gpocentek skateinmars: mode -m ;) 21:49 @skateinmars enfin non, plutot http://localhost/doc/ ;) 21:49 -!- mode/#ubuntu-fr-classroom [-m] by skateinmars sudo rm sites-enabled/000-default,
c'est une configuration d'origine d'apache plus génante qu'autre chose.)
21:51 waloo sudo a2dissite 000-default, non ? 21:51 waloo du coup... 21:51 @skateinmars waloo: non ca on vient de le supprimer 21:52 waloo oui, mais poruqoi avec rm ? 21:52 shadok (apache2 a l'air plus sympa que le 1 coté config, je suis obligé de lacher là :p pas grave ca loggue) 21:52 @skateinmars normalement il doit y avoir le même nom dans sites-available et sites-enabled mais par defaut debian/ubuntu renomme le lien en 001-default 21:52 @skateinmars du coup on vire ce lien et on en recrée un avec a2ensite 21:52 waloo ok sudo /etc/init.d/apache2 reload
force-reload du script.
sudo invoke-rc.d apache2 reload, c'est selon les goûts :)
127.0.0.1 nomduvhost
21:55 @skateinmars ok ? 21:55 +gpocentek ouep 21:56 * gpocentek est fier d'hoster machin.com sur sa machine ^^ 21:56 @skateinmars :) 21:56 Uggy ca roule ... 21:56 @skateinmars Testez maintenant votre vhost ! Ouvrez votre navigateur (ou telnet :) ) et entrez votre ServerName dans la barre d'adresse. Ca devrait marcher :) 21:56 animimotus sudo a2ensite default refait le 000-default ^^ 21:56 Uggy a2ensite c'est "special" Ubuntu a priori ? (ou debian) c'est pas "apache" ? 21:57 waloo oui, a2ensite fait des 00x-nomvhost 21:57 @skateinmars Uggy: special debian oui 21:57 Uggy skateinmars: ok merci.. 21:57 @skateinmars waloo: euh non justement :] 21:57 +gpocentek ah... 21:58 +gpocentek c'est ce qu'il a fait ici il me semble 21:58 @skateinmars waloo: ca utilise le même nom pour le lien que le nom du fichier 21:58 @skateinmars ah ? 21:58 +gpocentek il m'ajoute le 000- 21:58 waloo oui, pareil 21:58 +gpocentek skateinmars: ah non 21:59 @skateinmars ah oui si :) 21:59 +gpocentek il le faut que si le fichier s'appelle 'default' 21:59 +gpocentek avec 'foobar' le lien s'appelle 'foobar' aussi 21:59 waloo ha oui tiens 21:59 +gpocentek gauvain@joe:/etc/apache2$ ls sites-enabled/ 21:59 +gpocentek 000-default foobar 21:59 @skateinmars ok, ca doit être l'exception qui confirme la regle 21:59 +gpocentek hehe :) 22:00 animimotus (y raconte que des conneries le skateinmars :p) 22:00 @skateinmars notez que si on demande un Host qui n'est pas specifié dans les vhosts il utilisera le premier vhost inteprété si on a rien précisé en dehors des vhosts 22:00 waloo a2ensite est pas trop documente... 22:00 Neoxygen un peux agitée la classe 22:01 -!- mode/#ubuntu-fr-classroom [+m] by skateinmars 22:01 +gpocentek (en tout cas apache marche bien ici :) ) 22:01 @skateinmars on reprend :) 22:01 @skateinmars ca serait mieux si on rajoutait une page. Téléchargez la source du fichier d'index que l'on a vu tout à l'heure (http://test.skateinmars.net/) et enregistrez la dans /var/www/index.html 22:01 @skateinmars Rechargez la page, et admirez le résultat.
22:02 -!- mode/#ubuntu-fr-classroom [-m] by skateinmars 22:02 Uggy c'est quoi le "premier vhost" ? en fonction du nom c'est ca ? 22:03 @skateinmars Uggy: oui voila, d'ou le hack avec 001-default 22:03 Uggy ok..c'est pour confirmer ;) 22:03 @skateinmars notez que sous apache 2 les pages a utiliser comme index sous spéficiées dans le module dir 22:03 @skateinmars (mods-available/dir.conf) 22:04 @skateinmars (mmh, pas sous apache forcément, plutot sous debian) Les modules
22:06 @skateinmars (notez qu'apache devrait recharger sa configuration une fois le module installé) 22:06 cemoi_ installez? pat-get insatll? 22:06 cemoi_ apt-get* 22:06 +gpocentek cemoi_: oui 22:06 @skateinmars cemoi_: sudo apt-get install libapache2-mod-php522:06 cemoi_ ok ok 22:07 @skateinmars quelqu'un n'a pas terminé ? 22:08 Uggy Ca roule... 22:08 cemoi_ ok a2enmod et a2dismod :)
<?php phpinfo(); ?>
22:10 @skateinmars ok ? 22:10 cemoi_ ouep 22:10 +gpocentek ROCK ON 22:11 @skateinmars (remarquez que gpocentek est très motivé pour apprendre le php) 22:11 +gpocentek à mort :/ 22:11 @skateinmars :) 22:12 waloo zut j'ai installé libapache2-mod-python à la place (un vieux reflexe :) 22:12 @skateinmars bon hé bien c'est fini :] 22:12 +Sp4rKy ouaihhh 22:12 @skateinmars waloo: tant que c'est pas mod_perl ca va ;) 22:12 * gpocentek hugs skateinmars 22:12 +Sp4rKy bravo 22:12 waloo skateinmars: un mot sur la protection des pages ? 22:12 +Sp4rKy *claps* *claps* 22:12 @skateinmars hé euh la conclusion ;) 22:12 cemoi_ merci! Sources et liens
22:14 Uggy Alors c'est quoi le meilleur pour ton utilisation ? :) 22:14 @skateinmars Uggy: dans ma boite on utilise nginx, ca marche super pour php et rails :) 22:14 animimotus tain j'ai rien appris :\ 22:14 Uggy skateinmars: ok :) 22:15 waloo moi si :) 22:15 @skateinmars waloo: tu veut un point sur les htaccess ? 22:15 cemoi_ mais en producatiob là la config ça le fait pas si? niveau sécurité? 22:15 waloo skateinmars: si quu'un demande, ourquoi pas 22:15 waloo moi je connais 22:15 +gpocentek cemoi_: pourquoi donc ? 22:15 shadok c'est pas lighttpd qui gere pas les .htaccess ? 22:15 cemoi_ bé je sais pas je demande 22:16 @skateinmars shadok: nginx ne les gere pas mais c'est pas très grave selon le contexte 22:16 cemoi_ si non c'est trop simple là... la config du serveur 22:16 +gpocentek cemoi_: je pense pas qu'il y ait de problème là... 22:16 shadok avec une debian hardened saimieu cemoi_ 22:16 shadok skateinmars: hmm ok, je connaissais meme pas celui là 22:16 +gpocentek skateinmars: tu peux nous dire comment on cache les détails du serveur ? 22:16 @skateinmars cemoi_: ca va la, il ne devrait pas y avoir de problemes si on tiens son apache a jour, qu'on abuse pas du chmod a tout va et qu'on troue pas ses scripts 22:17 +gpocentek apache x.y.z mod_python blabla & cie 22:17 cemoi_ ok shadok mais es qu'il faut psychoter niveau sécurité? 22:17 @skateinmars shadok: un serv russe :} 22:17 shadok cemoi_: toujours, pourquoi ? :D 22:17 cemoi_ pour le php par exemple 22:17 shadok skateinmars: c'est sensé rassurer ? ^^ 22:17 @skateinmars gpocentek: ServerSignature Off 22:17 cemoi_ faut pas bloquer certaine fonctions? 22:17 shadok gpocentek: cacher les details je vois pas trop l'utilité :) 22:18 shadok cemoi_: faut surtout faire gaffe aux droits des dossiers 22:18 waloo cemoi_: si tu fais de l'hébergement ça se fait, si tu as confiance en les développeurs sur ton site, c'est pas utile 22:18 +gpocentek shadok: pour rendre les listes plus belles :p 22:18 @skateinmars gpocentek: mmh ca c'est pour les listages et autres pages d'apache, pour les headers : ServerTokens 22:18 shadok gpocentek: huhu 22:18 @skateinmars gpocentek: le tout est commenté dans apache2.conf :) ligne 207 22:19 cemoi_ set_time_limite par exemple 22:19 +gpocentek ok 22:19 shadok (http://en.wikipedia.org/wiki/Security_through_obscurity en passant) 22:19 @skateinmars cemoi_: ca c'est pour php 22:19 animimotus ServerTokens Prod dans apache2.conf 22:20 cemoi_ oui je sais justement quand on install php5 toutes les focntions sont activées 22:20 cemoi_ non? 22:20 waloo non 22:20 cemoi_ à... 22:20 @skateinmars oui, ca se configure dans /etc/php5/apache2/php.ini 22:20 waloo certaines bibliothèques sont dans d'autres packages 22:21 @skateinmars waloo: toutes les fonctions de bases sont la 22:21 waloo oui, de base 22:21 cemoi_ waloo, je comprends mais déja avec la base... 22:22 waloo mais par exemple pour connecter une base mysql, faut un le paquet php5-mysql 22:22 @skateinmars comme readfile, fopen, exec etc waloo :) 22:22 waloo oui, ça ok 22:22 cemoi_ c'est que tres souvent sur les serveurs ils bloquent les fontions les plus intéréssantes mais aussi les plus dangereuses pour leur serveurs... 22:22 @skateinmars oui oui après pas de mysql, mais on peut tres bien utiliser postgresql ;) 22:22 waloo sur les serveurs d'hébergement mutualisé, oui 22:22 +gpocentek ou sqlite :) 22:23 +gpocentek (comment ça c'est pas bien) 22:23 cemoi_ sur les mutualisé ouai... 22:23 * waloo utilise eXist 22:23 waloo comme bd 22:23 cemoi_ au fait chez ovh ils ont ssh mais on peux pas faire de rsync... 22:23 cemoi_ sur les mutuaisé je parle 22:24 cemoi_ mutualisé* 22:24 shadok a voir leur conf gentoo chez ovh c'est pas etonnant 22:24 shadok c'est des burnes coté config (le reste je sais pas mais j'ai pas specialement envie de savoir) 22:24 cemoi_ le rsync il marche juste de serveur à serveur et que les leurs évidament 22:25 cemoi_ j'ai pas trouvé d'hébergeur capable de me proposé la possibilité de faire du rsync... sauf sur serveur dédié 22:27 shadok perso si je loue un server c'est du dedié ou rien mais pour le moment j'ai vraiment pas l'utilité 22:27 @skateinmars shadok: tu peut mettre un serv chez toi aussi ;) 22:27 cemoi_ bé un dédié c'est énorme... 22:27 cemoi_ un serv chez sois ça rame vu les adsl... 22:27 waloo cemoi_: pas forcement 22:28 shadok j'ai déjà un server ssh chez mes darons mais pour le moment j'ai pas d'autre besoin, ptet un dns un jour ^^ 22:28 @skateinmars cemoi_: tu crois que skateinmars.net est ou ? 22:28 waloo y'a des 'petits' dédies (kimsuffi, dedibox) 22:28 Uggy il faut un "dédié" partagé.. :) 22:28 cemoi_ waloo, bé eee 160go c'est énorme 22:28 @skateinmars et j'ai vu personne s'en plaindre encore ;) 22:28 shadok cemoi_: bof ca me va tres bien, y a pas assez de bons films pour que c a me coute 30€ par mois 22:28 @skateinmars Uggy: avec une 30aine de potes ? :) 22:29 Uggy skateinmars: on est ... 8 ? :) 22:29 waloo Uggy: ben y'a des vds aussi 22:29 shadok parlant de ca j'ai deux heroes a voir moua :p 22:29 @skateinmars :) 22:29 waloo dédié mutualisés 22:29 cemoi_ skateinmars, t'a quoi comme ligne adsl? 22:29 Uggy skateinmars: mais 4 "présents" :) 22:29 @skateinmars Uggy: j'espere que tu as pas perdu ton temps ce soir :] 22:29 cemoi_ waloo, ça dois douiller tout ça no? 22:30 waloo la dedi une 20 € / mois 22:30 @skateinmars Uggy: j'ai honteusement copié ton systeme "moitie protocole et joujou avec telnet, moitie soft" :) 22:30 Uggy skateinmars: bah j'ai appris par exemple d'ou venait le nom apache :) (A patchy... ) :) 22:30 @skateinmars ^^ 22:30 cemoi_ ok 22:30 Uggy skateinmars: T'as super bien fait ... :) c'etait nickel :) 22:31 waloo c'est vrai que le ncsa httpd a bien été patché depuis :) 22:32 cemoi_ ça ressort quelque part les cours d'ici? 22:32 Uggy en parlant de joujou avec telnet... pour ceux qui connaissent pas -> "rlwrap" 22:32 Uggy permet d'avoir un historique virtuel a l'interieur du telnet 22:33 Uggy Bon bahh un grand merci a skateinmars pour avoir préparé ce cours !!!! :) 22:33 shadok cemoi_: ici j'ai du 8M/1M et du 2M/256K chez les darons, c'est amplement suffisant pour ce que je fais. apres le jour ou j'aurais le temps je monterais un vpn entre les deux 22:33 cemoi_ yes 22:33 @skateinmars de rien :) 22:33 Uggy clap clap clap 22:34 cemoi_ c'est bien cool 22:34 @skateinmars Uggy: oui merci pour rlwrap je l'ai pas mal utilisé pour preparer ce cours :] 22:34 Uggy au fait qqun a pris les logs ? 22:34 @skateinmars Sp4rKy: a loggué normalement 22:34 cemoi_ cemoi2005.serveftp.net 22:34 Uggy skateinmars: ok ;) 22:34 cemoi_ hu hu 22:34 cemoi_ ;) 22:35 shadok je les ai sinon 22:35 shadok bon, a + les gens et bonne soirée, ptet a un de ces 4 skateinmars :) 22:35 @skateinmars bonne soiree shadok :) 22:35 shadok merki 22:37 cemoi_ elle marche cette url? 22:37 cemoi_ http://cemoi2005.serveftp.net 22:37 Uggy non... netFilter ? 22:38 @skateinmars routeur qui bloque 22:38 cemoi_ à bon? 22:38 Uggy ouep ou NAT... 22:39 @skateinmars le ping est bloqué déjà 22:39 cemoi_ à ouai...non non je fait ça à partir d'une machine virtuel 22:39 cemoi_ ouai mais le ping ça géne pas 22:39 cemoi_ si? 22:39 Uggy non 22:39 @skateinmars ca a quand meme son utilite :) 22:40 cemoi_ pour connaitre les ports ouvert :d 22:40 @skateinmars non c'est pas lié 22:41 Uggy Ping=ICMP.. donc pas de ports TCP/UDP