Recent Changes - Search:

Accueil

OpenSSL

SyncML

Apache Portable Runtime

Libxml2

Net-snmp

CUrl

Boost

Perl

ZLib

Samba

VPN

Serveurs de messagerie

edit

Mod/Apache

Mod.Apache History

Hide minor edits - Show changes to output

April 06, 2011, at 10:56 AM by 194.51.85.2 -
Changed line 86 from:
http://modules.apache.org/reference
to:
http://modules.apache.org/reference.php
May 09, 2008, at 05:24 PM by Arnaud Grandville -
Changed lines 5-6 from:
Apache est un serveur HTTP extrêmement populaire, en effet, ce serveur héberge 50% des sites mondiaux d'après [[http://news.netcraft.com/archives/web_server_survey.html|netcraft]].\\
Ce
serveur est de part sa conception un serveur de sockets entouré de modules dont, le plus connu est le module HTTP (d'ailleurs lié statiquement à l'exécutable, ''httpd.exe  -t -D DUMP_MODULES'').\\
to:
Apache est un serveur HTTP extrêmement populaire, en effet, d'après [[http://news.netcraft.com/archives/web_server_survey.html|netcraft]], ce serveur héberge 50% des sites web mondiaux .\\
Ce
serveur est de part sa conception un serveur de sockets modulable dont, le plus connu est le module HTTP (d'ailleurs lié statiquement à l'exécutable, ''httpd.exe  -t -D DUMP_MODULES'').\\

!!!Pourquoi créer un module ?\\

Plusieurs raisons : pour le plaisir, le développement est un art complexe et le seul plaisir de le maitriser est nécessaire pour espérer devenir un bon développeur ! mais aussi, parce que développer un mod apache est le meilleur moyen d'obtenir le maximum de performances pour le traitement de requêtes web, j'ai personnellement travaillé pour une administration qui a basé l'ensemble de son SI sur des développements de cette nature, au prix d'un effort certain, le résultat est sans doute un des sites web de l'administration Française qui résiste le mieux à des montés en charge fulgurantes
.\\
Changed lines 12-13 from:
Pourquoi créer un mod (module) pour ce serveur ?\\
Plusieurs raisons : pour le plaisir, le
développement est un art complexe et le plaisir de le maitriser est une nécessité pour espérer devenir un bon développeur ! mais aussi, parce que développer un mod apache est le meilleur moyen d'obtenir le maximum de performances pour le traitement un grand nombre requêtes, j'ai personnellement travaillé pour une administration qui a basé l'ensemble de son SI sur des développements de cette nature, au prix d'un effort certain, le résultat est sans doute un des sites web de l'administration Française qui résiste le mieux à des montés en charge fulgurante.\\
to:
J'aborderai ici, le développement de mod apache sous Windows, car Microsoft fournit gratuitement l'environnement de développement le plus aboutit du Marché, ''Visual Studio 2008 express edition'', cette version ne permet pas le développement d'applications avec interface mais là n'étant pas le problème nous pourrons nous en contenter, et aussi parce qu'un développeur sous Unix fera très facilement le portage dans son environnement.\\
Changed lines 14-17 from:
J'aborderai ici, le développement de mod apache sous Windows, car Microsoft fournit gratuitement l'environnement de développement le plus aboutit du Marché, ''Visual Studio 2008 express edition'', cette version ne permet pas le développement d'applications avec interface mais là n'étant pas le problème nous pourrons nous en contenter et parce que un développeur sous Unix fera très facilement la conversion dans son environnement.\\
to:

!!!L
'architecture d'Apache 2\\

Apache est un serveur de socket qui charge au démarrage des modules venant étendre des fonctionnalités qui sinon
, de base, se limiteraient aux communications réseau SYN->SYN/ACK. Le core_module se charge de recevoir, par l'intermédiaire des sockets, des flux alimentant des buffers, un système d'événement vient ensuite provoquer des traitements consommant les buffers et générant les réponses qui se videront par la suite, elles aussi, dans les sockets et deviendront les réponses aux clients. Voici pour le principe.\\
Changed lines 19-27 from:
\\
'+L'architecture d'Apache 2+'\\

Apache est un serveur de socket qui charge au démarrage des modules venant étendre des fonctionnalités qui sinon de base se limiteraient aux communications réseau SYN->SYN/ACK. Le core_module se charge de recevoir, par l'intermédiaire des sockets, des flux alimentant des buffers, un système d'événement vient ensuite provoquer des traitements consommant les buffers et générant les réponses qui se videront par la suite, elles aussi, dans les sockets et deviendront les réponses aux clients. Voici pour le principe.\\
\\

'+Le module helloworld+'\\
C'est pas original mais c'est formatteur
.
to:

!!!Un exemple de module : helloworld\\

C'est pas original mais c'est formateur
.
Changed line 73 from:
Voici ce qui devraita apparaitre dans le navigateur
to:
Voici ce qui devrait apparaitre dans le navigateur
Changed line 81 from:
Le projet de base est celui d'une DLL, par convenance j'ai changé l'extension de la DLL en SO (shared objet) bien que nous soyons sous Windows. Pour le reste, les chemins d'accès aux différents élements devra sans doute être adapté aux besoins.\\
to:
Le projet de base est celui d'une DLL, par convenance j'ai changé l'extension de la DLL en SO (shared objet) bien que nous soyons sous Windows. Pour le reste, les chemins d'accès aux différents éléments devra sans doute être adapté aux besoins.\\
Changed line 83 from:
Ci-après, l'archive complète de la [[http://www.grandville.net/download/mod_helloworld.zip|solution]]\\
to:
Ci-après, l'archive Visual Studio complète de la [[http://www.grandville.net/download/mod_helloworld.zip|solution]]\\
Added lines 85-86:
un lien intéressant sur le sujet
http://modules.apache.org/reference
May 07, 2008, at 11:15 PM by Arnaud Grandville -
Changed lines 70-71 from:
Ainsi, le module sera comme à chaque fois invoqué à chaque requête sur le site mais n'aura en plus un handler valant @@helloworld-handler@@ que si le client a demandé la page @@/welcome@@. Nous pouvons maintenant tester la raison pour laquelle Apache vient nous importuner ! Le reste correspond à un flux de réponse, une message à insérer dans la log et finalement un message pour dire qu'il y eu un traitement la requête.\\
to:
Ainsi, le module sera comme à chaque fois invoqué à chaque requête sur le site mais n'aura en plus un handler valant @@helloworld-handler@@ que si le client a demandé la page @@/welcome@@. Nous pouvons maintenant tester la raison pour laquelle Apache vient nous importuner ! Le reste correspond à un flux de réponse, une message à insérer dans la log et finalement un message pour dire qu'il y eu un traitement de la requête.\\
Voici ce qui devraita apparaitre dans le navigateur
Changed lines 73-74 from:
Le projet de base est celui d'une DLL, par convenance j'ai changé l'extension de la DLL en SO (shared objet) bien que nous soyons sous Windows. Pour le reste, les chemins d'accès aux différents élements devra sans doute être adapté aux besoins.\\
Ci-après, l'archive complète de la [[http://www.grandville.net/download/mod_helloworld.zip|solution]]\\
to:
\\
http://www.grandville.net/img/mod_helloworld.gif

\\
\\
\\

Le projet de base est celui d'une DLL, par convenance j'ai changé l'extension de la DLL en SO (shared objet) bien que nous soyons sous Windows. Pour le reste, les chemins d'accès aux différents élements devra sans doute être adapté aux besoins.\\
\\
May 07, 2008, at 11:09 PM by Arnaud Grandville - mod apache windows
Added lines 1-85:
(:keywords mod, module, apache, windows:)
(:description  Source d'un exemple de module pour apache :)

\\
Apache est un serveur HTTP extrêmement populaire, en effet, ce serveur héberge 50% des sites mondiaux d'après [[http://news.netcraft.com/archives/web_server_survey.html|netcraft]].\\
Ce serveur est de part sa conception un serveur de sockets entouré de modules dont, le plus connu est le module HTTP (d'ailleurs lié statiquement à l'exécutable, ''httpd.exe  -t -D DUMP_MODULES'').\\
\\
Pourquoi créer un mod (module) pour ce serveur ?\\
Plusieurs raisons : pour le plaisir, le développement est un art complexe et le plaisir de le maitriser est une nécessité pour espérer devenir un bon développeur ! mais aussi, parce que développer un mod apache est le meilleur moyen d'obtenir le maximum de performances pour le traitement un grand nombre requêtes, j'ai personnellement travaillé pour une administration qui a basé l'ensemble de son SI sur des développements de cette nature, au prix d'un effort certain, le résultat est sans doute un des sites web de l'administration Française qui résiste le mieux à des montés en charge fulgurante.\\
\\
J'aborderai ici, le développement de mod apache sous Windows, car Microsoft fournit gratuitement l'environnement de développement le plus aboutit du Marché, ''Visual Studio 2008 express edition'', cette version ne permet pas le développement d'applications avec interface mais là n'étant pas le problème nous pourrons nous en contenter et parce que un développeur sous Unix fera très facilement la conversion dans son environnement.\\
\\
\\
'+L'architecture d'Apache 2+'\\

Apache est un serveur de socket qui charge au démarrage des modules venant étendre des fonctionnalités qui sinon de base se limiteraient aux communications réseau SYN->SYN/ACK. Le core_module se charge de recevoir, par l'intermédiaire des sockets, des flux alimentant des buffers, un système d'événement vient ensuite provoquer des traitements consommant les buffers et générant les réponses qui se videront par la suite, elles aussi, dans les sockets et deviendront les réponses aux clients. Voici pour le principe.\\
\\

'+Le module helloworld+'\\
C'est pas original mais c'est formatteur.

(:source lang=C :)
#include "ap_compat.h"
#include "http_core.h"
#include "http_config.h"
#include "http_protocol.h"
#include "http_log.h"

module AP_MODULE_DECLARE_DATA helloworld_module;

static int helloworld_handler(request_rec *r)
{
fprintf(stderr,"helloworld-handler");
if (!r->handler || strcmp(r->handler, "helloworld-handler"))
return DECLINED;

    r->content_type = "text/html";
    ap_send_http_header(r);
    ap_rputs("<H1>Hello <i>Apache 2.2</i> World!</H1>" ,r);
ap_log_rerror(APLOG_MARK,  APLOG_NOTICE, 0, r,"[%s@%i] hello world (%s)",__FILE__,__LINE__,r->handler);
return OK;
}

static void register_hooks(apr_pool_t *p)
{
ap_hook_handler(helloworld_handler, NULL, NULL, APR_HOOK_MIDDLE);
}

module AP_MODULE_DECLARE_DATA helloworld_module = {
    STANDARD20_MODULE_STUFF,
    NULL,                      /* create per-directory config structure */
    NULL,                      /* merge per-directory config structures */
    NULL,                      /* merge per-directory config structures */
    NULL,                      /* merge per-server config structures */
    NULL,                      /* merge per-server config structures */
    register_hooks              /* register hooks */
};

(:sourcend:)

@@module AP_MODULE_DECLARE_DATA helloworld_module;@@ \\
cette ligne baptise le module qui restera connu sous ce nom dans le fichier de configuration httpd.conf grâce à la ligne ci-dessous qui signalera au moteur que le binaire mod_helloworld.so contient une structure définissant helloworld_module.\\
@@LoadModule helloworld_module modules/mod_helloworld.so@@

Le module est maintenant interrogé à chaque requête reçue par le serveur Apache. La gestion des événements doit maintenant passer au module une information complémentaire qui permettra de déterminer rapidement pour quelle raison il est invoqué par l'ajout d'un handler levé uniquement lors de l'accès à une page particulière, pour cela l'ajout de ces quelques lignes au fichier httpd.conf suffira:\\
@@<Location /welcome>@@\\
@@ SetHandler helloworld-handler@@\\
@@</Location>@@\\
 
Ainsi, le module sera comme à chaque fois invoqué à chaque requête sur le site mais n'aura en plus un handler valant @@helloworld-handler@@ que si le client a demandé la page @@/welcome@@. Nous pouvons maintenant tester la raison pour laquelle Apache vient nous importuner ! Le reste correspond à un flux de réponse, une message à insérer dans la log et finalement un message pour dire qu'il y eu un traitement la requête.\\
\\
Le projet de base est celui d'une DLL, par convenance j'ai changé l'extension de la DLL en SO (shared objet) bien que nous soyons sous Windows. Pour le reste, les chemins d'accès aux différents élements devra sans doute être adapté aux besoins.\\
Ci-après, l'archive complète de la [[http://www.grandville.net/download/mod_helloworld.zip|solution]]\\
\\
\\









Edit - History - Print - Recent Changes - Search
Page last modified on April 06, 2011, at 10:56 AM