Appunti per Scuola e Università
humanisticheUmanistiche
Appunti e tesine di tutte le materie per gli studenti delle scuole medie riguardanti le materie umanistiche: dall'italiano alla storia riguardanti le materie umanistiche: dall'italiano alla storia 
sceintificheScientifiche
Appunti, analisi, compresione per le scuole medie suddivisi per materie scientifiche, per ognuna troverai appunti, dispense, esercitazioni, tesi e riassunti in download.
tecnicheTecniche
Gli appunti, le tesine e riassunti di tecnica amministrativa, ingegneria tecnico, costruzione. Tutti gli appunti di AppuntiMania.com gratis!
Appunti
informatica
CComputerDatabaseInternetJava
Linux unixReti


AppuntiMania.com » Informatica » Appunti di database » Installare e configurare Apache

Installare e configurare Apache




Visite: 3505Gradito:apreciate 4-stela [ Medio appunti ]
Leggi anche appunti:

Database


DATABASE IL PROGRAMMA ACCESS Access è un programma per la gestione

Progetto del modulo di basi di dati


Progetto del Modulo di Basi di Dati Gestione di un Team di Formula 1 SPECIFICHE Si

I Database Relazionali


I Database Relazionali allora cosa sono questi famigerati Database relazionali? il
immagine di categoria

Scarica gratis Installare e configurare Apache

Installare e configurare Apache

Nonostante gli sforzi di Microsoft e Netscape, Apache continua a dominare il mercato dei server web, come testimoniano le ultime indagini di Netcraft da cui risulta che circa il 55% dei server HTTP sono targati Apache. I fattori principali che hanno contribuito al successo di Apache sono la disponibilità gratuita del codice sorgente, la sua struttura modulare che lo rende estremamente versatile e la stabilità di esecuzione. Apache viene distribuito anche in forma precompilata per diverse piattaforme Unix e, dalla release 1.3, è disponibile anche per Windows; tuttavia le prestazioni ottenute su questa piattaforma sono al momento inferiori a quelle per Unix.
La scelta dei moduli da compilare e la fase di configurazione del server HTTP, sono i punti più importanti del processo di installazione di Apache perché da essi dipende la qualità e l'affidabilità del servizio offerto. In questo articolo analizzeremo, pertanto, gli aspetti della compilazione e della configurazione del server web Apache su piattaforma Unix. Vedremo anche quali sono le procedure da seguire per integrare un modulo aggiuntivo nel codice binario del server.

Installazione di Apache

La versione più recente del server Apache è la 1.3.6. Presso il sito ufficiale https://www.apache.org è disponibile sia il codice sorgente sia il codice binario compilato per alcune versioni di Unix e per Windows.Il codice sorgente viene distribuito sotto forma di archivio tar compresso. Procuriamoci, dunque, una copia del file apache_1.3.6.tar.gz ed eseguiamo il comando:

# gzip -dc apache_1.3.6.tar.gz | tar -C /usr/local -xvf -

In questo modo il codice sorgente verrà installato nella directory /usr/local/apache_1.3.6. Posizioniamoci in tale directory ed esaminiamo gli aspetti della fase di compilazione del server HTTP Apache:

# cd /usr/local/apache_1.3.6

Informazioni esaustive sulle modalità di configurazione, sui moduli disponibili e sulla compilazione di Apache, si trovano nel file INSTALL presente in questa directory. Apache mette a disposizione due modalità per la personalizzazione dei Makefile. La prima possibilità è quella di modificare il file src/Configuration selezionando i moduli che si desiderano installare e aggiungendo le istruzioni necessarie per l'inserimento dei moduli di terze parti. Quindi si esegue lo script Configure.
La seconda possibilità, ed è la novità presente nelle versioni 1.3.x, consiste nell'utilizzare APACI (Apache Autoconf-style Interface). Questa interfaccia è simile alla GNU autoconf e, a differenza del metodo precedente, verranno generati i file di configurazione dell'attività del server Apache già personalizzati secondo le indicazioni che abbiamo fornito da linea di comando. Inoltre, verranno creati anche alcuni utili script per la gestione e manutenzione del server HTTP. Utilizzando questa procedura, il comando per la generazione dei Makefile adattati al nostro sistema è il seguente:

# ./configure --prefix=/usr/local/httpd

L'opzione prefix=ServerRoot è molto importante perché rappresenta la posizione in cui il server HTTP si inserisce nel filesystem. Tutti i file necessari per l'amministrazione del server HTTP, a meno di particolari configurazioni da segnalare opportunamente all'avvio del server, risiedono in una posizione ad essa relativa.
Ciò detto, eseguiamo i comandi per la compilazione e l'installazione del server Apache:

# make
# make install

Alla fine dell'installazione, nella directory PREFIX/bin troveremo il programma httpd per la gestione del servizio HTTP e alcuni script tra cui apachectl per l'avvio e la conclusione delle attività del daemon httpd. Avendo usato lo script configure, i file di configurazione del server Apache sono già correttamente impostati per quanto riguarda le opzioni generali di funzionamento. Pertanto, possiamo provare ad avviare il server web con il comando

# PREFIX/bin/apachectl start

Selezionando in un web browser l'URL corrispondente al nome o all'IP della nostra macchina dovrebbe comparire la pagina introduttiva di Apache recante la rassicurante frase 'It Worked!' (Ha funzionato!). Se qualcosa non ha funzionato correttamente durante la fase di inizializzazione del server, apparirà sullo schermo il corrispondente messaggio d'errore. Tali informazioni vengono anche registrate nel file error_log che, nel layout di default, è collocato nella directory PREFIX/logs.Interrompiamo, quindi, il funzionamento del server con il comando

# PREFIX/bin/apachectl stop

Ovviamente, non è assolutamente necessario utilizzare lo script apachectl per gestire l'attività del server Apache. Si può semplicemente invocare il programma httpd. Per la lista delle opzioni accettate da httpd vedere la Tabella 1.

Configurazione di Apache
Le release di Apache precedenti la 1.3.4 utilizzavano tre file di configurazione: httpd.conf, srm.conf, access.conf. Questa suddivisione era una reminiscenza delle origini di Apache dalle quali ci si è finalmente affrancati e le numerose direttive sono oggi contenute nell'unico file httpd.conf che, per default, si trova nella directory ServerRoot/conf. In realtà, il file di configurazione può avere un nome qualunque e occupare una posizione qualsiasi nel filesystem, purché ne venga data comunicazione all'atto dell'avvio del daemon httpd con l'opzione -f file-di-configurazione.
Il webmaster ha a disposizione circa 200 direttive per personalizzare in ogni aspetto il servizio HTTP. Tale versatilità del server Apache è sicuramente uno dei suoi punti di forza, però è anche il punto in cui l'amministratore alle prime armi viene travolto da un senso di smarrimento, oserei dire, kafkiano. In questa sezione discuteremo le direttive più importanti presenti nel file httpd.conf. Accanto ad ogni direttiva viene indicato tra parentesi il valore di default o i possibili valori assunti dalla direttiva. I percorsi relativi vengono considerati a partire dalla directory ServerRoot.

  • ServerType (standalone | inetd)

Il daemon httpd può essere avviato in modalità standalone oppure tramite inetd. In quest'ultimo caso, si dovrà modificare opportunamente il file /etc/inetd.conf. La scelta di gestire il servizio HTTP tramite inetd comporta un certo ritardo nella risposta alle richieste di connessione perché, per ognuna di esse, deve essere avviato un processo httpd che terminerà alla fine della connessione. Un tale comportamento può essere giustificato solo da particolari motivi di sicurezza. Si deve pertanto preferire la modalità standalone. In questo caso, qualora vengano fatte delle modifiche al file di configurazione, è necessario inviare un segnale di SIGHUP al daemon httpd affinché venga reinizializzato. Si faccia attenzione alla modalità di funzionamento del server Apache: al momento dell'avvio, il processo principale genera una serie di processi figli deputati alla gestione del servizio HTTP. Il segnale di SIGHUP va quindi inviato al processo padre.

  • ServerRoot 'directory' [/usr/local/httpd]

È la posizione in cui il server HTTP si inserisce nel filesystem. Può anche essere indicata all'avvio del server con l'opzione -d ServerRoot.

  • PidFile 'filename' [logs/httpd.pid]

Viene indicata la posizione del file contenente il PID del processo principale httpd. Questa direttiva è usata solo in modalità standalone.

  • Port 'Numero-Porta' [80]

È la porta utilizzata dal daemon httpd quando viene avviato in modalità standalone. Se il server è stato avviato da inetd, allora sarà quest'ultimo a stare in ascolto sulla porta specificata nel file /etc/services. Di solito, per il servizio HTTP, viene utilizzata la porta 80.Se il server è stato avviato in modalità standalone, tramite la direttiva Listen si può fare in modo che httpd stia in ascolto anche su più di una porta.

  • User (utente | #numero_uid)

Group (gruppo | #numero_gid)

Tutte le richieste che giungono al server HTTP vengono considerate come se fossero eseguite dall'utente indicato nella direttiva User. Per motivi di sicurezza è importante limitare i privilegi di questo utente. Di solito, si usa l'utente e il gruppo nobody. Si può anche usare il numero identificativo dell'utente e del gruppo purché siano preceduti dal simbolo #.

Per utilizzare queste direttive il server deve essere avviato in modalità standalone con i permessi dell'utente root.

  • ServerName 'nome di dominio del server'

Con questa direttiva si assegna il nome di dominio del server web. Esempio:

ServerName www.nome.it

In questo modo si afferma che il nome del computer che offre il servizio HTTP è www.nome.it, anche se il nome effettivo del computer è, per esempio, brutto.nome.it.

Il nome utilizzato (www.nome.it) deve però essere un dominio registrato in modo da poter essere risolto dal DNS. La direttiva ServerName insieme a quella Port formano il nome canonico del server HTTP. Se questa direttiva non viene utilizzata, verrà usato il nome di dominio della macchina che offre il servizio web (nell'esempio: brutto.nome.it).

  • DocumentRoot 'directory' [htdocs]

È la directory contenente i documenti che verranno serviti dal server HTTP. La directory può essere indicata con un percorso relativo (e in tal caso si farà riferimento a ServerRoot/DocumentRoot) oppure assoluto. Per un difetto nel codice di mod_dir è necessario che il percorso indicato non abbia la barra obliqua finale (ad esempio: DocumentRoot /home/htdocs/ è un percorso non valido).

  • UserDir 'directory | (disabled | enabled) lista-utenti' [public_html]

Con questa direttiva si consente agli utenti di avere, all'interno dell'utenza personale, una directory in cui collocare i propri documenti HTML. Se, ad esempio, il valore assegnato a UserDir è public_html, i documenti presenti nella directory /home/nome_utente/public_html saranno consultabili utilizzando l'URL https://hostname/~nome_utente. L'uso di questa direttiva può causare problemi di sicurezza perché l'utente dispettoso può, ad esempio, creare dei link simbolici a dei file che pur essendo leggibili da tutti gli utenti interni non si vogliono, probabilmente, diffondere nella comunità Internet. Apache, comunque, mette a disposizione del bravo webmaster gli strumenti necessari per evitare situazioni spiacevoli. Possono essere inserite più direttive UserDir all'interno del file di configurazione. Usando

UserDir public_html
UserDir disabled root

si consente a tutti gli utenti tranne root di avere delle pagine HTML nella propria home directory.

  • DirectoryIndex 'filename' [index.html]

Se il client richiede di accedere a una directory in cui è presente uno dei file indicati in questa direttiva, allora anziché visualizzare l'elenco dei file contenuti nella directory verrà mostrato il contenuto di tale file. È possibile indicare più di un nome, eventualmente anche degli URL.

  • Alias 'directory-virtuale' 'directory-reale'

ScriptAlias 'directory-virtuale' 'directory-reale'

Tramite queste direttive si consente al server httpd di accedere a documenti collocati al di fuori di DocumentRoot. Ciò può essere utile per motivi di sicurezza o per facilitare l'accesso ad alcune directory particolari. Entrambe le direttive possono essere ripetute più volte all'interno del file di configurazione. La direttiva ScriptAlias si differenzia dalla direttiva Alias perché i documenti nella 'directory-reale' vengono trattati dal server come applicativi CGI anziché come documenti da inviare al client.

Alias /icons/ '/usr/local/httpd/icons/'

La richiesta dell'URL https://hostname/icons/ viene tradotta dal server in /usr/local/httpd/icons/.

  • Directory, Files, Limit e Location

Queste direttive sono molto importanti perché tramite esse è possibile configurare Apache in modo da ottenere le migliori prestazioni. Sono in realtà dei marcatori la cui sintassi è simile a quella dell'HTML. Il tag di apertura conterrà anche l'indicazione della directory o dei file a cui verranno applicate le direttive presenti in una lista che si conclude con il tag di chiusura.La direttiva Directory può essere efficacemente usata per migliorare le prestazioni del server.La direttiva Limit consente di dichiarare esplicitamente quali metodi del protocollo HTTP sono applicabili al contenuto di una directory.

<Directory /docs>
<LIMIT GET>
order deny, allow
deny from all
allow from .try.to.do.it
</LIMIT>
</DIRECTORY>

In questo caso solo i client appartenenti al dominio try.to.do.it possono consultare i dati contenuti nella directory /docs. Si osservi che qualora si voglia applicare un filtro sugli accessi in base al dominio di appartenenza è necessario attivare la direttiva HostnameLookups che, per default, è settata sul valore Off. Per non degradare le prestazioni del server è però preferibile impostare l'autenticazione sugli indirizzi IP anziché sul nome di dominio.

Compilazione di un modulo aggiuntivo

Come modulo da integrare nel server Apache abbiamo scelto PHP il cui codice sorgente, in forma di archivio compresso, può essere prelevato dal sito https://www.php.net/download-php.php3. PHP (Professional Home Page) è un linguaggio di programmazione interpretato che tramite l'uso di opportuni marcatori consente di inserire i propri script all'interno delle pagine HTML. Tra i pregi di questo linguaggio abbiamo un'elevata velocità di esecuzione, la possibilità di interfacciarsi a numerosi database (da Oracle a Mysql, da SQL server di Microsoft a PostgreSQL, ecc.) e non ultimo il fatto che è 'Open Source'.
PHP può essere compilato come modulo di Apache oppure come applicativo CGI. In quest'ultimo caso si ha un degradamento delle prestazioni globali perché il processo del server ha bisogno di creare un altro processo (l'interprete PHP, appunto) per l'esecuzione del codice PHP, attendere che questo termini e poi 'girare' al client connesso il risultato dell'elaborazione. Integrando, invece, l'interprete PHP all'interno del server HTTP, il file richiesto dal client viene elaborato direttamente all'interno del server senza effettuare chiamate di sistema, riducendo così l'utilizzo delle risorse e ottimizzando i tempi di elaborazione. Nel nostro esempio supporremo di compilare PHP come modulo per Apache. Installiamo, dunque, il codice sorgente nella directory /usr/local e procediamo all'adattamento dei Makefile:

# gzip -dc php-3.0.7.tar.gz | tar -C /usr/local -xvf -
# cd /usr/local/php-3.0.7
# ./configure --with-apache=/usr/local/apache_1.3.6

L'opzione --with-apache ci consente di indicare esplicitamente la posizione in cui si trova il codice sorgente di Apache dove, al termine della procedura di installazione, verranno copiati i file necessari per l'inclusione del modulo PHP all'interno del server HTTP.
Alla fine dell'esecuzione dello script di configurazione verranno creati i Makefile adatti al nostro setup. Procediamo, quindi con la compilazione e l'installazione dei file necessari nella directory di Apache:

# make
# make install
# cp php3.ini-dist /usr/local/lib/php3.ini

L'ultimo comando copia nella directory /usr/local/lib il file php3.ini che contiene le direttive per la personalizzazione dell'interprete. Se PHP è stato compilato come modulo di Apache, tale file verrà letto solo all'avvio del server HTTP.
A questo punto è necessario ripetere la procedura di compilazione di Apache e generare dei nuovi Makefile contenenti le informazioni relative al modulo PHP che vogliamo installare. Spostiamoci, dunque, nella directory contenente il codice sorgente di Apache ed eseguiamo lo script di configurazione:

# cd /usr/local/apache_1.3.6
# ./configure --prefix=/usr/local/httpd
--disable-module=include
--activate-module=src/modules/php3/libphp3.a

L'opzione --disable-module esclude dalla compilazione il modulo per l'interpretazione di documenti SSI (Server Side Include). Questo modulo viene compilato per default. Nel nostro caso, avendo scelto di utilizzare PHP, la presenza di mod_include è del tutto inutile.
L'opzione --activate-module=src/modules/file viene utilizzata per includere nella compilazione di Apache i moduli costituiti da più di un file. Se il modulo da includere è costituito da un solo file, si utilizzerà l'opzione --add-module=directory-del-modulo.c.
A questo punto siamo pronti per una nuova compilazione del server Apache che avvieremo con il comando make.
Alla fine della compilazione nella directory src troveremo il file httpd che copieremo nella directory PREFIX/bin non prima però di aver prudentemente rinominato il file PREFIX/bin/httpd del cui corretto funzionamento siamo sicuri.

# mv /usr/local/httpd/bin/httpd /usr/local/httpd/bin/httpd.old
# cp /usr/local/apache_1.3.6/src/httpd /usr/local/httpd/bin/httpd

Prima di avviare il nuovo server HTTP dobbiamo modificare il file di configurazione ServerRoot/httpd.conf introducendo la direttiva:

AddType 'MIME-type' 'estensione'

mediante la quale è possibile aggiungere dei tipi MIME senza modificare il contenuto del file mime.types. Poiché abbiamo scelto di integrare nel server Apache il modulo PHP, l'uso di AddType ci torna utile per comunicare al server HTTP di interpretare i documenti aventi l'estensione php e di inviare al client solo il contenuto dell'elaborazione:

AddType application/x-httpd-php3 .php

Si può, poi, verificare la corretta installazione del modulo PHP, creando il file DocumentRoot/info.php contenente il codice:

<?
phpinfo();
?>

Selezionando, quindi, in un web browser l'URL https://localhost/info.php, dovrebbe apparire una lunga pagina informativa sullo stato del server HTTP e sul sistema operativo.

Prestazioni e potenza di calcolo
Apache è un server web progettato per essere robusto, affidabile, versatile e, in secondo luogo, per essere veloce. La velocità, del resto, è un requisito che dipende da numerosi fattori, alcuni dei quali (come la banda a disposizione per il servizio HTTP) non possono essere completamente previsti in fase di progettazione ma che pure influiscono sulla qualità finale del servizio offerto. Il modello 'Open Source', su cui si basa Apache, è senz'altro la carta vincente nel campo dei server web perché consente di attuare un feed-back continuo tra sviluppatori e utilizzatori. La stabilità del server Apache, frutto di questa intensa collaborazione, è un dato di fatto confermato dal crescente numero di siti che utilizzano il suo codice. Siti con elevato traffico come Yahoo!, Geocities e, strano a dirsi, Microsoft HotMail affidano i propri servizi al server Apache. Un'approfondita conoscenza dei principi di funzionamento del server Apache e un corretto quadro della situazione che si deve gestire consentono di raggiungere prestazioni eccellenti.

Conclusioni
Al di là degli indubbi meriti, Apache non è certamente uno strumento adatto a tutti. La configurazione e la gestione del servizio HTTP viene fatta interamente da linea di comando e richiede una conoscenza approfondita delle numerose direttive disponibili e familiarità con la sintassi da utilizzare. Ciò può essere visto come un vantaggio, in quanto consente l'amministrazione dei servizi HTTP anche da terminali non grafici, può, però, tradursi in un dispendio di energie (e di costi) qualora l'amministratore del servizio web non abbia la necessaria familiarità con i principi di funzionamento del server Apache. Alcuni tool grafici per la configurazione/gestione di Apache sono, comunque, in fase di sviluppo. Essendo un prodotto freeware, l'assistenza offerta è legata alla disponibilità e buona volontà degli utenti della comunità Apache. Esistono, tuttavia, numerose società che offrono assistenza per la configurazione del server Apache ed, eventualmente, anche per la realizzazione di nuovi moduli.
Nonostante questi lievi difetti, Apache è un ottimo server HTTP e, visto che è gratis, vale senz'altro la pena di farci un giro.

Bibliografia
[1] https://www.apache.org


Scarica gratis Installare e configurare Apache
Appunti su:



Scarica 100% gratis e , tesine, riassunti



Registrati ora

Password dimenticata?
  • Appunti superiori
  • In questa sezione troverai sunti esame, dispense, appunti universitari, esercitazioni e tesi, suddivisi per le principali facoltà.
  • Università
  • Appunti, dispense, esercitazioni, riassunti direttamente dalla tua aula Universitaria
  • all'Informatica
  • Introduzione all'Informatica, Information and Comunication Tecnology, componenti del computer, software, hardware ...