46.2. Installazione

Su SUSE Linux, Apache viene eseguito "in modo eccellente" con una configurazione standard predefinita. Seguendo le istruzioni di questo capitolo, è possibile installare ed eseguire il server web Apache in pochissimo tempo. Per installare e configurare Apachhe è necessario essere utenti root.

46.2.1. Installazione di Apache con YaST

Il pacchetto SUSE Linux apache2 presenta lievi differenze per quanto riguarda il layout dell'applicazione e del file system rispetto al pacchetto software standard disponibile nel sito Web di Apache (http://httpd.apache.org). Nella seguente sezione viene descritta in dettaglio l'installazione del pacchetto SUSE Linux apache2 e vengono evidenziate le differenze esistenti.

Per installare un server Web semplice, attenersi alla seguente procedura:

Procedura 46.1. Installazione rapida

  1. Avviare YaST nella modalità GUI o riga di comando.

  2. Selezionare Servizi di rete+Server HTTP.

  3. Fare clic su Continua per confermare l'installazione dei pacchetti apache2 e apache2-prefork.

  4. Al termine dell'installazione, viene visualizzato l'Apache Configuration Wizard (Procedura guidata configurazione Apache) ed è possibile iniziare a configurare il server Web.

Se si procede come sopra descritto, tuttavia, non sarà disponibile il supporto per i database e PHP. Per installare un server con il supporto per i database e PHP, attenersi alla seguente procedura:

Procedura 46.2. Installazione di un server Web semplice

  1. Avviare YaST nella modalità GUI o riga di comando.

  2. Selezionare Software+Installare/togliere i pacchetti.

  3. Selezionare Selezione in Filtro, quindi Server Web semplice con Apache2.

  4. Fare clic su OK.

  5. Confermare l'installazione dei pacchetti dipendenti per completare la procedura di installazione di SUSE Linux Apache2.

Per gli utenti avanzati, SUSE Linux consente di selezionare pacchetti personalizzati. Per eseguire un'installazione personalizzata di un server Web, attenersi alla seguente procedura:

Procedura 46.3. Installazione del pacchetto RPM Apache di default con YaST

  1. Avviare YaST nella modalità GUI o riga di comando. Selezionare Software+Installare/togliere i pacchetti.

  2. Selezionare Cerca in Filtro, quindi immettere apache2 nel campo Cerca.

  3. Selezionare apache2 per l'installazione.

  4. Nei passaggi 2 e 3 selezionare i moduli desiderati. Vedere Sezione 46.5, «Moduli Apache».

  5. Al termine, fare clic su Accetta.

  6. Viene quindi chiesto di scegliere una delle dipendenze per il pacchetto apache2-MPM necessario: apache2-prefork o apache2-worker. Per una descrizione delle differenze esistenti tra queste dipendenze, fare riferimento a Sezione 46.2.2, «Moduli per il multiprocessing». In caso di dubbio, selezionare il pacchetto apache2-prefork, che è l'impostazione di default per sistemi operativi Unix, quindi fare clic su OK.

  7. Confermare l'installazione dei pacchetti dipendenti per completare la procedura di installazione di SUSE Linux Apache2.

[Note]Avvio di un server Web

Quando si installa Apache, il server Web non viene avviato automaticamente. Per informazioni sul controllo dell'avvio e dell'arresto di Apache, fare riferimento a Sezione 46.3.3, «Attivazione, avvio e arresto di Apache».

46.2.2. Moduli per il multiprocessing

Come citato in Installazione del pacchetto RPM Apache di default con YaST, SUSE Linux offre due diversi moduli per il multiprocessing (MPM) per l'utilizzo con Apache. Gli MPM si occupano dell'accettazione e della gestione delle richieste a un server Web, rappresentando la parte centrale del software apposito.

46.2.2.1. MPM prefork

L'MPM prefork implementa un server Web non basato su thread e con funzioni di prefork. Rende il server Web simile ad Apache versione 1.x, poiché isola ciascuna richiesta e la gestisce duplicando un processo secondario separato. In questo modo, le richieste problematiche non hanno conseguenze sulle altre, evitando un blocco del server Web.

Se da un lato garantisce stabilità con questo approccio basato sui processi, l'MPM prefork consuma molte più risorse di un altro programma equivalente, l'MPM worker. L'MPM prefork è considerato l'MPM predefinito per i sistemi operativi basati su Unix.

[Important]Gli MPM nella presente documentazione

Questo documento presume l'utilizzo di Apache con l'MPM prefork.

46.2.2.2. MPM worker

L'MPM worker propone un server Web multithread. Un thread è una forma «più leggera» di processo. Il vantaggio di un thread rispetto a un processo è il consumo più basso di risorse. Invece di duplicare solamente processi secondari, l'MPM worker supporta richieste utilizzando thread con processi del server. I processi secondari di tipo preforked sono multithread.

Questo approccio migliora le prestazioni di Apache, consumando un numero inferiore di risorse di sistema rispetto all'MPM prefork. Uno dei principali svantaggio è la stabilità dell'MPM worker: se un thread viene danneggiato, tutti i thread di un processo possono subirne le conseguenze. La conseguenza peggiore è un arresto del server. Gli errori interni del server, dovuti a thread incapaci di comunicare con le risorse di sistema, possono verificarsi soprattutto per l'utilizzo di CGI (descritto nella Sezione 46.5.1.2, «CGI (Common Gateway Interface): mod_cgi ») con Apache sottoposto a un carico eccessivo.

Un altro punto a sfavore dell'utilizzo dell'MPM worker con Apache è che non tutti i moduli di Apache disponibili (vedere la Sezione 46.5, «Moduli Apache») sono thread-safe, per questo motivo non possono essere utilizzati insieme con MPM worker.

[Warning]PHP come modulo Apache (mod_php)

Non tutti i moduli PHP disponibili sono thread-safe. L'utilizzo dell'MPM worker con mod_php è fortemente sconsigliato.

46.2.3. Layout predefinito di applicazioni e file system

In SUSE Linux i file del pacchetto Apache vengono archiviati in posizioni predefinite. Di seguito sono riportate le posizioni dei file più importanti.

46.2.3.1. Binari

A quasi tutti i file eseguibili in SUSE Linux Apache viene aggiunto il valore 2 per differenziarli in caso di un'installazione parallela di Apache 1.x e Apache 2.x.

/usr/sbin/httpd2

Collegamento simbolico che fa riferimento a un determinato modulo multiprocessore come descritto nella Sezione 46.2.2, «Moduli per il multiprocessing». Il valore predefinito è httpd2-prefork. Il collegamento simbolico viene gestito dallo script di avvio in base alle impostazioni della configurazione di sistema di MPM.

/usr/sbin/httpd2-prefork

L'eseguibile effettivo Apache2.

/usr/sbin/apache2ctl

Script di controllo per l'avvio e l'arresto del server Web, fornito dal progetto Apache HTTPD. Per ulteriori informazioni o per eseguire /usr/sbin/apache2ctl help, vedere la Sezione 46.3.3, «Attivazione, avvio e arresto di Apache».

/etc/init.d/apache2

Script di avvio e arresto perfettamente integrabile nell'installazione SUSE Linux e che avvia Apache durante il processo di avvio. Consente di verificare l'esistenza di una configurazione valida prima dell'avvio e dell'arresto del server e di ignorare la posizione della configurazione. Semplifica inoltre l'inserimento di ulteriori file di configurazione, il caricamento dei moduli o l'avvio di un'istanza separata del server senza modificare lo script.

/usr/sbin/rcapache2

Utile collegamento simbolico per /etc/init.d/apache2, perché per impostazione predefinita /etc/init.d/ non è incluso nel percorso. Per avviare Apache, è sufficiente utilizzare rcapache2 start.

/usr/sbin/htpasswd2

Utility per la generazione di password cifrate per l'autenticazione basata su .htaccess. Per ulteriori informazioni sull'utilizzo di questo strumento, vedere la pagina di manuale htpasswd2(1).

46.2.3.2. File di configurazione

Quasi tutti i file di configurazione sono archiviati in /etc/apache2. Per ulteriori informazioni su come modificare le impostazioni di configurazione, vedere la Sezione 46.3, «Configurazione».

/etc/apache2/httpd.conf

File di configurazione di primo livello. Se possibile, non modificare questo file poiché contiene principalmente altri file di configurazione e dichiara le impostazioni globali.

/etc/apache2/*.conf

I file di configurazione di alcuni moduli Apache esterni vengono salvati nella directory /etc/apache2/. Questi file sono generalmente contrassegnati con il prefisso del nome del modulo stesso (mod_*.conf).

/etc/apache2/conf.d/*

Directory che contiene altri file di configurazione inclusi in determinati pacchetti. Per un esempio, vedere la Sezione 46.5.3.2, «PHP: mod_php4, mod_php5 ».

/etc/apache2/vhosts.d/*

Directory che contiene i file di configurazione opzionali per gli host virtuali. Per ulteriori informazioni, vedere la Sezione 46.4, «Host virtuali».

/etc/sysconfig/apache2

File di configurazione SUSE Linux relativo ad Apache2. Contiene tutti i parametri di configurazione che controllano il server Web Apache. /etc/sysconfig/apache2 viene utilizzato da YaST per la configurazione di Apache come descritto nella Sezione 46.3.1, «Configurazione di Apache con YaST». Può essere modificato anche manualmente, come illustrato in Sezione 46.3.2, «Configurazione manuale di Apache».

46.2.3.3. File di log

Per impostazione predefinita, nei file di Apache riportati di seguito sono disponibili varie informazioni sul relativo stato in fase di esecuzione.

/var/log/apache2/error_log

In questo file vengono registrate le informazioni di avvio e arresto e tutti gli errori verificatisi in fase di esecuzione.

/var/log/apache2/access_log

In questo file vengono registrate tutte le richieste al server Web. Il formato predefinito di queste voci è combinato e include le informazioni sull'host e l'agente utente che inviano la richiesta oltre che l'URI di riferimento.

46.2.3.4. Home directory

La directory fisica /srv/www/htdocs rappresenta la posizione predefinita utilizzata da Apache per fornire le pagine Web. Funge da «directory root» per una richiesta client. Per pubblicare le pagine Web con Apache, archiviare i file in ordine gerarchico all'interno o sotto a questa directory.

Un URL quale http://www.example.com/index.html fa riferimento a /srv/www/htdocs/index.html nella configurazione Apache predefinita in SUSE Linux per un dominio di nome example.com.

46.2.4. Generazione manuale dei moduli

Apache è stato creato seguendo un approccio modulare, questo significa che i moduli forniscono le capacità del software del server Web. Di conseguenza, gli utenti avanzati possono estendere Apache scrivendo moduli personalizzati. Per informazioni più dettagliate consultare le pagine man riportate qui di seguito.

46.2.4.1. apache2-devel

Per essere in grado di sviluppare moduli per Apache, o di compilare moduli di terzi, è necessario disporre del pacchetto apache2-devel unitamente agli strumenti di sviluppo corrispondenti. apache2-devel contiene inoltre gli strumenti apxs2, necessari alla compilazione di moduli aggiuntivi per Apache.

46.2.4.2. apxs2

I binari apxs2 si trovano nella posizione/usr/sbin:

  • /usr/sbin/apxs2— è adatto per generare un modulo di estensione che funziona con qualsiasi MPM. La posizione di installazione è /usr/lib/apache2.

  • /usr/sbin/apxs2-prefork— è adatto per il @@@prefork dei moduli MPM. La posizione di installazione è /usr/lib/apache2-prefork.

  • /usr/sbin/apxs2-prefork—adatto per i moduli di lavoro MPM.

apxs2 installa i moduli in modo tale che possano essere utilizzati per tutti gli MPM. Gli altri due programmi installano i moduli in modo tale che possano essere utilizzati solo per i rispettivi MPM. apxs2 installa i moduli in /usr/lib/apache2 e apxs2-prefork in /usr/lib/apache2-prefork.

apxs2 abilita la compilazione e l'installazione di moduli da sorgente (comprese le modifiche necessarie per i file di configurazione) che crea @@@@dynamic shared objects (DSO) caricabili in Apache al runtime. Installare un modulo dal sorgente con i comandi cd /path/to/module/source; apxs2 -c -i mod_foo.c. Le altre opzioni diapxs2 sono descritte alla pagina man apxs2(1). I moduli dovrebbero quindi essere attivati in /etc/sysconfig/apache2 con APACHE_MODULES come descritto inSezione 46.3.2, «Configurazione manuale di Apache».