Aggiornamento di Apache
1.Introduzione
Lo stato di Apache e dei suoi moduli in Gentoo stava diventando decadente.
C'era un certo numero di problemi che hanno generato difficoltà nel supporto
e reso il mantenimento del pacchetto difficoltoso:
-
La configurazione fornita con Gentoo è drasticamente diversa da quella
distribuita da apache.org usata da molti utenti e distribuzioni.
-
Molti moduli usano porzioni di codice simili, ma ognuno di essi implementa
funzioni in modo personale.
-
Alcuni moduli non sono mantenuti con cura, a causa anche del grande numero
di moduli disponibile
-
I moduli non hanno una configurazione standard
-
Alcuni moduli supportano entrambe le versioni di Apache, ma gli ebuild
non sono in grado di distinguerle
-
Scelte disponibili normalmente in Apache, ma non per gli utenti Gentoo
(per esempio gli MPMs)
-
I bug di Apache si stavano accumulando
La soluzione? Il gruppo di Apache è stato allargato, sono stati aggiunti
molti nuovi membri, che hanno lavorato per generare eclass, per aggiornare
tutti i moduli e per chiudere un buon numero di bug.
Questo documento spiega come aggiornare senza danneggiare il vostro sistema.
Se sei uno sviluppatore o vuoi sapere cosa è stato cambiato, o come gli ebuild
devono essere modificati per utilizzare gli eclass, allora visita la pagina
di riferimento del progetto Apache.
2.Istruzioni per l'aggiornamento
Sono stati fatti molti cambiamenti riguardo il modo in cui Apache lavora, in
Gentoo. Ogni pacchetto direttamente collegato con Apache deve essere
aggiornato, ed alcuni dettagli che prima funzionavano, ora non funzioneranno
più.
Prima di tutto bisogna capire cosa necessita di aggiornamento. Questo è
possibile usando il tool equery, del pacchetto
app-portage/gentoolkit.
Esempio 1: Individuazione dei pacchetti obsoleti |
$ equery depends net-www/apache
[ Searching for packages depending on net-www/apache... ]
dev-db/phpmyadmin-2.5.6
dev-php/mod_php-4.3.10
dev-php/phpsysinfo-2.1-r2
net-www/mod_bandwidth-2.0.5
net-www/mod_layout-4.0.1a
net-www/mod_ldap_userdir-1.1.4
net-www/mod_loopback-1.04
net-www/mod_mp3-0.40
net-www/mod_random-2.0
net-www/mod_throttle-3.1.2-r1
net-www/mod_watch-3.18
www-apps/viewcvs-0.9.2_p20030430
|
Importante:
I pacchetti installati possono variare molto da un sistema all'altro,
assicuratevi di eseguire questo comando.
|
Attenzione:
Esistono alcuni moduli e pacchetti dipendenti da Apache che non sono stati
aggiornati. Effettuate una ricerca su
bugzilla per ogni pacchetto di importanza critica che usate con Apache.
|
Molte webapps non sono influenzate da questo aggiornamento perché si
appoggiano alla eclass webapp che si occupa di garantirne la corretta
installazione e funzionamento. È comunque consigliabile controllare la
disponibilità di nuove revisioni.
Sono state aggiunte alcune nuove USE-flags, è consigliabile rivedere il
contenuto di /etc/portage/package.use. Consultate la lista delle USE-flags di Apache per ulteriori dettagli.
Esempio 2: Verifica delle USE flag e ricompilazione |
# emerge --pretend --verbose --update --newuse --deep apache subversion \
mod_php mod_bandwidth mod_layout mod_ldap_userdir mod_loopback mod_mp3 \
mod_random mod_throttle mod_watch
# emerge --verbose --update --newuse --deep apache subversion mod_php \
mod_bandwidth mod_layout mod_ldap_userdir mod_loopback mod_mp3 mod_random \
mod_throttle mod_watch
# emerge --ask --verbose --update --newuse --deep world
|
Ora si deve riconfigurare Apache ed i suoi moduli. Si inizia con un
etc-update o dispatch-conf per aggiornare i files in
/etc/init.d e /etc/conf.d. Si riceverà la
segnalazione che i file di configurazione di Apache sono stati aggiornati
(questo perché tutti i file di configurazione sono stati spostati)
Se sono stati fatti dei cambiamenti al precedente apache.conf
e commonapache.conf è necessario fare la migrazione di tali
cambiamenti a /etc/apache{|2}/httpd.conf. Anche la locazione
per moduli e virtual-host è stata cambiata -- adesso si trovano in
/etc/apache2/modules.d e /etc/apache2/vhosts.d
rispettivamente.
Una volta completata la migrazione dei cambiamenti al nuovo file di
configurazione, è necessario cancellare il vecchio file di configurazione (o
spostarlo in una diversa posizione). Il nuovo script
/etc/init.d/apache{|2} verifica che non esistano copie dei vecchi
file, e non permette l'avvio di Apache fino a che questi files non sono stati
rimossi, ed il nuovo Apache è stato configurato.
Nota:
Molti moduli in precedenza abilitati per default sono ora disabilitati. Se si
tratta di moduli built-in, rimuovere il commento dalla riga corrispondente in
httpd.conf.
Se si tratta di moduli esterni si deve ricercare nel file .conf del modulo, un
IfDefine e aggiungere la stringa corrispondente in
/etc/conf.d/apache{|2} per abilitarlo.
|
Ora è possibile riavviare apache.
Esempio 3: Riavvio di apache |
# /etc/init.d/apache stop
# /etc/init.d/apache start
|
Se si presentano dei problemi, consultare la Apache Troubleshooting Guide
(in inglese) e se questa non risolve la questione, segnalare il problema su
Gentoo Bugzilla. Assicuratevi di
includere l'elenco dei moduli che sono stati abilitati e (se si usa Apache 2)
quale MPM USE-flag è stata usata per la compilazione. È possibile trovare
supporto anche nel canale IRC #gentoo-apache su
irc.freenode.net.
3.USE-flags supportate da Apache
Ci sono alcuni USE-flags locali per Apache ed i suoi moduli. Apache
supporta molte altre USE-flag generiche come ssl, ma l'effetto che
hanno non è molto diverso da quello che manifestano in altri contesti,
quindi non vengono incluse in questa lista. emerge --verbose --pretend
apache mostra tutte le USE-flags supportate.
| USE-flag |
Pacchetti |
Descrizione |
| apache2 |
depend.apache eclass (tutti i moduli) |
Deve sempre essere impostata se si desidera utilizzare Apache 2.0,
diversamente verrà usato Apache 1.3. L'eclass utilizza questa USE per
determinare da quale versione di Apache dipende.
|
| mpm-leader |
apache-2* |
Compila il MPM leader
|
| mpm-metux |
apache-2* |
Compila il MPM metux
|
| mpm-peruser |
apache-2* |
Compila il MPM peruser
|
| mpm-prefork |
apache-2* |
Compila il MPM prefork
|
| mpm-threadpool |
apache-2* |
Compila il MPM
threadpool
|
| mpm-worker |
apache-2* |
Compila il MPM worker
|
| no-suexec |
apache |
Disabilita la compilazione del modulo suexec (per coloro che non vogliono
avere un binario suid potenzialmente pericoloso all'interno del sistema)
|
| static-modules |
apache |
Effettua il linking statico dei moduli all'interno del binario di Apache,
in modo che non sia richiesto LoadModule per il caricamento degli stessi.
|
| lingerd |
apache-1* |
Aggiunge il supporto per lingerd
|
| no-htdocs |
gentoo-webroot-default |
Disabilita l'installazione del default webroot in
/var/www/localhost in modo che i file in quella posizione
non siano sovrascritti. La webroot viene installata in
/usr/share/doc/gentoo-webroot-default-*/webroot/.
|
Nota:
Le mpm-* USE-flags sono mutuamente esclusive. Solo una deve essere abilitata
tramite la mpm-* USE-flags. (Se non ne viene abilitata una, viene compilato
mpm-prefork o mpm-worker, a seconda che la flag globale threads sia settata.)
|
|