1 |
titefleur 08/07/30 13:07:16 |
2 |
|
3 |
Added: developer.xml |
4 |
Log: |
5 |
Copy to /doc directory |
6 |
|
7 |
Revision Changes Path |
8 |
1.1 xml/htdocs/proj/fr/apache/doc/developer.xml |
9 |
|
10 |
file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/fr/apache/doc/developer.xml?rev=1.1&view=markup |
11 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/fr/apache/doc/developer.xml?rev=1.1&content-type=text/plain |
12 |
|
13 |
Index: developer.xml |
14 |
=================================================================== |
15 |
<?xml version="1.0" encoding="UTF-8"?> |
16 |
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
17 |
<!-- $Header $ --> |
18 |
|
19 |
<guide link="/proj/fr/apache/doc/developer.xml" lang="fr"> |
20 |
<title>Documentation Apache pour les développeurs</title> |
21 |
|
22 |
<author title="Auteur"> |
23 |
<mail link="vericgar@g.o">Michael Stewart</mail> |
24 |
</author> |
25 |
<author title="Traducteur"> |
26 |
<mail link="titefleur@g.o">Marion Agé</mail> |
27 |
</author> |
28 |
|
29 |
<abstract> |
30 |
Ce document fournit des détails au sujet des nouvelles eclass disponibles pour |
31 |
les développeurs des paquets relatifs à Apache. |
32 |
</abstract> |
33 |
|
34 |
<!-- The content of this document is licensed under the CC-BY-SA license --> |
35 |
<!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
36 |
<license/> |
37 |
|
38 |
<version>2.4</version> |
39 |
<date>2007-07-30</date> |
40 |
|
41 |
<chapter> |
42 |
<title>À propos de ce document</title> |
43 |
<section> |
44 |
<body> |
45 |
|
46 |
<p> |
47 |
Ce document détaille les <uri link="#apache-module">nouvelles eclass</uri>, |
48 |
<uri link="#changes">ce que nous avons changé</uri> depuis le précédent modèle |
49 |
d'Apache, et la façon dont les ebuilds ont besoin d'être <uri |
50 |
link="#ebuild-update">modifiés</uri> pour tenir compte des avantages de nos |
51 |
nouvelles eclass. Si vous êtes un utilisateur à la recherche d'informations |
52 |
pour la mise à jour d'Apache, veuillez plutôt consulter le documentation de la |
53 |
<uri link="apache-upgrading.xml">mise à jour d'Apache</uri>. |
54 |
</p> |
55 |
|
56 |
</body> |
57 |
</section> |
58 |
</chapter> |
59 |
|
60 |
<chapter id="changes"> |
61 |
<title>Ce qui a changé</title> |
62 |
<section> |
63 |
<title>Vue d'ensemble</title> |
64 |
<body> |
65 |
|
66 |
<p> |
67 |
Nous avons fait beaucoup de changements concernant la procédure d'installation |
68 |
et d'utilisation d'Apache et de ses modules sous Gentoo. Cela facilite les |
69 |
tâches de maintenance et permet de suivre de près les versions en amont. Voici |
70 |
nos changements : |
71 |
</p> |
72 |
|
73 |
<ul> |
74 |
<li>Correction de nombreux <uri link="#buglist">bogues</uri></li> |
75 |
<li>Changement des chemins d'installation et de configuration</li> |
76 |
<li> |
77 |
Création des eclass <uri link="#depend-apache">depend.apache</uri> et <uri |
78 |
link="#apache-module">apache-module</uri> |
79 |
</li> |
80 |
<li> |
81 |
Fusion des fichiers apache.conf et commonapache.conf en un seul fichier |
82 |
très similaire à la version de base |
83 |
</li> |
84 |
<li> |
85 |
Dédoublement de <c>apr</c> et <c>apr-utils</c> en-dehors du paquet |
86 |
principal d'Apache pour ceux qui ne nécessitent plus Apache |
87 |
</li> |
88 |
<li>Mise à jour et estampillage d'une version pour presque chaque module</li> |
89 |
<li>Mise à disposition d'un plus grand nombre de MPM</li> |
90 |
<li>Ajout du support de lingerd</li> |
91 |
<li>Fixation du support des longs fichiers</li> |
92 |
<li><e>Et bien plus encore, je suis sûr que j'en oublie...</e></li> |
93 |
</ul> |
94 |
|
95 |
</body> |
96 |
</section> |
97 |
<section> |
98 |
<title>Localisation des chemins d'Apache</title> |
99 |
<body> |
100 |
|
101 |
<p> |
102 |
Afin de suivre de plus près l'installation d'Apache en amont et celle des |
103 |
autres distributions, les chemins suivant ont changé : |
104 |
</p> |
105 |
|
106 |
</body> |
107 |
</section> |
108 |
<section> |
109 |
<title>Apache 2.x</title> |
110 |
<body> |
111 |
|
112 |
<table> |
113 |
<tr> |
114 |
<th>Utilisation</th> |
115 |
<th>Ancien chemin</th> |
116 |
<th>Nouveau chemin</th> |
117 |
</tr> |
118 |
<tr> |
119 |
<ti>Racine du serveur</ti> |
120 |
<ti><path>/etc/apache2/</path></ti> |
121 |
<ti><path>/usr/lib/apache2/</path></ti> |
122 |
</tr> |
123 |
<tr> |
124 |
<ti>Répertoire de configuration</ti> |
125 |
<ti><path>/etc/apache2/conf/</path></ti> |
126 |
<ti><path>/etc/apache2/</path></ti> |
127 |
</tr> |
128 |
<tr> |
129 |
<ti>Configuration</ti> |
130 |
<ti><path>/etc/apache2/conf/apache2.conf</path></ti> |
131 |
<ti><path>/etc/apache2/httpd.conf</path></ti> |
132 |
</tr> |
133 |
<tr> |
134 |
<ti>Configuration</ti> |
135 |
<ti><path>/etc/apache2/conf/commonapache2.conf</path></ti> |
136 |
<ti><path>/etc/apache2/httpd.conf</path></ti> |
137 |
</tr> |
138 |
<tr> |
139 |
<ti>Configuration des hôtes virtuels</ti> |
140 |
<ti><path>/etc/apache2/conf/vhosts/</path></ti> |
141 |
<ti><path>/etc/apache2/vhosts.d/</path></ti> |
142 |
</tr> |
143 |
<tr> |
144 |
<ti>Configuration des modules</ti> |
145 |
<ti><path>/etc/apache2/conf/modules.d/</path></ti> |
146 |
<ti><path>/etc/apache2/modules.d/</path></ti> |
147 |
</tr> |
148 |
<tr> |
149 |
<ti>Modules binaires</ti> |
150 |
<ti><path>/usr/lib/apache2-extramodules/</path></ti> |
151 |
<ti><path>/usr/lib/apache2/modules/</path></ti> |
152 |
</tr> |
153 |
</table> |
154 |
|
155 |
<note> |
156 |
La configuration inclut désormais automatiquement les fichiers |
157 |
<path>modules.d/*.conf</path> et <path>vhosts.d/*.conf</path> par défaut. |
158 |
Cependant, la directive dans le fichier <path>httpd.conf</path> énumère ce qui |
159 |
précède de la même façon que <path>conf/modules.d/*.conf</path> et |
160 |
<path>conf/vhosts.d/*.conf</path>. Cela est dû au fait qu'Apache lit la |
161 |
configuration en utilisant le répertoire <path>/usr/lib/apache{|2}</path> qui |
162 |
contient un lien symbolique <path>conf -> /etc/apache{|2}</path>. |
163 |
</note> |
164 |
|
165 |
<impo> |
166 |
Si vous êtes développeur et que vous mettez à jour un ebuild pour utiliser les |
167 |
changements que nous avons faits, veuillez ne pas compliquer les chemins cités |
168 |
précédemment dans votre ebuild. Regardez plutôt la documentation des eclass |
169 |
pour les variables appropriées que vous pouvez utiliser. |
170 |
</impo> |
171 |
|
172 |
</body> |
173 |
</section> |
174 |
</chapter> |
175 |
|
176 |
<chapter id="ebuild-update"> |
177 |
<title>Mise à jour d'un ebuild</title> |
178 |
<section> |
179 |
<body> |
180 |
|
181 |
<p> |
182 |
Avec nos nouveaux changements, pratiquement chaque ebuild qui dépend d'Apache |
183 |
doit être modifié. L'équipe d'Apache a déjà pris compte d'une grande majorité |
184 |
de ces paquets, car ils en sont responsables. Mais il en reste plusieurs qui |
185 |
appartiennent à d'autres mainteneurs et qui ont besoin d'être mis à jour. |
186 |
</p> |
187 |
|
188 |
<p> |
189 |
Ce chapitre a pour but de guider un développeur à travers la mise à jour d'un |
190 |
ebuild pour utiliser les nouvelles eclass, en s'appuyant sur un de nos paquets |
191 |
les plus complexes, <c>www-apache/mod_ldap_userdir</c> par exemple. |
192 |
</p> |
193 |
|
194 |
<note> |
195 |
Si votre paquet actuellement n'est pas un module mais qu'il a juste besoin de |
196 |
connaître les chemins qu'utilise Apache, faites simplement un <c>inherit |
197 |
depend.apache</c> et utilisez les variables qui sont mises à votre disposition |
198 |
dans les eclass. Consultez pour cela la documentation du <uri |
199 |
link="#depend-apache">depend.apache</uri> des eclass. |
200 |
</note> |
201 |
|
202 |
</body> |
203 |
</section> |
204 |
<section> |
205 |
<title>Vue d'ensemble des changements nécessaires</title> |
206 |
<body> |
207 |
|
208 |
<ul> |
209 |
<li> |
210 |
Une nouvelle révision sera nécessaire tant que les versions modifiées pour |
211 |
les nouvelles eclass ne sont pas rétro-compatibles avec les anciennes |
212 |
versions d'Apache. |
213 |
</li> |
214 |
<li> |
215 |
Assurez-vous d'avoir mis votre <c>KEYWORDS</c> en instable et (si les |
216 |
paquets d'Apache sont encore masqués) ajoutez-les au fichier |
217 |
<path>package.mask</path>. |
218 |
</li> |
219 |
<li> |
220 |
Remplacez chaque <c>DEPEND</c> d'Apache par <c>need_apache1</c> (pour les |
221 |
modules de Apache-1*), par <c>need_apache2</c> (pour les modules |
222 |
d'Apache-2*), ou par <c>need_apache</c> (pour les modules qui peuvent |
223 |
dépendre d'Apache-1* ou d'Apache-2* — selon les variables USE |
224 |
indiquées). |
225 |
</li> |
226 |
<li> |
227 |
Retirez n'importe quel code spécifique qui modifie le <c>SLOT</c> ou |
228 |
<c>DEPEND</c> avec des « bidouilles » telles que |
229 |
<c>has_version</c>. |
230 |
</li> |
231 |
<li> |
232 |
Vérifiez que le <c>src_compile</c> par défaut dans l'eclass est |
233 |
fonctionnel. Si ce n'est pas le cas, réglez <c>APXS1_ARGS</c> et/ou |
234 |
<c>APXS2_ARGS</c> pour compiler les autres fichiers requis. |
235 |
</li> |
236 |
<li>Généralement toutes les fonctions peuvent être retirées de l'ebuild.</li> |
237 |
<li> |
238 |
Modifiez le fichier de configuration des modules afin d'utiliser les |
239 |
directives <c>IfDefine</c> pour charger et configurer le module. |
240 |
</li> |
241 |
<li>Ajoutez les fichiers de documentation dans <c>DOCFILES</c>.</li> |
242 |
<li> |
243 |
Spécifiez les fichiers de configuration que src_install devra |
244 |
installer : <c>APACHE1_MOD_CONF</c>, <c>APACHE2_MOD_CONF</c>. |
245 |
</li> |
246 |
<li> |
247 |
Spécifiez le <c>IfDefine</c> que le module utilise dans son fichier de |
248 |
configuration, pkg_postinst peut vous donner des informations utiles pour |
249 |
activer le module : <c>APACHE1_MOD_DEFINE</c>, |
250 |
<c>APACHE2_MOD_DEFINE</c>. |
251 |
</li> |
252 |
<li> |
253 |
N'oubliez pas de le tester — suivez les instructions de mise à jour |
254 |
de ce document si vous ne l'avez pas déjà fait. |
255 |
</li> |
256 |
</ul> |
257 |
|
258 |
</body> |
259 |
</section> |
260 |
<section> |
261 |
<title>Ebuilds globaux</title> |
262 |
<body> |
263 |
|
264 |
|
265 |
<pre caption="Diff entre mod_ldap_userdir-1.4.1 et mod_ldap_userdir-1.4.1-r1 |
266 |
(edité)"> |
267 |
+inherit apache-module |
268 |
+ |
269 |
-IUSE="apache2 ssl" |
270 |
+IUSE="ssl" |
271 |
|
272 |
DESCRIPTION="Apache module that enables ~/public_html from an LDAP directory." |
273 |
HOMEPAGE="http://horde.net/~jwm/software/mod_ldap_userdir/" |
274 |
-KEYWORDS="x86 ppc" |
275 |
+KEYWORDS="~x86 ~ppc" |
276 |
|
277 |
SRC_URI="http://horde.net/~jwm/software/mod_ldap_userdir/${P}.tar.gz" |
278 |
|
279 |
-DEPEND="=net-www/apache-1* |
280 |
- apache2? ( =net-www/apache-2* ) |
281 |
- ssl? ( dev-libs/openssl ) |
282 |
- net-nds/openldap" |
283 |
+DEPEND="ssl? ( dev-libs/openssl ) |
284 |
+ net-nds/openldap" |
285 |
|
286 |
LICENSE="GPL-1" |
287 |
SLOT="0" |
288 |
+ |
289 |
+DOCFILES="DIRECTIVES README user-ldif posixAccount-objectclass" |
290 |
+APACHE1_MOD_CONF="${PVR}/47_mod_ldap_userdir" |
291 |
+APACHE2_MOD_CONF="${PVR}/47_mod_ldap_userdir" |
292 |
+APACHE1_MOD_DEFINE="LDAPuserdir" |
293 |
+APACHE2_MOD_DEFINE="LDAPuserdir" |
294 |
+ |
295 |
+need_apache |
296 |
</pre> |
297 |
|
298 |
<p> |
299 |
Nous commençons avec <c>inherit apache-module</c> qui hérite également |
300 |
<c>depend.apache</c>. <c>depend.apache</c> définit les localisations qu'utilise |
301 |
Apache et, plus important, définit trois <c>DEPEND</c> : |
302 |
<c>APACHE1_DEPEND</c> pour les paquets qui ont besoin d'Apache-1*, |
303 |
<c>APACHE2_DEPEND</c> pour les paquets qui ont besoin d'Apache-2*, et |
304 |
<c>APACHE_DEPEND</c> pour les paquets qui peuvent avoir besoin soit d'Apache-1* |
305 |
soit d'Apache-2* et qui laissent à la variable USE apache2 le soin de |
306 |
déterminer cela. |
307 |
</p> |
308 |
|
309 |
<note> |
310 |
Pour le moment, nous ne supportons pas l'installation des deux versions |
311 |
d'Apache simultanément (bien que cela soit possible), car il n'est pas possible |
312 |
ensuite d'installer une seule version d'un module pour les deux versions |
313 |
d'Apache. Les modules devront juste utiliser un <c>SLOT</c> autre que <c>0</c> |
314 |
s'ils ont des lignes multiples de version et que chacun supporte une version |
315 |
différente d'Apache. (i.e. <path>mod_layout-3.2.1-r1</path> possède un |
316 |
<c>SLOT="1"</c> et <path>mod_layout-4.0.1a-r1</path> un <c>SLOT="2"</c>.) |
317 |
</note> |
318 |
|
319 |
<p> |
320 |
<c>apache-module</c> s'occupe d'une lourde tâche pour les paquets de module en |
321 |
définissant des valeurs convenables par défaut pour <c>pkg_setup</c>, |
322 |
<c>src_compile</c>, <c>src_install</c> et <c>pkg_postinst</c>. |
323 |
</p> |
324 |
|
325 |
<p> |
326 |
Comme <c>depend.apache</c> ajoute <c>apache2</c> à IUSE si nécessaire, vous ne |
327 |
devez plus le définir explicitement dans l'IUSE des ebuilds. Vous devrez |
328 |
cependant le laisser défini si vous employez cette variable USE dans votre |
329 |
ebuild quelque part. |
330 |
</p> |
331 |
|
332 |
<p> |
333 |
<c>depend.apache</c> s'exécute en ajoutant le DEPEND Apache correct à votre |
334 |
DEPEND (si vous appelez l'une des fonctions de <c>need_apache{|1|2}</c>), ainsi |
335 |
vous pouvez retirer le traitement du DEPEND Apache de votre ebuild. |
336 |
</p> |
337 |
|
338 |
<p> |
339 |
<c>DOCFILES</c> est utilisé par <c>src_install</c> dans <c>apache-modules</c> |
340 |
pour installer toutes les documentations. <c>src_install</c> détecte |
341 |
automatiquement les fichiers html et les autres fichiers, et utilise |
342 |
<c>dodoc</c> ou <c>dohtml</c> pour les installer à leur bonne place. |
343 |
</p> |
344 |
|
345 |
<p> |
346 |
<c>APACHE1_MOD_CONF</c> et <c>APACHE2_MOD_CONF</c> définissent le fichier de |
347 |
configuration à installer pour le module. Ceci est utilisé pendant le |
348 |
<c>src_install</c>, ainsi ils peuvent être liés à ce que vous avez défini pour |
349 |
<c>APXS1_S</c> ou <c>APXS2_S</c> (par défaut à <c>${S}/src</c> si c'est un |
350 |
répertoire, ou juste <c>${S}</c>). |
351 |
</p> |
352 |
|
353 |
<p> |
354 |
<c>APACHE1_MOD_DEFINE</c> et <c>APACHE2_MOD_DEFINE</c> indiquent aux eclass de |
355 |
quelle directive <c><IfDefine MODULENAME></c> le module se sert. Il est |
356 |
utilisé pour afficher à l'utilisateur des commandes sur la façon d'activer le |
357 |
module. |
358 |
</p> |
359 |
|
360 |
</body> |
361 |
</section> |
362 |
<section> |
363 |
<title>src_compile</title> |
364 |
<body> |
365 |
|
366 |
<p> |
367 |
<c>src_compile</c> peut être nécessaire si le module requiert des étapes |
368 |
spéciales que l'eclass ne peut traiter. Ce serait un cas assez exceptionnel. |
369 |
Dans la plupart des cas, en passant juste en revue le fichier |
370 |
<path>Makefile</path> et en ajoutant les éléments à <c>APXS1_ARGS</c> ou |
371 |
<c>APXS2_ARGS</c>, cela devrait être suffisant. |
372 |
</p> |
373 |
|
374 |
<pre caption="Diff entre mod_ldap_userdir-1.4.1 et mod_ldap_userdir-1.4.1-r1 |
375 |
(édité)"> |
376 |
-src_compile() { |
377 |
- local myconf |
378 |
- if use apache2; then |
379 |
- myconf="${myconf} --with-apxs2=/usr/sbin/apxs2" |
380 |
- else |
381 |
- myconf="${myconf} --with-apxs=/usr/sbin/apxs" |
382 |
- fi |
383 |
- |
384 |
- use ssl && myconf="${myconf} -with-tls" |
385 |
- |
386 |
- myconf="${myconf} --with-activate" |
387 |
- ./configure ${myconf} || die "Configure failed" |
388 |
- make clean |
389 |
- make || die "Make failed" |
390 |
-} |
391 |
|
392 |
+src_compile() { |
393 |
+ local myargs="-lldap -llber -c ${PN}.c" |
394 |
+ use ssl && myargs="${myargs} -D TLS=1" |
395 |
+ |
396 |
+ APXS2_ARGS="${myargs}" |
397 |
+ APXS1_ARGS="${myargs}" |
398 |
+ |
399 |
+ apache-module_src_compile |
400 |
+ |
401 |
+} |
402 |
</pre> |
403 |
|
404 |
<note> |
405 |
En général, si APXS1_ARGS ou APXS2_ARGS ont besoin d'être distincts, ils sont |
406 |
définis dans l'espace global. <path>mod_ldap_userdir</path> est différent à cet |
407 |
égard, parce que l'état de la variable USE ssl affecte ces variables et il est |
408 |
plus efficace de placer uniquement ces valeurs dans <c>src_compile</c> plutôt |
409 |
que de faire une vérification de la USE à chaque fois que vous invoquerez cet |
410 |
ebuild. |
411 |
</note> |
412 |
|
413 |
</body> |
414 |
</section> |
415 |
<section> |
416 |
<title>src_install</title> |
417 |
<body> |
418 |
|
419 |
<p> |
420 |
Dans la plupart des cas, <c>src_install</c> ne sera pas nécessaire. Il y a des |
421 |
exceptions quand d'autres répertoires ont besoin d'être installés ou quand les |
422 |
droits de fichiers doivent être changés. |
423 |
</p> |
424 |
|
425 |
<pre caption="Diff entre mod_ldap_userdir-1.4.1 et mod_ldap_userdir-1.4.1-r1 |
426 |
(édité)"> |
427 |
-src_install() { |
428 |
- if use apache2; then |
429 |
- exeinto /usr/lib/apache2-extramodules |
430 |
- doexe mod_ldap_userdir.so |
431 |
- else |
432 |
- exeinto /usr/lib/apache-extramodules |
433 |
- doexe mod_ldap_userdir.so |
434 |
- fi |
435 |
- dodoc DIRECTIVES README user-ldif posixAccount-objectclass |
436 |
-} |
437 |
+src_install() { |
438 |
+ apache-module_src_install |
439 |
+ if [ "${APACHE_VERSION}" == "2" ]; then |
440 |
+ fperms 600 ${APACHE2_MODULES_CONFDIR}/$(basename ${APACHE2_MOD_CONF}) |
441 |
+ else |
442 |
+ fperms 600 ${APACHE1_MODULES_CONFDIR}/$(basename ${APACHE1_MOD_CONF}) |
443 |
+ fi |
444 |
+} |
445 |
</pre> |
446 |
|
447 |
<p> |
448 |
Comme vous pouvez le voir, dans <path>mod_ldap_userdir</path> nous avions en |
449 |
fait ajouté quelques corrections qui n'étaient pas présentes dans la révision |
450 |
précédente — l'ajout d'un fichier de configuration et le réglage des |
451 |
permissions appropriées dessus. Mais nous permettons encore la présentation de |
452 |
<c>apache-module</c> en appelant <c>apache-module_src_install</c> à l'intérieur |
453 |
de notre <c>src_install</c>. Dans la plupart des cas, <c>src_install</c> ne |
454 |
sera pas nécessaire du tout. |
455 |
</p> |
456 |
|
457 |
<p> |
458 |
<c>src_install</c> traite complètement l'installation du module, la |
459 |
configuration des fichiers et la documentation aux endroits corrects. |
460 |
</p> |
461 |
|
462 |
</body> |
463 |
</section> |
464 |
<section> |
465 |
<title>Autres fonctions</title> |
466 |
<body> |
467 |
|
468 |
<p> |
469 |
Dans la plupart des cas, il ne devrait y avoir ni pkg_postinst ni pkg_config |
470 |
pendant que les eclass manipulent des instructions d'affichage à l'utilisateur |
471 |
à propos de l'activation d'un module et de l'emplacement du fichier de |
472 |
configuration. Si des instructions additionnelles d'installation sont |
473 |
nécessaires, alors un <c>pkg_postinst</c> peut être ajouté, mais il devrait |
474 |
alors exécuter <c>apache1_pkg_postinst</c> ou <c>apache2_pkg_postinst</c> à |
475 |
l'intérieur de lui-même. |
476 |
</p> |
477 |
|
478 |
<pre caption="Diff entre mod_ldap_userdir-1.4.1 et mod_ldap_userdir-1.4.1-r1 |
479 |
(édité)"> |
480 |
-pkg_postinst() { |
481 |
- if use apache2; then |
482 |
- elog "Adjust /etc/apache2/conf/modules.d/47_mod_ldap_userdir.conf to match your setup and" |
483 |
- elog "add '-D LDAPuserdir' to your APACHE2_OPTS in /etc/conf.d/apache2" |
484 |
- elog "To configure the package run \"ebuild /var/db/pkg/net-www/${PF}/${PF}.ebuild config\"" |
485 |
- fi |
486 |
-} |
487 |
- |
488 |
-pkg_config() { |
489 |
- /usr/sbin/apacheaddmod \ |
490 |
- ${ROOT}/etc/apache/conf/apache.conf \ |
491 |
- extramodules/mod_ldap_userdir.so mod_ldap_userdir.c ldap_userdir_module \ |
492 |
- define=LDAPuserdir addconf=conf/addon-modules/47_mod_ldap_userdir.conf |
493 |
-} |
494 |
</pre> |
495 |
|
496 |
<p> |
497 |
Avec la nouvelle configration par défaut d'Apache, nous n'avons plus besoin |
498 |
d'obliger l'utilisateur à modifier son fichier <path>httpd.conf</path> pour |
499 |
activer le module. Tous les fichiers <path>*.conf</path> du répertoire |
500 |
<path>modules.d</path> sont inclus automatiquement. Chaque fichier présent |
501 |
devra être complètement compris dans un bloc <c><IfDefine |
502 |
MODULENAME></c>, de telle sorte que les directives dans ce fichier ne soient |
503 |
utilisées que si les utilisateurs ajoutent un <c>"-D MODULENAME"</c> à leur |
504 |
fichier <path>/etc/conf.d/apache{|2}</path>. |
505 |
</p> |
506 |
|
507 |
</body> |
508 |
</section> |
509 |
<section> |
510 |
<title>Fichier de configuration</title> |
511 |
<body> |
512 |
|
513 |
<p> |
514 |
La plupart des fichiers de configuration n'auront besoin que de peu de |
515 |
changements. Voici le principal à surveiller pour être sûr qu'il utilise le |
516 |
chemin correct au chargement du module : |
517 |
</p> |
518 |
|
519 |
|
520 |
<pre caption="Directive LoadModule"> |
521 |
<comment>(Ancienne directive :)</comment> |
522 |
LoadModule ldap_userdir_module extramodules/mod_ldap_userdir.so |
523 |
|
524 |
<comment>(Nouvelle directive :)</comment> |
525 |
LoadModule ldap_userdir_module modules/mod_ldap_userdir.so |
526 |
</pre> |
527 |
|
528 |
<p> |
529 |
Ainsi, chaque fichier de configuration de module a besoin d'être compris dans |
530 |
un bloc <c><IfDefine MODULENAME></c>. Si vous ne faites pas cela, alors |
531 |
Apache chargera le module par défaut, ce que nous ne voulons pas — le |
532 |
chargement du module doit être contrôlé par l'utilisateur, en utilisant le |
533 |
fichier <path>/etc/conf.d/apache{|2}</path>. |
534 |
</p> |
535 |
|
536 |
<pre caption="Exemple de .conf"> |
537 |
<IfDefine LDAPuserdir> |
538 |
<IfModule !mod_ldap_userdir.c> |
539 |
<comment># Load the module:</comment> |
540 |
LoadModule ldap_userdir_module modules/mod_ldap_userdir.so |
541 |
</IfModule> |
542 |
</IfDefine> |
543 |
|
544 |
<IfModule mod_ldap_userdir.c> |
545 |
<comment># Mettez une bonne configuration par défaut ici :</comment> |
546 |
|
547 |
LDAPUserDir public_html |
548 |
LDAPUserDirDNInfo cn=root,dc=yourcompany,dc=com yourpassword |
549 |
LDAPUserDirBaseDN ou=People,dc=yourcompany,dc=com |
550 |
|
551 |
</IfModule> |
552 |
</pre> |
553 |
|
554 |
<note> |
555 |
Certains modules peuvent vouloir ajouter des extensions qui sont vérifiées dans |
556 |
le DirectoryIndex. Nous avons modifié Apache afin d'avoir une nouvelle |
557 |
directive de configuration, AddDirectoryIndex, qui ne s'occupe que de cela. |
558 |
Utilisez-le exactement comme DirectoryIndex - il travaille de la même manière à |
559 |
l'exception près qu'il ne remplace pas le DirectoryIndex, il s'ajoute à lui. Il |
560 |
y a également un RemoveDirectoryIndex si cela est nécessaire pour une raison |
561 |
quelconque. |
562 |
</note> |
563 |
|
564 |
</body> |
565 |
</section> |
566 |
</chapter> |
567 |
|
568 |
<chapter id="apache-module"> |
569 |
<title>Eclass apache-module</title> |
570 |
<section> |
571 |
<title>Description</title> |
572 |
<body> |
573 |
|
574 |
<p> |
575 |
L'eclass <c>apache-module</c> fournit des fonctions convenables par défaut pour |
576 |
la compilation des modules Apache. Puisque la plupart des modules sont compilés |
577 |
exactement de la même manière, ceci permet aux ebuilds de modules d'être |
578 |
extrêmement simples. |
579 |
</p> |
580 |
|
581 |
</body> |
582 |
</section> |
583 |
<section> |
584 |
<title>Fonctions</title> |
585 |
<body> |
586 |
|
587 |
<table> |
588 |
<tr> |
589 |
<th>Fonction</th> |
590 |
<th>Description</th> |
591 |
</tr> |
592 |
<tr> |
593 |
<ti><c>apache_cd_dir</c></ti> |
594 |
<ti>Retourne le chemin correct du répertoire temporaire de construction.</ti> |
595 |
</tr> |
596 |
<tr> |
597 |
<ti><c>apache_mod_file</c></ti> |
598 |
<ti>Retourne le chemin du module construit à installer.</ti> |
599 |
</tr> |
600 |
<tr> |
601 |
<ti><c>apache_doc_magic</c></ti> |
602 |
<ti> |
603 |
Prend un seul argument optionnel. Si celui-ci est mentionné, la fonction |
604 |
retourne tous les fichiers *.html de <c>${DOCFILES}</c>, autrement il |
605 |
retourne tous les fichiers non-*.html. |
606 |
</ti> |
607 |
</tr> |
608 |
<tr> |
609 |
<ti><c>apache1_src_compile</c></ti> |
610 |
<ti> |
611 |
Appelle <c>${APXS1}</c> avec les arguments de <c>${APXS1_ARGS}</c>. Si un |
612 |
module requiert une installation différente de construction que celle-ci, |
613 |
utilisez <c>${APXS1}</c> dans votre propre src_compile quotidien. |
614 |
</ti> |
615 |
</tr> |
616 |
<tr> |
617 |
<ti><c>apache1_src_install</c></ti> |
618 |
<ti> |
619 |
Cette fonction installe le module et configure les fichiers dans le |
620 |
répertoire d'Apache. Elle gère l'installation des modules, leur |
621 |
configuration, les exécutables relatifs et la documentation. |
622 |
</ti> |
623 |
</tr> |
624 |
<tr> |
625 |
<ti><c>apache1_pkg_postinst</c></ti> |
626 |
<ti>Affiche les messages de configuration standard.</ti> |
627 |
</tr> |
628 |
<tr> |
629 |
<ti><c>apache2_pkg_setup</c></ti> |
630 |
<ti> |
631 |
Si APACHE2_SAFE_MPMS est paramétré, cette fonction vérifie les MPM |
632 |
installés et affiche une erreur s'il n'y a aucun MPM sûr installé. |
633 |
</ti> |
634 |
</tr> |
635 |
<tr> |
636 |
<ti><c>apache2_src_compile</c></ti> |
637 |
<ti> |
638 |
Appelle <c>${APXS2}</c> avec les arguments de <c>${APXS2_ARGS}</c>. Si un |
639 |
module requiert une installation différente de construction que celle-ci, |
640 |
utilisez <c>${APXS2}</c> dans votre propre src_compile quotidien. |
641 |
</ti> |
642 |
</tr> |
643 |
<tr> |
644 |
<ti><c>apache2_src_install</c></ti> |
645 |
<ti> |
646 |
Cette fonction installe le module et configure les fichiers dans le |
647 |
répertoire d'Apache. Elle gère l'installation des modules, leur |
648 |
configuration, les exécutables relatifs et la documentation. |
649 |
</ti> |
650 |
</tr> |
651 |
<tr> |
652 |
<ti> |
653 |
<c>apache-module_pkg_setup</c><br /> |
654 |
<c>apache-module_src_compile</c><br /> |
655 |
<c>apache-module_src_install</c><br /> |
656 |
<c>apache-module_pkg_postinst</c> |
657 |
</ti> |
658 |
<ti> |
659 |
Ce sont des fonctions englobantes des fonctions apache1_* or apache2_*. |
660 |
Elles détectent automatiquement la version d'Apache avec lesquelles elles |
661 |
sont construites. |
662 |
</ti> |
663 |
</tr> |
664 |
</table> |
665 |
|
666 |
</body> |
667 |
</section> |
668 |
<section> |
669 |
<title>Variables</title> |
670 |
<body> |
671 |
|
672 |
<table> |
673 |
<tr> |
674 |
<th>Variable</th> |
675 |
<th>Défaut</th> |
676 |
<th>Description</th> |
677 |
</tr> |
678 |
<tr> |
679 |
<ti> |
680 |
<c>APACHE1_MOD_CONF</c><br /> |
681 |
<c>APACHE2_MOD_CONF</c> |
682 |
</ti> |
683 |
<ti>Non</ti> |
684 |
<ti> |
685 |
L'emplacement dans <c>${FILESDIR}</c> de la configuration des modules, sans |
686 |
l'extention .conf. |
687 |
</ti> |
688 |
</tr> |
689 |
<tr> |
690 |
<ti> |
691 |
<c>APACHE1_MOD_DEFINE</c><br /> |
692 |
<c>APACHE2_MOD_DEFINE</c> |
693 |
</ti> |
694 |
<ti>Non</ti> |
695 |
<ti> |
696 |
Nom du « define » dans la configuration des modules. Utilisé en |
697 |
affichant un message à l'utilisateur pour l'ajouter à son |
698 |
<path>/etc/conf.d/apache{|2}</path>. |
699 |
</ti> |
700 |
</tr> |
701 |
<tr> |
702 |
<ti> |
703 |
<c>APACHE1_EXECFILES</c><br /> |
704 |
<c>APACHE2_EXECFILES</c> |
705 |
</ti> |
706 |
<ti>Non</ti> |
707 |
<ti>Fichiers exécutables additionnels qui devront être installés.</ti> |
708 |
</tr> |
709 |
<tr> |
710 |
<ti> |
711 |
<c>APACHE1_MOD_FILE</c><br /> |
712 |
<c>APACHE2_MOD_FILE</c> |
713 |
</ti> |
714 |
<ti> |
715 |
${PN}.so<br /> |
716 |
.libs/${PN}.so |
717 |
</ti> |
718 |
<ti>Les modules que <c>src_install</c> installe.</ti> |
719 |
</tr> |
720 |
<tr> |
721 |
<ti><c>APACHE2_SAFE_MPMS</c></ti> |
722 |
<ti>Non</ti> |
723 |
<ti> |
724 |
Une liste des MPM qui fonctionnent avec ce module. Si ce n'est pas |
725 |
renseigné, alors aucune vérification des MPM ne sera faite. S'il y a des |
726 |
MPM peu sûrs d'installés l'utilisateur est averti. S'il n'y pas de MPM |
727 |
installés, le module refuse de s'installer. |
728 |
</ti> |
729 |
</tr> |
730 |
<tr> |
731 |
<ti> |
732 |
<c>APXS1_S</c><br /> |
733 |
<c>APXS2_S</c> |
734 |
</ti> |
735 |
<ti>Non</ti> |
736 |
<ti> |
737 |
Les chemins vers les répertoires de construction temporaires. Retourné par |
738 |
<c>apache_cd_dir</c> si renseigné, sinon il retourne <c>${S}/src</c> |
739 |
(si c'est un répertoire) ou <c>${S}</c> sinon. |
740 |
</ti> |
741 |
</tr> |
742 |
<tr> |
743 |
<ti> |
744 |
<c>APXS1_ARGS</c><br /> |
745 |
<c>APXS2_ARGS</c> |
746 |
</ti> |
747 |
<ti>-c ${PN}.c</ti> |
748 |
<ti>Arguments à passer à l'outil apxs.</ti> |
749 |
</tr> |
750 |
<tr> |
751 |
<ti><c>DOCFILES</c></ti> |
752 |
<ti>Non</ti> |
753 |
<ti> |
754 |
La documentation à installer. Tous les fichiers qui finissent par .html |
755 |
sont installés en utilisant <c>dohtml</c>, les autres sont installés en |
756 |
utilisant <c>dodoc</c>. |
757 |
</ti> |
758 |
</tr> |
759 |
</table> |
760 |
|
761 |
</body> |
762 |
</section> |
763 |
</chapter> |
764 |
|
765 |
<chapter id="depend-apache"> |
766 |
<title>Eclass depend.apache</title> |
767 |
<section> |
768 |
<title>Description</title> |
769 |
<body> |
770 |
|
771 |
<p> |
772 |
L'eclass <c>depend.apache</c> règle les localisations par défaut des différents |
773 |
chemins d'Apache et gère les paramètres des dépendances sur Apache. En général, |
774 |
cette eclass ne devrait pas être utilisée par les modules. Elle devrait |
775 |
seulement être employée pour les programmes qui doivent dépendre d'Apache mais |
776 |
qui ne sont pas des modules. (Les modules devraient employer l'eclass <uri |
777 |
link="#apache-module">apache-module</uri>.) |
778 |
</p> |
779 |
|
780 |
</body> |
781 |
</section> |
782 |
<section> |
783 |
<title>Fonctions</title> |
784 |
<body> |
785 |
|
786 |
<table> |
787 |
<tr> |
788 |
<th>Fonction</th> |
789 |
<th>Description</th> |
790 |
</tr> |
791 |
<tr> |
792 |
<ti><c>need_apache1</c></ti> |
793 |
<ti> |
794 |
Cette fonction renseigne correctement l'information sur les dépendances |
795 |
pour les paquets qui ne supportent que Apache-1.x. Les paquets qui |
796 |
nécessitent Apache-1.x devront appeler <c>need_apache1</c> dans la portée |
797 |
globale pour placer correctement les dépendances. |
798 |
</ti> |
799 |
</tr> |
800 |
<tr> |
801 |
<ti><c>need_apache2</c></ti> |
802 |
<ti> |
803 |
Cette fonction renseigne correctement l'information sur les dépendances |
804 |
pour les paquets qui ne supportent que Apache-2.x. Les paquets qui |
805 |
nécessitent Apache-2.x devront appeler <c>need_apache2</c> dans la portée |
806 |
globale pour placer correctement les dépendances. |
807 |
</ti> |
808 |
</tr> |
809 |
<tr> |
810 |
<ti><c>need_apache</c></ti> |
811 |
<ti> |
812 |
Cette fonction renseigne correctement l'information sur les dépendances |
813 |
basées sur les variables USE actuellement réglées. Les paquets qui peuvent |
814 |
utiliser les deux versions d'Apache devront appeler <c>need_apache</c> dans |
815 |
la portée globale pour placer correctement les dépendances. |
816 |
</ti> |
817 |
</tr> |
818 |
</table> |
819 |
|
820 |
</body> |
821 |
</section> |
822 |
<section> |
823 |
<title>Variables</title> |
824 |
<body> |
825 |
|
826 |
<table> |
827 |
<tr> |
828 |
<th>Variable</th> |
829 |
<th>Défaut</th> |
830 |
<th>Description</th> |
831 |
</tr> |
832 |
<tr> |
833 |
<ti><c>APACHE_VERSION</c></ti> |
834 |
<ti>1</ti> |
835 |
<ti> |
836 |
Paramétré par <c>need_apache</c>, <c>need_apache1</c>, <c>need_apache2</c>. |
837 |
Stocke la version d'apache que nous allons construire. |
838 |
</ti> |
839 |
</tr> |
840 |
<tr> |
841 |
<ti> |
842 |
<c>APXS1</c><br /> |
843 |
<c>APXS2</c> |
844 |
</ti> |
845 |
<ti> |
846 |
<path>/usr/sbin/apxs</path><br /> |
847 |
<path>/usr/sbin/apxs2</path> |
848 |
</ti> |
849 |
<ti>Chemin vers l'outil apxs</ti> |
850 |
</tr> |
851 |
<tr> |
852 |
<ti> |
853 |
<c>APACHECTL1</c><br /> |
854 |
<c>APACHECTL2</c> |
855 |
</ti> |
856 |
<ti> |
857 |
<path>/usr/sbin/apachectl</path><br /> |
858 |
<path>/usr/sbin/apache2ctl</path> |
859 |
</ti> |
860 |
<ti>Chemin vers l'outil apachectl</ti> |
861 |
</tr> |
862 |
<tr> |
863 |
<ti> |
864 |
<c>APACHE1_BASEDIR</c><br /> |
865 |
<c>APACHE2_BASEDIR</c> |
866 |
</ti> |
867 |
<ti> |
868 |
<path>/usr/lib/apache</path><br /> |
869 |
<path>/usr/lib/apache2</path> |
870 |
</ti> |
871 |
<ti>Le chemin dans lequel le serveur tourne.</ti> |
872 |
</tr> |
873 |
<tr> |
874 |
<ti> |
875 |
<c>APACHE1_CONFDIR</c><br /> |
876 |
<c>APACHE2_CONFDIR</c> |
877 |
</ti> |
878 |
<ti> |
879 |
<path>/etc/apache</path><br /> |
880 |
<path>/etc/apache2</path> |
881 |
</ti> |
882 |
<ti>Localisation du fichier de configuration <path>httpd.conf</path></ti> |
883 |
</tr> |
884 |
<tr> |
885 |
<ti> |
886 |
<c>APACHE1_MODULES_CONFDIR</c><br /> |
887 |
<c>APACHE2_MODULES_CONFDIR</c> |
888 |
</ti> |
889 |
<ti> |
890 |
${APACHE1_CONFDIR}/modules.d<br /> |
891 |
${APACHE2_CONFDIR}/modules.d |
892 |
</ti> |
893 |
<ti> |
894 |
Emplacement où les modules devront installer leur configuration. |
895 |
Tous les fichiers *.conf dans ce répertoire sont inclus au lancement. |
896 |
</ti> |
897 |
</tr> |
898 |
<tr> |
899 |
<ti> |
900 |
<c>APACHE1_VHOSTDIR</c><br /> |
901 |
<c>APACHE2_VHOSTDIR</c> |
902 |
</ti> |
903 |
<ti> |
904 |
${APACHE1_CONFDIR}/vhosts.d<br /> |
905 |
${APACHE2_CONFDIR}/vhosts.d |
906 |
</ti> |
907 |
<ti> |
908 |
Emplacement où les configurations des hôtes virtuels devront être gardés. |
909 |
Tous les fichiers *.conf dans ce répertoire sont inclus au lancement. |
910 |
</ti> |
911 |
</tr> |
912 |
<tr> |
913 |
<ti> |
914 |
<c>APACHE1_MODULESDIR</c><br /> |
915 |
<c>APACHE2_MODULESDIR</c> |
916 |
</ti> |
917 |
<ti> |
918 |
${APACHE1_BASEDIR}/modules<br /> |
919 |
${APACHE2_BASEDIR}/modules |
920 |
</ti> |
921 |
<ti>Emplacement où les modules binaires devront être installés.</ti> |
922 |
</tr> |
923 |
</table> |
924 |
|
925 |
<note> |
926 |
Toutes les variables devront être considérées en lecture seule et ne devront |
927 |
pas être modifiées dans l'ebuild. Cela pourrait produire des résultats |
928 |
imprévisibles. |
929 |
</note> |
930 |
|
931 |
</body> |
932 |
</section> |
933 |
</chapter> |
934 |
</guide> |