1 |
scen 08/03/03 18:56:33 |
2 |
|
3 |
Added: apache-developer.xml |
4 |
Log: |
5 |
Initial commit: version 2.5, revision 1.1 of EN CVS |
6 |
|
7 |
Revision Changes Path |
8 |
1.1 xml/htdocs/proj/it/apache/apache-developer.xml |
9 |
|
10 |
file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/it/apache/apache-developer.xml?rev=1.1&view=markup |
11 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/it/apache/apache-developer.xml?rev=1.1&content-type=text/plain |
12 |
|
13 |
Index: apache-developer.xml |
14 |
=================================================================== |
15 |
<?xml version='1.0' encoding="UTF-8"?> |
16 |
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
17 |
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/proj/it/apache/apache-developer.xml,v 1.1 2008/03/03 18:56:32 scen Exp $ --> |
18 |
|
19 |
<guide link="/proj/it/apache/apache-developer.xml" lang="it"> |
20 |
<title>Documentazione per Sviluppatori di Apache</title> |
21 |
|
22 |
<author title="Autore"> |
23 |
<mail link="vericgar@g.o">Michael Stewart</mail> |
24 |
</author> |
25 |
|
26 |
<author title="Traduzione"> |
27 |
<mail link="zanetti.massimo@×××××.com">Massimo Zanetti</mail> |
28 |
</author> |
29 |
|
30 |
<abstract> |
31 |
Questo documento fornisce dettagli sulle nuove eclass disponibili per gli |
32 |
sviluppatori di pacchetti relativi ad Apache. |
33 |
</abstract> |
34 |
|
35 |
<!-- The content of this document is licensed under the CC-BY-SA license --> |
36 |
<!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
37 |
<license/> |
38 |
|
39 |
<version>2.5</version> |
40 |
<date>2008-03-02</date> |
41 |
|
42 |
<chapter> |
43 |
<title>Introduzione</title> |
44 |
<section> |
45 |
<body> |
46 |
|
47 |
<p> |
48 |
Questo documento mostra in maniera particolareggiata come le <uri |
49 |
link="#apache-module">nuove eclasses</uri> siano state <uri |
50 |
link="#changes">modificate</uri> rispetto al precedente stile di apache e come |
51 |
si debbano <uri link="#ebuild-update">modificare</uri> le ebuild per sfruttare |
52 |
al massimo le nuove eclass. Se si è degli utenti interessati a come eseguire |
53 |
l'aggiornamento, si consiglia di leggere il documento <uri |
54 |
link="apache-upgrading.xml">Aggiornamento di Apache</uri>. |
55 |
</p> |
56 |
|
57 |
</body> |
58 |
</section> |
59 |
</chapter> |
60 |
|
61 |
<chapter id="changes"> |
62 |
<title>Che cosa è cambiato</title> |
63 |
<section> |
64 |
<title>Sguardo d'insieme</title> |
65 |
<body> |
66 |
|
67 |
<p> |
68 |
Sono state apportate molte modifiche sulla modalità d'installazione e |
69 |
funzionamento di Apache e i suoi moduli su Gentoo. Questo rende la manutenzione |
70 |
più facile e segue più da vicino il concetto di pratica upstream. Queste |
71 |
modifiche sono: |
72 |
</p> |
73 |
|
74 |
<ul> |
75 |
<li>Corretti molti bug</li> |
76 |
<li>Cambiati i percorsi dell'installazione e della configurazione</li> |
77 |
<li> |
78 |
Create le eclass <uri link="#depend-apache">depend.apache</uri> e <uri |
79 |
link="#apache-module">apache-module</uri> |
80 |
</li> |
81 |
<li> |
82 |
Riuniti apache.conf e commonapache.conf in un unico file, analogamente a |
83 |
come vengono distribuiti da apache.org. |
84 |
</li> |
85 |
<li> |
86 |
<c>apr</c> e <c>apr-utils</c> sono stai estratti da apache così che alcuni |
87 |
pacchetti non hanno più bisogno di apache |
88 |
</li> |
89 |
<li>Quasi tutti i moduli sono stati aggiornati</li> |
90 |
<li>Maggiore disponibilità di MPMs</li> |
91 |
<li>Aggiunto supporto per lingerd</li> |
92 |
<li>Corretto il supporto per i file di grandi dimensioni</li> |
93 |
<li><e>Sicuramente altro...</e></li> |
94 |
</ul> |
95 |
|
96 |
</body> |
97 |
</section> |
98 |
<section> |
99 |
<title>Localizzazione Percorsi Apache</title> |
100 |
<body> |
101 |
|
102 |
<p> |
103 |
Allo scopo di avvicinarsi al tipo di installazione fatto da apache.org e altre |
104 |
distribuzioni, sono stati modificati i seguenti percorsi: |
105 |
</p> |
106 |
|
107 |
</body> |
108 |
</section> |
109 |
<section> |
110 |
<title>Apache 2.x</title> |
111 |
<body> |
112 |
|
113 |
<table> |
114 |
<tr> |
115 |
<th>Utilizzo</th> |
116 |
<th>Vecchio Percorso</th> |
117 |
<th>Nuovo Percorso</th> |
118 |
</tr> |
119 |
<tr> |
120 |
<ti>Server Root</ti> |
121 |
<ti><path>/etc/apache2/</path></ti> |
122 |
<ti><path>/usr/lib/apache2/</path></ti> |
123 |
</tr> |
124 |
<tr> |
125 |
<ti>Directory della Configurazione</ti> |
126 |
<ti><path>/etc/apache2/conf/</path></ti> |
127 |
<ti><path>/etc/apache2/</path></ti> |
128 |
</tr> |
129 |
<tr> |
130 |
<ti>Configurazione</ti> |
131 |
<ti><path>/etc/apache2/conf/apache2.conf</path></ti> |
132 |
<ti><path>/etc/apache2/httpd.conf</path></ti> |
133 |
</tr> |
134 |
<tr> |
135 |
<ti>Configurazione</ti> |
136 |
<ti><path>/etc/apache2/conf/commonapache2.conf</path></ti> |
137 |
<ti><path>/etc/apache2/httpd.conf</path></ti> |
138 |
</tr> |
139 |
<tr> |
140 |
<ti>Configurazione Vhosts</ti> |
141 |
<ti><path>/etc/apache2/conf/vhosts/</path></ti> |
142 |
<ti><path>/etc/apache2/vhosts.d/</path></ti> |
143 |
</tr> |
144 |
<tr> |
145 |
<ti>Configuratione Moduli</ti> |
146 |
<ti><path>/etc/apache2/conf/modules.d/</path></ti> |
147 |
<ti><path>/etc/apache2/modules.d/</path></ti> |
148 |
</tr> |
149 |
<tr> |
150 |
<ti>Modulo Binari</ti> |
151 |
<ti><path>/usr/lib/apache2-extramodules/</path></ti> |
152 |
<ti><path>/usr/lib/apache2/modules/</path></ti> |
153 |
</tr> |
154 |
</table> |
155 |
|
156 |
<note> |
157 |
La configurazione predefinita ora include automaticamente |
158 |
<path>modules.d/*.conf</path> e <path>vhosts.d/*.conf</path>. Tuttavia la |
159 |
direttiva contenuta in <path>httpd.conf</path> mostra i percorsi sopra indicati |
160 |
come <path>conf/modules.d/*.conf</path> e <path>conf/vhosts.d/*.conf</path>. |
161 |
Questo perchè Apache legge la configurazione usando la directory |
162 |
<path>/usr/lib/apache{|2}</path> che contiene un link simbolico a <path>conf -> |
163 |
/etc/apache{|2}</path>. |
164 |
</note> |
165 |
|
166 |
<impo> |
167 |
Se si è uno sviluppatore e si cerca di aggiornare un'ebuild per farlo funzionare |
168 |
con le modifiche che sono state fatte, si cerchi di non inserire i percorsi |
169 |
sopra indicati nell'ebuild, controllare invece la documentazione sulla eclass |
170 |
relativa alle variabili che possono essere usate. |
171 |
</impo> |
172 |
|
173 |
</body> |
174 |
</section> |
175 |
</chapter> |
176 |
|
177 |
<chapter id="ebuild-update"> |
178 |
<title>Aggiornare l'Ebuild</title> |
179 |
<section> |
180 |
<body> |
181 |
|
182 |
<p> |
183 |
Con queste nuove modifiche quasi tutte le ebuild che hanno una dipendenza da |
184 |
Apache devono essere cambiate. Il gruppo di Apache si è già preso cura della |
185 |
maggioranza di questi pacchetti, essendone loro i responsabili. Ma ne rimangono |
186 |
ancora diversi che, appartenendo ad altri sviluppatori, devono essere |
187 |
aggiornati. |
188 |
</p> |
189 |
|
190 |
<p> |
191 |
Questo capitolo mostra ad uno sviluppatore l'uso della nuova eclass attraverso |
192 |
l'aggiornamento di un'ebuild. Per fare questo si prende come esempio uno dei |
193 |
pacchetti più complessi, <c>www-apache/mod_ldap_userdir</c>. |
194 |
</p> |
195 |
|
196 |
<note> |
197 |
Se il proprio pacchetto non è precisamente un modulo, ma ha solo bisogno di |
198 |
conoscere i percorsi usati da Apache, eseguire <c>inherit depend.apache</c> ed |
199 |
usare le variabili rese disponibili nella eclass. A tale proposito si guardi |
200 |
la documentazione della eclass <uri link="#depend-apache">depend.apache</uri> . |
201 |
</note> |
202 |
|
203 |
</body> |
204 |
</section> |
205 |
<section> |
206 |
<title>Sguardo d'insieme delle modifiche necessarie</title> |
207 |
<body> |
208 |
|
209 |
<ul> |
210 |
<li> |
211 |
Sarà necessaria una nuova revisione considerato che le precedenti, adattate |
212 |
alla nuova eclass, non sono compatibili con le vecchie versioni di Apache. |
213 |
</li> |
214 |
<li> |
215 |
Assicurarsi di impostare <c>KEYWORDS</c> a testing e, se i pacchetti di |
216 |
Apache sono ancora hard-masked, aggiungerli in package.mask |
217 |
</li> |
218 |
<li> |
219 |
Sostituire ciascun <c>DEPEND</c> di Apache con <c>need_apache1</c> (per |
220 |
i moduli di Apache-1*), <c>need_apache2</c> (per i moduli di Apache-2*), o |
221 |
<c>need_apache</c> (per i moduli che possono dipendere sia da Apache-1* che |
222 |
da Apache-2* - determinati da USE-flags) |
223 |
</li> |
224 |
<li> |
225 |
Rimovere qualsiasi linea di codice che modifica <c>SLOT</c> o <c>DEPEND</c> |
226 |
con hack tipo <c>has_version</c>. |
227 |
</li> |
228 |
<li> |
229 |
Controllare se l'impostazione predefinita di <c>src_compile</c> nella eclass |
230 |
funziona. Altrimenti, impostare <c>APXS1_ARGS</c> o <c>APXS2_ARGS</c> per |
231 |
compilare, come richiesto, gli altri file. |
232 |
</li> |
233 |
<li>Di norma tutte le funzioni possono essere rimosse dall'ebuild</li> |
234 |
<li> |
235 |
Modificare il file di configurazione del modulo affichè usi gli |
236 |
<c>IfDefine</c> per caricare e configurare il modulo |
237 |
</li> |
238 |
<li>Aggiungere qualsiasi file di documentazione a <c>DOCFILES</c></li> |
239 |
<li> |
240 |
Specificare il file di configurazione che src_install deve installare: |
241 |
<c>APACHE1_MOD_CONF</c>, <c>APACHE2_MOD_CONF</c> |
242 |
</li> |
243 |
<li> |
244 |
Specificare la <c>IfDefine</c> che il modulo usa nel suo file di |
245 |
configurazione così che pkg_postinst possa dare informazioni all'utente su |
246 |
come abilitare il modulo: <c>APACHE1_MOD_DEFINE</c>, |
247 |
<c>APACHE2_MOD_DEFINE</c> |
248 |
</li> |
249 |
<li> |
250 |
Non dimenticarsi di testarlo - nel caso non sia stato fatto, seguire le |
251 |
istruzioni di aggiornamento che si trovano in questo documento |
252 |
</li> |
253 |
</ul> |
254 |
|
255 |
</body> |
256 |
</section> |
257 |
<section> |
258 |
<title>Ebuild Globali</title> |
259 |
<body> |
260 |
|
261 |
<pre caption="Diff tra mod_ldap_userdir-1.4.1 e mod_ldap_userdir-1.4.1-r1 |
262 |
(modificato)"> |
263 |
+inherit apache-module |
264 |
+ |
265 |
-IUSE="apache2 ssl" |
266 |
+IUSE="ssl" |
267 |
|
268 |
DESCRIPTION="Modulo Apache che abilita ~/public_html from an LDAP directory." |
269 |
HOMEPAGE="http://horde.net/~jwm/software/mod_ldap_userdir/" |
270 |
-KEYWORDS="x86 ppc" |
271 |
+KEYWORDS="~x86 ~ppc" |
272 |
|
273 |
SRC_URI="http://horde.net/~jwm/software/mod_ldap_userdir/${P}.tar.gz" |
274 |
|
275 |
-DEPEND="=net-www/apache-1* |
276 |
- apache2? ( =net-www/apache-2* ) |
277 |
- ssl? ( dev-libs/openssl ) |
278 |
- net-nds/openldap" |
279 |
+DEPEND="ssl? ( dev-libs/openssl ) |
280 |
+ net-nds/openldap" |
281 |
|
282 |
LICENSE="GPL-1" |
283 |
SLOT="0" |
284 |
+ |
285 |
+DOCFILES="DIRECTIVES README user-ldif posixAccount-objectclass" |
286 |
+APACHE1_MOD_CONF="${PVR}/47_mod_ldap_userdir" |
287 |
+APACHE2_MOD_CONF="${PVR}/47_mod_ldap_userdir" |
288 |
+APACHE1_MOD_DEFINE="LDAPuserdir" |
289 |
+APACHE2_MOD_DEFINE="LDAPuserdir" |
290 |
+ |
291 |
+need_apache |
292 |
</pre> |
293 |
|
294 |
|
295 |
<p> |
296 |
Si è partiti da <c>inherit apache-module</c> che a sua volta eredita |
297 |
<c>depend.apache</c>. <c>depend.apache</c> definisce le locazioni usate da |
298 |
Apache e, più importante, le tre <c>DEPEND</c>s: <c>APACHE1_DEPEND</c> per quei |
299 |
pacchetti che hanno bisogno di Apache-1*, <c>APACHE2_DEPEND</c> per quelli che |
300 |
hanno bisogno di Apache-2*, e <c>APACHE_DEPEND</c> per quelli che hanno bisogno |
301 |
sia di Apache-1* o di Apache-2* e lasciare ad apache2 USE-flag quale usare. |
302 |
</p> |
303 |
|
304 |
<note> |
305 |
Benchè sia possibile, l'installazione di ambedue le versioni di apache |
306 |
affiancate non è supportata; d'altra parte non è neanche supportata |
307 |
l'installazione di un modulo per ambedue le versioni di apache. I moduli |
308 |
dovrebbero usare solamente uno <c>SLOT</c> che non sia <c>0</c> se hanno |
309 |
multiple versioni di codice e ciascuna supporta una differente versione di |
310 |
Apache. (es. <path>mod_layout-3.2.1-r1</path> ha <c>SLOT="1"</c> e |
311 |
<path>mod_layout-4.0.1a-r1</path> ha <c>SLOT="2"</c>) |
312 |
</note> |
313 |
|
314 |
<p> |
315 |
L'<c>apache-module</c> fa la parte più pesante per i pacchetti del modulo |
316 |
definendo impostazioni predefinite valide per <c>pkg_setup</c>, |
317 |
<c>src_compile</c>,<c>src_install</c> e <c>pkg_postinst</c>. |
318 |
</p> |
319 |
|
320 |
<p> |
321 |
Poichè, se necessario, <c>depend.apache</c> aggiunge <c>apache2</c> a IUSE, non |
322 |
serve più definirlo esplicitamente nella IUSE dell'ebuild. Tuttavia deve essere |
323 |
lasciato definito se quella use-flag viene usata da qualche parte nell'ebuild. |
324 |
</p> |
325 |
|
326 |
<p> |
327 |
<c>depend.apache</c> lavora aggiungendo il corretto Apache DEPEND al proprio |
328 |
DEPEND (se si chiama una delle funzioni <c>need_apache{|1|2}</c>) così che si |
329 |
possa togliere la gestione del apache DEPEND dalla propria ebuild. |
330 |
</p> |
331 |
|
332 |
<p> |
333 |
<c>DOCFILES</c> è usato da <c>src_install</c> in <c>apache-modules</c> per |
334 |
installare tutta la documentazione. <c>src_install</c> trova automaticamente i |
335 |
file html e altri e usa sia <c>dodoc</c> che <c>dohtml</c> per installarli al |
336 |
posto giusto. |
337 |
</p> |
338 |
|
339 |
<p> |
340 |
<c>APACHE1_MOD_CONF</c> e <c>APACHE2_MOD_CONF</c> definiscono il file di |
341 |
configurazione da installare per il modulo. Questo è usato durante |
342 |
<c>src_install</c> così che possano essere collegati a qualsiasi cosa si sia |
343 |
impostata con <c>APXS1_S</c> o <c>APXS2_S</c> (normalmente a <c>${S}/src</c> se |
344 |
è una directory, altrimenti <c>${S}</c>). |
345 |
</p> |
346 |
|
347 |
<p> |
348 |
<c>APACHE1_MOD_DEFINE</c> e <c>APACHE2_MOD_DEFINE</c> dicono all'eclass quale |
349 |
<c><IfDefine MODULENAME></c> usa il modulo. Servono per mostrare |
350 |
all'utente le istruzioni su come abilitare il modulo. |
351 |
</p> |
352 |
|
353 |
</body> |
354 |
</section> |
355 |
<section> |
356 |
<title>src_compile</title> |
357 |
<body> |
358 |
|
359 |
<p> |
360 |
<c>src_compile</c> può servire se il modulo richiede speciali passi che l'eclass |
361 |
non può gestire. Questo è un caso raro. Nella maggioranza dei casi, riguardare |
362 |
il <path>Makefile</path> e aggiungere gli oggetti a <c>APXS1_ARGS</c> |
363 |
o <c>APXS2_ARGS</c> è sufficiente. |
364 |
</p> |
365 |
|
366 |
<pre caption="Diff tra mod_ldap_userdir-1.4.1 e mod_ldap_userdir-1.4.1-r1 |
367 |
(modificato)"> |
368 |
-src_compile() { |
369 |
- local myconf |
370 |
- if use apache2; then |
371 |
- myconf="${myconf} --with-apxs2=/usr/sbin/apxs2" |
372 |
- else |
373 |
- myconf="${myconf} --with-apxs=/usr/sbin/apxs" |
374 |
- fi |
375 |
- |
376 |
- use ssl && myconf="${myconf} -with-tls" |
377 |
- |
378 |
- myconf="${myconf} --with-activate" |
379 |
- ./configure ${myconf} || die "Configure failed" |
380 |
- make clean |
381 |
- make || die "Make failed" |
382 |
-} |
383 |
|
384 |
+src_compile() { |
385 |
+ local myargs="-lldap -llber -c ${PN}.c" |
386 |
+ use ssl && myargs="${myargs} -D TLS=1" |
387 |
+ |
388 |
+ APXS2_ARGS="${myargs}" |
389 |
+ APXS1_ARGS="${myargs}" |
390 |
+ |
391 |
+ apache-module_src_compile |
392 |
+ |
393 |
+} |
394 |
</pre> |
395 |
|
396 |
<note> |
397 |
In generale se APXS1_ARGS o APXS2_ARGS devono essere diversi, sono definiti |
398 |
nello spazio globale. <path>mod_ldap_userdir</path> a questo riguardo è |
399 |
differente perchè lo stato della flag USE di ssl influenza quelle variabili |
400 |
ed è più efficiente nell'impostare solamente quei valori in <c>src_compile</c> |
401 |
piuttosto che eseguire il controllo USE durante ogni chiamata dell'ebuild. |
402 |
</note> |
403 |
|
404 |
</body> |
405 |
</section> |
406 |
<section> |
407 |
<title>src_install</title> |
408 |
<body> |
409 |
|
410 |
<p> |
411 |
Nella maggior parte dei casi, <c>src_install</c> non è necessario, eccetto |
412 |
quando ci sono altre directory che hanno bisogno di essere installate o quando |
413 |
i permessi sui file devono essere modificati. |
414 |
</p> |
415 |
|
416 |
<pre caption="Diff tra mod_ldap_userdir-1.4.1 e mod_ldap_userdir-1.4.1-r1 |
417 |
(modificato)"> |
418 |
-src_install() { |
419 |
- if use apache2; then |
420 |
- exeinto /usr/lib/apache2-extramodules |
421 |
- doexe mod_ldap_userdir.so |
422 |
- else |
423 |
- exeinto /usr/lib/apache-extramodules |
424 |
- doexe mod_ldap_userdir.so |
425 |
- fi |
426 |
- dodoc DIRECTIVES README user-ldif posixAccount-objectclass |
427 |
-} |
428 |
+src_install() { |
429 |
+ apache-module_src_install |
430 |
+ if [ "${APACHE_VERSION}" == "2" ]; then |
431 |
+ fperms 600 ${APACHE2_MODULES_CONFDIR}/$(basename ${APACHE2_MOD_CONF}) |
432 |
+ else |
433 |
+ fperms 600 ${APACHE1_MODULES_CONFDIR}/$(basename ${APACHE1_MOD_CONF}) |
434 |
+ fi |
435 |
+} |
436 |
</pre> |
437 |
|
438 |
<p> |
439 |
Come si può notare, nel <path>mod_ldap_userdir</path> sono state aggiunte alcune |
440 |
modifiche che non erano presenti nella revisione precedente - l'aggiunta di un |
441 |
file di configurazione e l'impostazione corretta dei permessi. |
442 |
<c>apache-module</c> da il meglio di sè chiamando |
443 |
<c>apache-module_src_install</c> all'interno del proprio <c>src_install</c>. |
444 |
Nella maggior parte dei casi <c>src_install</c> non è per nulla necessario. |
445 |
</p> |
446 |
|
447 |
<p> |
448 |
<c>src_install</c> gestisce correttamente e completamente l'installazione del |
449 |
modulo, dei file di configurazione e della documentazione. |
450 |
</p> |
451 |
|
452 |
</body> |
453 |
</section> |
454 |
<section> |
455 |
<title>Altre funzioni</title> |
456 |
<body> |
457 |
|
458 |
<p> |
459 |
Nella maggioranza dei casi, non ci dovrebbe essere nessun pkg_postinst o |
460 |
pkg_config, visto che l'eclass gestisce direttamente l'invio delle istruzioni |
461 |
relative all'abilitazione di un modulo e la posizione del file di configurazione |
462 |
dell'utente. Se ci fosse bisogno di istruzioni aggiuntive per la configurazione, |
463 |
allora si può aggiungere <c>pkg_postinst</c>, ma si deve ugualmente far andare |
464 |
<c>apache1_pkg_postinst</c> o <c>apache2_pkg_postinst</c> al suo interno. |
465 |
</p> |
466 |
|
467 |
<pre caption="Diff tra mod_ldap_userdir-1.4.1 e mod_ldap_userdir-1.4.1-r1 |
468 |
(modificato)"> |
469 |
-pkg_postinst() { |
470 |
- if use apache2; then |
471 |
- elog "Adjust /etc/apache2/conf/modules.d/47_mod_ldap_userdir.conf to match your setup and" |
472 |
- elog "add '-D LDAPuserdir' to your APACHE2_OPTS in /etc/conf.d/apache2" |
473 |
- elog "To configure the package run \"ebuild /var/db/pkg/net-www/${PF}/${PF}.ebuild config\"" |
474 |
- fi |
475 |
-} |
476 |
- |
477 |
-pkg_config() { |
478 |
- /usr/sbin/apacheaddmod \ |
479 |
- ${ROOT}/etc/apache/conf/apache.conf \ |
480 |
- extramodules/mod_ldap_userdir.so mod_ldap_userdir.c ldap_userdir_module \ |
481 |
- define=LDAPuserdir addconf=conf/addon-modules/47_mod_ldap_userdir.conf |
482 |
-} |
483 |
</pre> |
484 |
|
485 |
<p> |
486 |
Con la nuova configurazione predefinita, gli utenti non devono più modificare |
487 |
<path>httpd.conf</path> per abilitare un modulo. Tutti i file |
488 |
<path>*.conf</path> nella directory <path>modules.d</path> sono automaticamente |
489 |
inclusi. Tutti i file dovrebbero essere inglobati in un blocco <c><IfDefine |
490 |
MODULENAME></c>, in modo che le direttive in quel file siano usate solo se |
491 |
l'utente aggiunge un <c>"-D MODULENAME"</c> al suo file |
492 |
<path>/etc/conf.d/apache{|2}</path>. |
493 |
</p> |
494 |
|
495 |
</body> |
496 |
</section> |
497 |
<section> |
498 |
<title>File di configurazione</title> |
499 |
<body> |
500 |
|
501 |
<p> |
502 |
La maggior parte dei file di configurazione non deve essere modificata. Bisogna |
503 |
fare estrema attenzione nell'usare il percorso corretto quando si carica il |
504 |
modulo: |
505 |
</p> |
506 |
|
507 |
|
508 |
<pre caption="LoadModule directive"> |
509 |
<comment>(Vecchia direttiva:)</comment> |
510 |
LoadModule ldap_userdir_module extramodules/mod_ldap_userdir.so |
511 |
|
512 |
<comment>(Nuova direttiva:)</comment> |
513 |
LoadModule ldap_userdir_module modules/mod_ldap_userdir.so |
514 |
</pre> |
515 |
|
516 |
<p> |
517 |
Inoltre ciascun file di configurazione del modulo deve essere inglobato nel |
518 |
blocco <c><IfDefine MODULENAME></c>. Se questo non viene fatto, allora |
519 |
Apache carica il modulo predefinito, cosa che si vuole evitare. Il caricamento |
520 |
del modulo deve essere controllato dall'utente usando il file |
521 |
<path>/etc/conf.d/apache{|2}</path>. |
522 |
</p> |
523 |
|
524 |
<pre caption="Esempio .conf"> |
525 |
<IfDefine LDAPuserdir> |
526 |
<IfModule !mod_ldap_userdir.c> |
527 |
<comment># Carica il modulo:</comment> |
528 |
LoadModule ldap_userdir_module modules/mod_ldap_userdir.so |
529 |
</IfModule> |
530 |
</IfDefine> |
531 |
|
532 |
<IfModule mod_ldap_userdir.c> |
533 |
<comment># Mettere una valida configurazione predefinita:</comment> |
534 |
|
535 |
LDAPUserDir public_html |
536 |
LDAPUserDirDNInfo cn=root,dc=yourcompany,dc=com yourpassword |
537 |
LDAPUserDirBaseDN ou=People,dc=yourcompany,dc=com |
538 |
|
539 |
</IfModule> |
540 |
</pre> |
541 |
|
542 |
<note> |
543 |
Alcuni moduli potrebbero voler aggiungere estensioni che sono controllate dalla |
544 |
DirectoryIndex. Apache è stato modificato per avere una nuova direttiva di |
545 |
configurazione, AddDirectoryIndex, che fa appunto questo. Si usa come |
546 |
DirectoryIndex,funziona nello stesso modo eccetto che non sostituisce la |
547 |
DirectoryIndex, ma la aggiunge. Se, per qualche motivo, ce ne fosse bisogno c'è |
548 |
anche una RemoveDirectoryIndex. |
549 |
</note> |
550 |
|
551 |
</body> |
552 |
</section> |
553 |
</chapter> |
554 |
|
555 |
<chapter id="apache-module"> |
556 |
<title>apache-module eclass</title> |
557 |
<section> |
558 |
<title>Descrizione</title> |
559 |
<body> |
560 |
|
561 |
<p> |
562 |
L'eclass <c>apache-module</c> fornisce valide funzioni predefinite per compilare |
563 |
moduli di apache. Siccome la maggioranza dei moduli sono compilati nella stessa |
564 |
maniera, è possibile avere un modulo di ebuild estremamente semplice. |
565 |
</p> |
566 |
|
567 |
</body> |
568 |
</section> |
569 |
<section> |
570 |
<title>Funzioni</title> |
571 |
<body> |
572 |
|
573 |
<table> |
574 |
<tr> |
575 |
<th>Funzione</th> |
576 |
<th>Descrizione</th> |
577 |
</tr> |
578 |
<tr> |
579 |
<ti><c>apache_cd_dir</c></ti> |
580 |
<ti> |
581 |
Restituisce il percorso corretto alla directory temporanea di compilazione |
582 |
</ti> |
583 |
</tr> |
584 |
<tr> |
585 |
<ti><c>apache_mod_file</c></ti> |
586 |
<ti>Restituisce il percorso al modulo compilato da installare</ti> |
587 |
</tr> |
588 |
<tr> |
589 |
<ti><c>apache_doc_magic</c></ti> |
590 |
<ti> |
591 |
Prende opzionalmente un unico valore. Se il valore è impostato, restituisce |
592 |
tutti i file *.html contenuti in <c>${DOCFILES}</c>, altrimenti ritorna |
593 |
tutti i file non-*.html. |
594 |
</ti> |
595 |
</tr> |
596 |
<tr> |
597 |
<ti><c>apache1_src_compile</c></ti> |
598 |
<ti> |
599 |
Chiama <c>${APXS1}</c> con valori di <c>${APXS1_ARGS}</c>. Se un modulo |
600 |
richiede un'impostazione di compilazione diversa da questa, allora si usa |
601 |
<c>${APXS1}</c> nella routine src_compile. |
602 |
</ti> |
603 |
</tr> |
604 |
<tr> |
605 |
<ti><c>apache1_src_install</c></ti> |
606 |
<ti> |
607 |
Questo installa il modulo e i file di installazione nella directory di |
608 |
apache. Gestisce l'installazione dei moduli, della configurazione, degli |
609 |
eseguibili e della documentazione. |
610 |
</ti> |
611 |
</tr> |
612 |
<tr> |
613 |
<ti><c>apache1_pkg_postinst</c></ti> |
614 |
<ti>Stampa messaggi standard di configurazione.</ti> |
615 |
</tr> |
616 |
<tr> |
617 |
<ti><c>apache2_pkg_setup</c></ti> |
618 |
<ti> |
619 |
Se APACHE2_SAFE_MPMS è impostato, controlla gli MPMs installati e dà errore |
620 |
se non ci sono MPMs sicuri installati. |
621 |
</ti> |
622 |
</tr> |
623 |
<tr> |
624 |
<ti><c>apache2_src_compile</c></ti> |
625 |
<ti> |
626 |
Chiama <c>${APXS2}</c> con valori di <c>${APXS2_ARGS}</c>. Se un modulo ha |
627 |
bisogno di una impostazione di compilazione differente, allora usa |
628 |
<c>${APXS2}</c> nella routine src_compile. |
629 |
</ti> |
630 |
</tr> |
631 |
<tr> |
632 |
<ti><c>apache2_src_install</c></ti> |
633 |
<ti> |
634 |
Questo installa il modulo e i file di configurazione nella directory di |
635 |
apache. Gestisce l'installazione dei moduli, della configurazione, degli |
636 |
eseguibili e della documentazione. |
637 |
</ti> |
638 |
</tr> |
639 |
<tr> |
640 |
<ti> |
641 |
<c>apache-module_pkg_setup</c><br /> |
642 |
<c>apache-module_src_compile</c><br /> |
643 |
<c>apache-module_src_install</c><br /> |
644 |
<c>apache-module_pkg_postinst</c> |
645 |
</ti> |
646 |
<ti> |
647 |
Queste sono funzioni "wrapper" sulle funzioni apache1_* o apache2_*. |
648 |
Determinano automaticamente la versione di apache su cui la compilazione si |
649 |
appoggia. |
650 |
</ti> |
651 |
</tr> |
652 |
</table> |
653 |
|
654 |
</body> |
655 |
</section> |
656 |
<section> |
657 |
<title>Variabili</title> |
658 |
<body> |
659 |
|
660 |
<table> |
661 |
<tr> |
662 |
<th>Variabile</th> |
663 |
<th>Predefinito</th> |
664 |
<th>Descrizione</th> |
665 |
</tr> |
666 |
<tr> |
667 |
<ti> |
668 |
<c>APACHE1_MOD_CONF</c><br /> |
669 |
<c>APACHE2_MOD_CONF</c> |
670 |
</ti> |
671 |
<ti>Nessuna</ti> |
672 |
<ti> |
673 |
Il luogo in <c>${FILESDIR}</c> della configurazione del modulo, senza |
674 |
l'estensione .conf. |
675 |
</ti> |
676 |
</tr> |
677 |
<tr> |
678 |
<ti> |
679 |
<c>APACHE1_MOD_DEFINE</c><br /> |
680 |
<c>APACHE2_MOD_DEFINE</c> |
681 |
</ti> |
682 |
<ti>Nessuna</ti> |
683 |
<ti> |
684 |
Nome del define nella configurazione del modulo. Usato mostrando un |
685 |
messaggio all'utente per aggiungere <path>/etc/conf.d/apache{|2}</path> al |
686 |
loro percorso. |
687 |
</ti> |
688 |
</tr> |
689 |
<tr> |
690 |
<ti> |
691 |
<c>APACHE1_EXECFILES</c><br /> |
692 |
<c>APACHE2_EXECFILES</c> |
693 |
</ti> |
694 |
<ti>Nessuno</ti> |
695 |
<ti>File eseguibili aggiuntivi che dovrebbero essere installati.</ti> |
696 |
</tr> |
697 |
<tr> |
698 |
<ti> |
699 |
<c>APACHE1_MOD_FILE</c><br /> |
700 |
<c>APACHE2_MOD_FILE</c> |
701 |
</ti> |
702 |
<ti> |
703 |
${PN}.so<br /> |
704 |
.libs/${PN}.so |
705 |
</ti> |
706 |
<ti>Il modulo che <c>src_install</c> installa.</ti> |
707 |
</tr> |
708 |
<tr> |
709 |
<ti><c>APACHE2_SAFE_MPMS</c></ti> |
710 |
<ti>Nessuno</ti> |
711 |
<ti> |
712 |
Una lista di MPMs che funzionano con questo modulo. Se non impostati, allora |
713 |
non verrà fatto nessun controllo sugli MPMs. Se ci sono degli MPMs non |
714 |
sicuri installati, l'utente è avvisato. Se non ci sono MPMs sicuri |
715 |
installati, il modulo rifiuta di installarsi. |
716 |
</ti> |
717 |
</tr> |
718 |
<tr> |
719 |
<ti> |
720 |
<c>APXS1_S</c><br /> |
721 |
<c>APXS2_S</c> |
722 |
</ti> |
723 |
<ti>Nessuna</ti> |
724 |
<ti> |
725 |
Percorsi verso directory di compilazione temporanee. Restituiti da |
726 |
<c>apache_cd_dir</c> se configurati, altrimenti vedere <c>${S}/src</c> (se è |
727 |
una directory) oppure <c>${S}</c>. |
728 |
</ti> |
729 |
</tr> |
730 |
<tr> |
731 |
<ti> |
732 |
<c>APXS1_ARGS</c><br /> |
733 |
<c>APXS2_ARGS</c> |
734 |
</ti> |
735 |
<ti>-c ${PN}.c</ti> |
736 |
<ti>Argomenti da passare all'apxs tool.</ti> |
737 |
</tr> |
738 |
<tr> |
739 |
<ti><c>DOCFILES</c></ti> |
740 |
<ti>Nessuno</ti> |
741 |
<ti> |
742 |
La documentazione da installare. Qualsiasi file con estensione .html è |
743 |
installato usando <c>dohtml</c>, mentre tutti gli altri con <c>dodoc</c>. |
744 |
</ti> |
745 |
</tr> |
746 |
</table> |
747 |
|
748 |
</body> |
749 |
</section> |
750 |
</chapter> |
751 |
|
752 |
<chapter id="depend-apache"> |
753 |
<title>eclass depend.apache</title> |
754 |
<section> |
755 |
<title>Descrizione</title> |
756 |
<body> |
757 |
|
758 |
<p> |
759 |
La eclass <c>depend.apache</c> imposta le destinazioni predefinite per i |
760 |
differenti percorsi di apache e gestisce le impostazioni delle dipendenze. In |
761 |
generale questa eclass non dovrebbe essere usata per i moduli. Dovrebbe essere |
762 |
invece usata solo per i programmi che dipendono da apache, ma che non sono |
763 |
moduli. (I moduli dovrebbero usare l'eclass <uri |
764 |
link="#apache-module">apache-module</uri>.) |
765 |
</p> |
766 |
|
767 |
</body> |
768 |
</section> |
769 |
<section> |
770 |
<title>Funzioni</title> |
771 |
<body> |
772 |
|
773 |
<table> |
774 |
<tr> |
775 |
<th>Funzione</th> |
776 |
<th>Descrizione</th> |
777 |
</tr> |
778 |
<tr> |
779 |
<ti><c>need_apache1</c></ti> |
780 |
<ti> |
781 |
Questa funzione imposta in modo corretto le dipendenze per quei pacchetti |
782 |
che supportano solo apache-1.x. I pacchetti che hanno bisogno di apache-1.x |
783 |
dovrebbero chiamare <c>need_apache1</c> nel global scope per impostare |
784 |
correttamente le dipendenze. |
785 |
</ti> |
786 |
</tr> |
787 |
<tr> |
788 |
<ti><c>need_apache2</c></ti> |
789 |
<ti> |
790 |
Questa funzione imposta in modo corretto le dipendenze per quei pacchetti |
791 |
che supportano solo apache-2.x. I pacchetti che hanno bisogno di apache-2.x |
792 |
dovrebbero chiamare <c>need_apache2</c> nel global scope per impostare |
793 |
correttamente le dipendenze. |
794 |
</ti> |
795 |
</tr> |
796 |
<tr> |
797 |
<ti><c>need_apache</c></ti> |
798 |
<ti> |
799 |
Questa funzione imposta in modo corretto le informazioni sulla dipendenza |
800 |
basandosi sulla flag USE correntemente impostate. I pacchetti che possono |
801 |
usare ambedue le versioni di apache dovrebbero chiamare <c>need_apache</c> |
802 |
nel global scope per impostare correttamente le dipendenze. |
803 |
</ti> |
804 |
</tr> |
805 |
</table> |
806 |
|
807 |
</body> |
808 |
</section> |
809 |
<section> |
810 |
<title>Variabili</title> |
811 |
<body> |
812 |
|
813 |
<table> |
814 |
<tr> |
815 |
<th>Variabile</th> |
816 |
<th>Predefinito</th> |
817 |
<th>Descrizione</th> |
818 |
</tr> |
819 |
<tr> |
820 |
<ti><c>APACHE_VERSION</c></ti> |
821 |
<ti>1</ti> |
822 |
<ti> |
823 |
Impostata da <c>need_apache</c>,<c>need_apache1</c>,<c>need_apache2</c>. |
824 |
Salvano la versione di apache che si sta per compilare. |
825 |
</ti> |
826 |
</tr> |
827 |
<tr> |
828 |
<ti> |
829 |
<c>APXS1</c><br /> |
830 |
<c>APXS2</c> |
831 |
</ti> |
832 |
<ti> |
833 |
<path>/usr/sbin/apxs</path><br /> |
834 |
<path>/usr/sbin/apxs2</path> |
835 |
</ti> |
836 |
<ti>Percorso agli apxs tool</ti> |
837 |
</tr> |
838 |
<tr> |
839 |
<ti> |
840 |
<c>APACHECTL1</c><br /> |
841 |
<c>APACHECTL2</c> |
842 |
</ti> |
843 |
<ti> |
844 |
<path>/usr/sbin/apachectl</path><br /> |
845 |
<path>/usr/sbin/apache2ctl</path> |
846 |
</ti> |
847 |
<ti>Percorso agli apachectl tool</ti> |
848 |
</tr> |
849 |
<tr> |
850 |
<ti> |
851 |
<c>APACHE1_BASEDIR</c><br /> |
852 |
<c>APACHE2_BASEDIR</c> |
853 |
</ti> |
854 |
<ti> |
855 |
<path>/usr/lib/apache</path><br /> |
856 |
<path>/usr/lib/apache2</path> |
857 |
</ti> |
858 |
<ti>Il percorso su cui viene eseguito il server</ti> |
859 |
</tr> |
860 |
<tr> |
861 |
<ti> |
862 |
<c>APACHE1_CONFDIR</c><br /> |
863 |
<c>APACHE2_CONFDIR</c> |
864 |
</ti> |
865 |
<ti> |
866 |
<path>/etc/apache</path><br /> |
867 |
<path>/etc/apache2</path> |
868 |
</ti> |
869 |
<ti>Posizione del file di configurazione <path>httpd.conf</path></ti> |
870 |
</tr> |
871 |
<tr> |
872 |
<ti> |
873 |
<c>APACHE1_MODULES_CONFDIR</c><br /> |
874 |
<c>APACHE2_MODULES_CONFDIR</c> |
875 |
</ti> |
876 |
<ti> |
877 |
${APACHE1_CONFDIR}/modules.d<br /> |
878 |
${APACHE2_CONFDIR}/modules.d |
879 |
</ti> |
880 |
<ti> |
881 |
Posizione dove i moduli dovrebbero installare la loro configurazione. Tutti |
882 |
i file *.conf in questa directory sono inclusi durante l'avvio. |
883 |
</ti> |
884 |
</tr> |
885 |
<tr> |
886 |
<ti> |
887 |
<c>APACHE1_VHOSTDIR</c><br /> |
888 |
<c>APACHE2_VHOSTDIR</c> |
889 |
</ti> |
890 |
<ti> |
891 |
${APACHE1_CONFDIR}/vhosts.d<br /> |
892 |
${APACHE2_CONFDIR}/vhosts.d |
893 |
</ti> |
894 |
<ti> |
895 |
Posizione in cui le configurazioni del virtual host dovrebbero essere |
896 |
tenute. Tutti i file *.conf in questa directory sono inclusi durante |
897 |
l'avvio. |
898 |
</ti> |
899 |
</tr> |
900 |
<tr> |
901 |
<ti> |
902 |
<c>APACHE1_MODULESDIR</c><br /> |
903 |
<c>APACHE2_MODULESDIR</c> |
904 |
</ti> |
905 |
<ti> |
906 |
${APACHE1_BASEDIR}/modules<br /> |
907 |
${APACHE2_BASEDIR}/modules |
908 |
</ti> |
909 |
<ti>Posizione in cui i binari del modulo dovrebbero essere installati.</ti> |
910 |
</tr> |
911 |
</table> |
912 |
|
913 |
<note> |
914 |
Tutte le variabili dovrebbero essere trattate come di sola lettura e non |
915 |
dovrebbero essere modificate nell'ebuild. Fare questo può portare a risultati |
916 |
imprevedibili. |
917 |
</note> |
918 |
|
919 |
</body> |
920 |
</section> |
921 |
</chapter> |
922 |
|
923 |
</guide> |
924 |
|
925 |
|
926 |
|
927 |
-- |
928 |
gentoo-commits@l.g.o mailing list |