Aggiornamento di Apache
1.
Aggiornare dalle versioni <2.2.6-r4
Gli ebuild di Apache hanno utilizzato
/etc/apache2/apache2-builtin-mods per moltissimo tempo per
selezionare i moduli integrati durante la fase di compilazione. Tuttavia questa
modalità ha diversi svantaggi:
-
Non è possibile selezionare moduli integrati durante la fase iniziale di
merge
-
Portage non sa quali moduli sono stati installati. Ciò è fastidioso
specialmente per i pacchetti binari.
-
Portage tenterà di sovrascrivere apache2-builtin-mods ad ogni
aggiornamento
Per rimediare a questa situazione
/etc/apache2/apache2-builtin-mods è stato reso deprecato e migrato
alla nuova variabile di tipo USE_EXPAND denominata
APACHE2_MODULES. Per convertire la propria selezione personalizzata di
moduli al nuovo formato usare il seguente comando:
Codice 1.1: Convertire apache2-builtin-mods ad APACHE2_MODULES |
$ echo APACHE2_MODULES=\"$(sed '/^mod_/s/mod_\(.*\)\s\+\(shared\|static\)/\1/;t n;d;:n' /etc/apache2/apache2-builtin-mods)\" >> /etc/make.conf
# rm /etc/apache2/apache2-builtin-mods
# emerge -uva '>=www-servers/apache-2.2.6-r4'
|
In aggiunta alla nuova variabile APACHE2_MODULES le flag USE locali sono
state rimosse:
-
Tutte le flag USE MPM sono state spostate nella variabile di tipo
USE_EXPAND denominata APACHE2_MPMS
-
no-suexec ora è diventata suexec
-
static-modules ora è diventata static
Per una descrizione dettagliata delle vecchie e delle corrispondenti nuove flag
USE vedere il capitolo seguente.
2.
Aggiornare dalle versioni <2.0.52-r3
Introduzione
Lo stato di Apache e dei suoi moduli in Gentoo stava peggiorando, in quanto
c'era un certo numero di problemi che causavano problemi nel supporto e
rendevano difficoltoso il mantenimento del pacchetto:
-
La configurazione fornita con Gentoo era drasticamente diversa da quella
distribuita da apache.org usata da molti utenti e distribuzioni.
-
Molti moduli usavano porzioni di codice simili, ma ognuno di essi
implementava funzioni in modo personale.
-
Alcuni moduli non erano mantenuti con cura, a causa anche del grande numero
di moduli disponibile
- I moduli non avevano una configurazione standard
-
Alcuni moduli supportavano entrambe le versioni di Apache, ma gli ebuild
non erano in grado di gestirlo
-
Scelte disponibili normalmente in Apache non lo erano per gli utenti Gentoo
(per esempio gli MPMs)
- I bug di Apache si stavano accumulando
Questo documento spiega come aggiornare senza danneggiare il proprio sistema. Se
si è sviluppatori o si vuole sapere cosa è stato cambiato, o come gli ebuild
devono essere modificati per utilizzare le eclass, visitare la guida di riferimento di Apache
per gli Sviluppatori.
Aggiornare
Sono stati fatti molti cambiamenti riguardo il modo in cui Apache lavora
all'interno di Gentoo. Ogni pacchetto direttamente collegato con Apache deve
essere aggiornato, ed alcune cose che prima funzionavano, ora non funzioneranno
più.
Prima di tutto bisogna capire cosa necessita di aggiornamento. Questo è
possibile usando lo strumento equery, del pacchetto
app-portage/gentoolkit.
Codice 2.1: Individuazione dei pacchetti obsoleti |
$ equery depends www-servers/apache
[ Searching for packages depending on www-servers/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_mp3-0.40
net-www/mod_random-2.0
net-www/mod_throttle-3.1.2-r1
net-www/mod_ldap_userdir-1.1.4
net-www/mod_loopback-1.04
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,
assicurarsi di eseguire questo comando.
|
Avvertenza:
Esistono alcuni moduli e pacchetti dipendenti da Apache che non sono stati
aggiornati. Effettuare una ricerca su
bugzilla per ogni pacchetto di importanza critica usato insieme ad Apache.
|
Molte applicazioni web 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 flag USE, è consigliabile rivedere il contenuto
di /etc/portage/package.use. Consultare la lista delle flag USE di Apache per ulteriori
dettagli.
Codice 2.2: Verifica delle flag USE 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 bisogna riconfigurare Apache ed i suoi moduli. Si inizia con un
etc-update o dispatch-conf per aggiornare i file 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 rispettivamente in
/etc/apache2/modules.d e /etc/apache2/vhosts.d.
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 file non sono stati
rimossi, indicando l'avvenuta riconfigurazione di Apache usando i nuovi
percorsi.
Nota:
Molti moduli in precedenza abilitati in modo predefinito sono ora disabilitati.
Se si tratta di moduli compilati internamente, 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.
Codice 2.3: Riavvio di apache |
# /etc/init.d/apache stop
# /etc/init.d/apache start
|
Se si presentano dei problemi, consultare la guida per la Risoluzione dei problemi in
Apache e se questa non risolve la questione, segnalare il problema su
Gentoo Bugzilla. Assicurarsi 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.
Flag USE supportate nelle versioni <2.2.6-r4
Ci sono alcuni flag USE locali per Apache ed i suoi moduli. Apache supporta
molte altre flag USE 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 flag USE supportate.
| Flag USE |
Descrizione |
| apache2 |
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.
|
| debug |
Abilita un aggancio (hook) che permette ai moduli esterni di inserirsi e
fare qualcosa dopo che un processo figlio è andato in crash. Ci sono già due
moduli, mod_whatkilledus and mod_backtrace che fanno uso di
questo aggancio.
|
| doc |
Installa il manuale di Apache e della configurazione |
| ldap |
Installa mod_ldap e mod_auth_ldap/mod_authnz_ldap.
|
| ssl |
Installa mod_ssl. |
| mpm-itk |
Compila il MPM itk
|
| mpm-leader |
Compila il MPM leader
|
| mpm-peruser |
Compila il MPM peruser
|
| mpm-prefork |
Compila il MPM prefork
|
| mpm-threadpool |
Compila il MPM
threadpool
|
| mpm-worker |
Compila il MPM worker
|
| static-modules |
Effettua il linking statico dei moduli all'interno del binario di Apache,
in modo che non sia richiesto LoadModule per il caricamento degli stessi.
|
Nota:
Sebbene ci siano molte flag USE mpm-*, esse sono mutualmente esclusive.
È possibile abilitare una ed una soltanto delle flag USE mpm-*. (Se non
se ne abilita nessuna, verranno usate mpm-prefork o mpm-worker,
a seconda che la flag USE threads sia abilitata o no.)
|
4.
USE flag supportate nella versione 2.2.6-r4 e successive
Con l'avvento della variabile APACHE2_MODULES era necessaria una pulizia
generale delle flag USE. La seguente tabella elenca le USE flag supportate da
apache-2.2.6-r4 e versioni successive nonché le loro equivalenti per le
versioni precedenti.
| Flag USE |
Vecchia flag USE |
Descrizione |
| debug |
debug |
Abilita un aggancio (hook) che permette ai moduli esterni di inserirsi e
fare qualcosa dopo che un processo figlio è andato in crash. Ci sono già due
moduli, mod_whatkilledus e mod_backtrace che fanno uso di
questo aggancio.
|
| doc |
doc |
Installa il manuale di Apache e della configurazione |
| ldap |
ldap |
Installa mod_ldap e mod_authnz_ldap
|
| ssl |
ssl |
Installa mod_ssl
|
| static |
static-modules |
Collega staticamente i moduli nel binario di apache, in modo che non sia più
necessaria la direttiva LoadModule per caricare i moduli di base in Apache
|
| suexec |
no-suexec |
Installa mod_suexec ed il binario di supporto suexec
|
| threads |
threads |
Seleziona il MPM predefinito se nessuno di essi è specificato in
APACHE2_MPMS
|
La tabella seguente elenca i valori supportati per la variabile
APACHE2_MPMS in apache-2.2.6-r4 e la loro corrispondente USE flag
locale precedente.
| Flag |
Vecchia flag USE |
Descrizione |
| event |
mpm-event |
Una variante sperimentale del MPM worker standard |
| itk |
mpm-itk |
Permette di eseguire ciascun host virtuale con un uid e gid separato |
| peruser |
mpm-peruser |
Peruser è una implementazione funzionante del MPM perchild che permette
l'esecuzione dei processi figli di apache ciascuno con il proprio utente e
gruppo, facendo gestire a ciascuno il proprio insieme di host virtuali
|
| prefork |
mpm-prefork |
Implementa un server web non-threaded e pre-forking |
| worker |
mpm-worker |
Multi-Processing Module implementa un server web multi-processo
multi-thread ibrido
|
La tabella seguente elenca le variabili APACHE2_MODULES supportate a
partire da apache-2.2.6-r4.
| Flag |
Descrizione |
| actions |
Provvede ad eseguire script CGI basati sul tipo di media o metodo richiesto
|
| alias |
Provvede a mappare varie parti filesystem dell'host nell'albero del
documento e ad effettuare il reindirizzamento degli URL.
|
| asis |
Invia file che contengono le proprie intestazioni HTTP |
| auth_basic |
Autenticazione di base |
| auth_digest |
Autenticazione utente tramite l'Autenticazione MD5 Digest |
| authn_alias |
Dà la possibilità di creare fornitori di autenticazioni estese basati sugli
attuali fornitori
|
| authn_anon |
Permette l'accesso anonimo (tramite l'utente "anonymous") in aree sottoposte
ad autenticazione
|
| authn_dbd |
Autenticazione utente tramite un database SQL |
| authn_dbm |
Autenticazione utente tramite file DBM |
| authn_default |
Modulo di riserva per l'autenticazione |
| authn_file |
Autenticazione utente tramite file di testo |
| authz_dbm |
Autorizzazione di gruppo tramite file DBM |
| authz_default |
Modulo di riserva per l'autorizzazione |
| authz_groupfile |
Autorizzazione di gruppo tramite file di testo in chiaro |
| authz_host |
Autorizzazione di gruppo basata su host (nome o indirizzo IP) |
| authz_owner |
Autorizzazione basata sulla proprietà del file |
| authz_user |
Autorizzazione utente |
| autoindex |
Genera automaticamente gli indici delle directory, in modo simile al comando
Unix ls
|
| cache |
Cache dei contenuti legati agli URI |
| cern_meta |
Semantiche metafile httpd del CERN |
| charset_lite |
Specifica la traduzione o la ricodifica del set di caratteri |
| dav |
Funzionalità "Distributed Authoring and Versioning" (WebDAV) |
| dav_fs |
fornitore filesystem per mod_dav |
| dav_lock |
modulo generico di bloccaggio per mod_dav |
| dbd |
Gestisce le connessioni al database SQL |
| deflate |
Comprime i contenuti prima di inviarli al client |
| dir |
Fornisce i reindirizzamenti di tipo "trailing slash" e offre i file degli
indici delle directory
|
| disk_cache |
Gestore archiviazione cache dei contenuti legati agli URI |
| dumpio |
Se lo si desidera scarica tutto l'I/O su un log di errore |
| env |
Modifica l'ambiente che viene passato agli script CGI e alle pagine SSI
|
| expires |
Generazione delle intestazioni HTTP di Scadenza e Controllo Cache in accordo
con i criteri specificati dall'utente
|
| ext_filter |
Passa il corpo della risposta attraverso un programma esterno prima di
spedirlo al client
|
| file_cache |
Memorizza in cache una lista statica di file in memoria |
| filter |
Modulo di configurazione filtro intelligente sensibile al contesto
|
| headers |
Personalizzazione delle richieste HTTP e delle intestazioni delle risposte
|
| ident |
Controlli ident RFC 1413 |
| imagemap |
Elaborazione mappe immagini lato server |
| include |
Analisi lato server dei documenti html (Server Side Includes) |
| info |
Fornisce una panoramica esaustiva della configurazione del server |
| log_config |
Registrazione delle richieste fatte dal server |
| log_forensic |
Registrazione Forense delle richieste fatte dal server |
| logio |
Registrazione dei byte in entrate e uscita per ogni richiesta |
| mem_cache |
Cache dei contenuti legata agli URIs |
| mime |
Associa l'estensione richiesta del file alla modalità di funzionamento dello
stesso (gestori e filtri) e al contenuto (mime-type, linguaggio, set di
caratteri e codifica)
|
| mime_magic |
Determina il tipo MIME di un file analizzando alcuni byte del suo contenuto
|
| negotiation |
Fornisce la negoziazione dei contenuti |
| proxy |
Server proxy/gateway HTTP/1.1 |
| proxy_ajp |
Modulo di supporto AJP per mod_proxy |
| proxy_balancer |
estensione di mod_proxy per il bilanciamento di carico |
| proxy_connect |
estensione di mod_proxy per la gestione delle richieste di tipo CONNECT
|
| proxy_ftp |
Modulo di supporto FTP per mod_proxy |
| proxy_http |
Modulo di supporto HTTP per mod_proxy |
| rewrite |
Fornisce un motore di riscrittura basato su regole per riscrivere al volo
gli URL richiesti
|
| setenvif |
Permette l'impostazione di variabili d'ambiente basate sulle caratteristiche
della richiesta
|
| speling |
Cerca di correggere gli URL errati che gli utenti potrebbero aver imputato
ignorando la scrittura in maiuscolo e permettendo fino ad un errore di
scrittura
|
| status |
Fornisce informazioni riguardo all'attività e alle prestazioni del server
|
| unique_id |
Fornisce una variabile d'ambiente con un identificatore univoco per ciascuna
richiesta
|
| userdir |
Directory specifiche per utente |
| usertrack |
Registrazione della sequenza di click sui collegamenti durante l'attività di
un utente in un sito
|
| version |
Configurazione dipendente dalla versione |
| vhost_alias |
Fornisce hosting virtuale massiccio configurato dinamicamente |
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|