Gentoo Logo

Aggiornamento di Apache

Indice:

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

(Ora è possibile aggiornare apache in sicurezza:)
# 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

(Verifica delle flag USE e degli aggiornamenti richiesti)
# 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

(Aggiornamento)
# 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

(È più semplice effettuare l'aggiornamento di world)
# 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


Stampa

Aggiornato il 11 dicembre 2007

Oggetto: Questo documento descrive le procedure necessarie all'utente finale per aggiornare la propria installazione di Apache.

Michael Stewart
Autore

Benedikt Boehm
Redazione

Joshua Saddler
Redazione

Sergio Bevilacqua
Traduzione

Davide Cendron
Traduzione

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.