<-
Apache > Serveur HTTP > Documentation > Version 2.4 > Programmes

apxs - Utilitaire pour les extensions d'Apache

Langues Disponibles:  en  |  fr  |  ko  |  tr 

apxs est un utilitaire permettant de compiler et d'installer des modules en tant qu'extensions du serveur HTTP Apache. A cet effet, un objet dynamique partag� (DSO) est compil� � partir d'un ou plusieurs fichiers sources ou objets et peut �tre charg� pendant l'ex�cution du serveur Apache via la directive LoadModule du module mod_so.

Pour pouvoir utiliser ce m�canisme d'extensions, votre plate-forme doit supporter la fonctionnalit� DSO, et votre binaire httpd Apache doit �tre compil� avec le module mod_so. Si ce n'est pas le cas, l'utilitaire apxs vous le signalera. Vous pouvez aussi v�rifier vous-m�me ces pr�requis en ex�cutant manuellement la commande :

$ httpd -l

Le module mod_so doit faire partie de la liste des modules affich�e. Si ces pr�requis sont pr�sents, vous pouvez facilement �tendre les fonctionnalit�s de votre serveur Apache en installant vos propres modules � l'aide de l'utilitaire apxs, via le m�canisme DSO :

$ apxs -i -a -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/chemin/vers/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
cp mod_foo.so /chemin/vers/apache/modules/mod_foo.so
chmod 755 /chemin/vers/apache/modules/mod_foo.so
[activation du module `foo' dans /chemin/vers/apache/etc/apache2.conf]
$ apache2ctl restart
/chemin/vers/apache/sbin/apache2ctl restart: httpd not running, trying to start
[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
/chemin/vers/apache/sbin/apache2ctl restart: httpd started
$ _

Les arguments fichiers peuvent correspondre � un fichier source C (.c), un fichier objet (.o) ou m�me une archive de biblioth�ques (.a). L'utilitaire apxs reconna�t automatiquement ces extensions et utilise automatiquement les fichiers source C pour la compilation, et les fichiers objets et archives pour l'�dition de liens. Cependant, si vous utilisez des fichiers objets pr�compil�s, assurez-vous que leur code soit ind�pendant de la position (PIC), afin de pouvoir les utiliser avec un objet partag� charg� dynamiquement. Avec GCC, par exemple, il vous suffit de toujours utiliser l'option de compilation -fpic. Pour les autres compilateurs C, consultez leur page de manuel, ou v�rifiez les drapeaux qu'apxs utilise pour compiler les fichiers objets.

Pour plus de d�tails � propos du support DSO dans Apache, lire la documentation du module mod_so, ou m�me, consultez le fichier source src/modules/standard/mod_so.c.

Voir aussi

top

Syntaxe

apxs -g [ -S nom=valeur ] -n nom-module

apxs -q [ -v ] [ -S nom=valeur ] requ�te ...

apxs -c [ -S nom=valeur ] [ -o fichier-dso ] [ -I r�pertoire-inc ] [ -D nom=valeur ] [ -L r�pertoire-lib ] [ -l nom-biblioth�que ] [ -Wc,options-compilation ] [ -Wl,options-edition-liens ] fichiers ...

apxs -i [ -S nom=valeur ] [ -n nom-module ] [ -a ] [ -A ] fichier-dso ...

apxs -e [ -S nom=valeur ] [ -n nom-module ] [ -a ] [ -A ] fichier-dso ...

top

Options

Options courantes

-n nom-module
D�finit explicitement le nom du module pour les options -i (install) et -g (g�n�ration de mod�les). Utilisez cette option pour sp�cifier de mani�re explicite le nom du module. Pour l'option -g, cette option est n�cessaire ; pour l'option -i, l'utilitaire apxs tente de d�terminer le nom du module � partir des sources, ou (� d�faut) en le d�duisant du nom de fichier.

Options de requ�te

-q
Effectue une requ�te � propos des variables et de l'environnement utilis�s pour compiler httpd. Lorsqu'elle est invoqu�e sans param�tre requ�te, cette option affiche toutes les variables connues, ainsi que leurs valeurs. Le param�tre optionnel -v formate la liste affich�e.

Utilisez cette option pour d�terminer manuellement les options utilis�es pour compiler le binaire httpd qui chargera votre module. Ajoutez par exemple

INC=-I`apxs -q INCLUDEDIR`

dans vos propres Makefiles si vous devez acc�der manuellement aux fichiers d'en-t�tes C d'Apache.

Options de configuration

-S nom=valeur
Cette option permet de modifier la configuration d'apxs d�crite ci-dessus.

Option de g�n�ration des mod�les

-g
Cette option permet de g�n�rer un sous-r�pertoire nom (voir option -n) contenant deux fichiers : le premier fichier est un exemple de fichier source de module nomm� mod_nom.c que l'on peut utiliser comme mod�le pour cr�er ses propres modules, ou comme point de d�part pour se familiariser avec le m�canisme apxs ; le second fichier est le Makefile correspondant facilitant la compilation et l'installation de ce module.

Options de compilation DSO

-c
Cette option indique une op�ration de compilation. Tout d'abord, les fichiers sources (.c) sp�cifi�s par fichiers sont compil�s en fichiers objets correspondants (.o), puis un objet dynamiquement partag� fichier-dso est compil� via une �dition de liens de ces fichiers objets avec les autres fichiers objets (.o and .a) sp�cifi�s par fichiers. Si l'option -o n'est pas sp�cifi�e, le nom du fichier r�sultant est d�duit du premier nom de fichier sp�cifi� par fichiers, et ainsi prend en g�n�ral pour valeur par d�faut mod_nom.so.
-o fichier-dso
Sp�cifie de mani�re explicite le nom de fichier de l'objet partag� dynamiquement cr��. Sans cette option, et si le nom ne peut pas �tre d�duit de la liste fichiers, c'est le nom par d�faut mod_unknown.so qui sera utilis�.
-D nom=valeur
Cette option est transmise directement � la commande de compilation. Vous pouvez l'utiliser pour ajouter vos propres d�finitions au processus de compilation.
-I r�pertoire-inc
Cette option est transmise directement � la commande de compilation. Vous pouvez l'utiliser pour ajouter vos propres chemins de recherche des r�pertoires include au processus de compilation.
-L r�pertoire-lib
Cette option est transmise directement � la commande d'�dition de liens. Vous pouvez l'utiliser pour ajouter vos propres chemins de recherche des r�pertoires de biblioth�ques au processus de compilation.
-l nom-biblioth�que
Cette option est transmise directement � la commande d'�dition de liens. Vous pouvez l'utiliser pour ajouter vos propres biblioth�ques � rechercher au processus de compilation.
-Wc,options-compilation
Cette option transmet les options-compilation en tant qu'options suppl�mentaires � la commande libtool --mode=compile. Vous pouvez l'utiliser pour ajouter des options locales sp�cifiques au compilateur.
-Wl,options-edition-liens
Cette option transmet les options-edition-liens en tant qu'options suppl�mentaires � la commande libtool --mode=link. Vous pouvez l'utiliser pour ajouter des options locales sp�cifiques � l'�diteur de liens.
-p
Avec cette option, apxs effectue l'�dition de liens avec les biblioth�ques apr/apr-util. Elle permet de compiler les programmes helper qui utilisent les biblioth�ques apr/apr-util.

Options d'installation et de configuration DSO

-i
Cette option indique une op�ration d'installation et installe un ou plusieurs objets dynamiquement partag�s dans le r�pertoire modules du serveur.
-a
Cette option active le module en ajoutant automatiquement une directive LoadModule correspondante au fichier de configuration d'Apache apache2.conf, ou en l'activant s'il existe d�j�.
-A
Identique � l'option -a, � la diff�rence que la directive LoadModule cr��e est pr�fix�e par un caract�re di�se (#) ; le module est ainsi pr�par� pour une activation ult�rieure, mais est d�sactiv� dans un premier temps.
-e
Cette option indique une op�ration d'�dition de liens et peut �tre utilis�e avec les options -a et -A de la m�me mani�re qu'au cours de l'op�ration d'installation pour �diter le fichier de configuration d'Apache apache2.conf, sans toutefois installer le module.
top

Exemples

Supposons que vous disposiez d'un module Apache nomm� mod_foo.c et destin� � �tendre les fonctionnalit�s du serveur. Pour ce faire, vous devez tout d'abord compiler le fichier source C en un objet partag� pouvant �tre charg� dans le serveur Apache � l'ex�cution, via la commande suivante :

$ apxs -c mod_foo.c
/chemin/vers/libtool --mode=compile gcc ... -c mod_foo.c
/chemin/vers/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo
$ _

Vous devez ensuite v�rifier la configuration d'Apache en vous assurant qu'une directive LoadModule est bien pr�sente pour charger cet objet partag�. Pour simplifier cette �tape, apxs propose une m�thode automatique d'installation de l'objet partag� dans son r�pertoire "modules", et de mise � jour du fichier apache2.conf en cons�quence. Pour b�n�ficier de cette automatisation, utilisez la commande suivante :

$ apxs -i -a mod_foo.la
/chemin/vers/instdso.sh mod_foo.la /chemin/vers/apache/modules
/chemin/vers/libtool --mode=install cp mod_foo.la /chemin/vers/apache/modules ... chmod 755 /chemin/vers/apache/modules/mod_foo.so
[activation du module `foo' dans /chemin/vers/apache/conf/apache2.conf]
$ _

Une ligne contenant

LoadModule foo_module modules/mod_foo.so

est alors ajout�e au fichier de configuration si ce n'est pas d�j� fait. Si vous voulez que le module soit d�sactiv� par d�faut, utilisez l'option -A comme suit :

$ apxs -i -A mod_foo.c

Pour un test rapide du m�canisme apxs, vous pouvez cr�er un exemple de mod�le de module Apache, ainsi que le Makefile correspondant via :

$ apxs -g -n foo
Creating [DIR] foo
Creating [FILE] foo/Makefile
Creating [FILE] foo/modules.mk
Creating [FILE] foo/mod_foo.c
Creating [FILE] foo/.deps
$ _

Vous pouvez ensuite compiler imm�diatement ce module exemple en objet partag� et le charger dans le serveur Apache :

$ cd foo
$ make all reload
apxs -c mod_foo.c
/chemin/vers/libtool --mode=compile gcc ... -c mod_foo.c
/chemin/vers/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo
apxs -i -a -n "foo" mod_foo.la
/chemin/vers/instdso.sh mod_foo.la /chemin/vers/apache/modules
/chemin/vers/libtool --mode=install cp mod_foo.la /chemin/vers/apache/modules ... chmod 755 /chemin/vers/apache/modules/mod_foo.so
[activation du module `foo' dans /chemin/vers/apache/conf/apache2.conf]
apache2ctl restart
/chemin/vers/apache/sbin/apache2ctl restart: httpd not running, trying to start
[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
/chemin/vers/apache/sbin/apache2ctl restart: httpd started
$ _

Langues Disponibles:  en  |  fr  |  ko  |  tr 

top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.