FreeBSD è usato per far girare alcuni dei siti web più trafficati al mondo. La maggioranza dei web server su Internet usano attualmene Apache HTTP Server. Il pacchetto software di Apache dovrebbe essere incluso nel tuo media di installazione di FreeBSD. Se non hai installato Apache quando hai installato FreeBSD per la prima volta, lo puoi installare dal port www/apache13 o www/apache22.
Una volta che Apache è stato installato con successo, deve essere configurato.
Questa sezione copre la versione 1.3.X
di Apache HTTP Server
dato che è la versione più usata per
FreeBSD. Apache 2.X
introduce molte nuove tecnologie ma queste non
saranno discusse in questa sede. Per maggiori
informazioni su
Apache 2.X, per favore
consulta httpd://httpd.apache.org/
.
Il principale file di configurazione
di Apache HTTP Server
è installato in
/usr/local/etc/apache/httpd.conf
su FreeBSD. Questo file è un tipico file di testo
di configurazione di UNIX® con linee di commento
che cominciano col carattere #
.
Una descrizione comprensiva di tutte le possibili
opzioni di configurazione è al di fuori dello
scopo di questo libro, così solo le direttive
usate più di frequente saranno descritte
di seguito.
ServerRoot "/usr/local"
Questo specifica la gerachia di directory
di default per l'installazione di
Apache. I binari
sono conservati nelle sottodirectory
bin
e
sbin
sotto la server root, ed i file di configurazione
sono conservati sotto
etc/apache
.
ServerAdmin you@your.address
L'indirizzo email al quale i problemi riguardanti il server dovrebbero essere inviati. Questo indirizzo appare su alcune pagine generate dal server, come alcuni documenti di errore.
ServerName www.example.com
ServerName
ti permette di
impostare un nome host che viene inviato
ai client per il tuo server, se questo
è differente da quello per il quale l'host
è configurato (ad esempio usi www
invece del vero nome host).
DocumentRoot "/usr/local/www/data"
DocumentRoot
: La directory
dalla quale servirai documenti. Di default
tutte le richieste sono girate a questa
directory, ma link simbolici ed alias
possono essere usati per puntare ad altre
locazioni.
È sempre una buona idea fare copie di backup del tuo file di configurazione di Apache prima di modificarlo. Una volta che sei soddisfatto dalla tua configurazione iniziale sei pronto per iniziare ad eseguire Apache.
Apache non viene eseguito dal super server inetd a differenza di molti altri server di rete. È configurato per girare standalone per migliori performance per gestire le richieste HTTP in entrata dai client web browser. Un wrapper shell script è incluso per rendere il più semplice possibile lo start, lo stop ed il restart del server. Per avviare Apache per la prima volta, esegui:
#
/usr/local/sbin/apachectl start
Puoi fermare il server in ogni istante digitando:
#
/usr/local/sbin/apachectl stop
Dopo aver fatto modifiche al file di configurazione per una qualsiasi ragione, avrai bisogno di riavviare il server:
#
/usr/local/sbin/apachectl restart
Per riavviare Apache senza mandare in abort le connessioni correnti, esegui.
#
/usr/local/sbin/apachectl graceful
Informazioni addizionali sono disponibili sulla pagina di manuale di apachectl(8).
Per eseguire Apache
all'avvio del sistema, aggiungi la seguente
linea ad /etc/rc.conf
:
apache_enable="YES"
o per Apache 2.2:
apache22_enable="YES"
Se volessi fornire opzioni addizionali
di linea di comando al programma
Apache
httpd
avviato al boot di sistema, puoi specificarle
con una linea addizionale in
rc.conf
:
apache_flags=""
Ora che il web server è in esecuzione
puoi navigare il tuo sito web puntando
il tuo web browser ad
http://localhost/
.
La pagina di default che viene mostrata
è
/usr/local/www/data/index.html
.
Apache supporta due tipi diversi di Virtual Hosting. Il primo metodo è Virtual Hosting basato sul nome. Il Virtual Hosting basato sul nome usa gli header HTTP/1.1 per scoprire l'hostname. Questo permette a molti domini diversi di condividere lo stesso indirizzo IP.
Per fare sì che
Apache
usi Virtual Hosting basato sui nomi aggiungi una
entry come la seguente al tuo file
httpd.conf
:
NameVirtualHost *
Se il tuo webserver era nominato
www.domain.tld
e
tu avessi voluto installare un dominio virtuale
per www.someotherdomain.tld
avresti dovuto aggiungere le seguenti entry
a httpd.conf
:
<VirtualHost *> ServerName www.domain.tld DocumentRoot /www/domain.tld </VirtualHost> <VirtualHost *> ServerName www.someotherdomain.tld DocumentRoot /www/someotherdomain.tld </VirtualHost>
Sostituisci gli indirizzi con gli indirizzi che vuoi usare ed i percorsi dei documenti con quelli che usi.
Per maggiori informazioni sull'impostazione
dei virtual host, per favore consulta la
documentazione ufficiale a
http://httpd.apache.org/docs/vhosts/
.
Ci sono molti diversi moduli Apache disponibili per aggiungere funzionalità al server base. La Collezione Port di FreeBSD fornisce un modo semplice di installare Apache assieme ad alcuni dei più popolari moduli aggiuntivi.
Il modulo mod_ssl usa la libreria OpenSSL per fornire una forte crittografia attraverso i protocolli Secure Sockets Layer (SSL v2/v3) e Transport Layer Security (TLS v1). Questo modulo fornisce tutto il necessario per richiedere un certificato firmato da un'autorità fidata che emette certificati, cosicchè puoi eseguire un web server sicuro su FreeBSD.
Se non hai ancora installato Apache, una versione di Apache 1.3.X che includa mod_ssl può essere installata con il port www/apache13-modssl. Il supporto ad SSL è anche disponibile per Apache 2.X nel port www/apache22, dove viene abilitato di default.
Negli ultimi anni, molte aziende si sono rivolte a Internet per migliorare i loro ricavi e aumentare la loro esposizione. Questo ha anche aumentato il bisogno di contenuti interattivi web. Mentre alcune società come Microsoft® hanno introdotto soluzioni nei loro prodotti proprietari, la comunità open source ha risposto all'appello. Due opzioni per contenuti web dinamici includono mod_perl & mod_php.
Il progetto di integrazione Apache/Perl mette assieme la grande potenza del linguaggio di programmazione Perl e l'Apache HTTP Server. Con il modulo mod_perl è possibile scrivere moduli Apache interamente in Perl. In aggiunta l'interprete persistente integrato nel server evita l'overhead di avviare un interprete esterno e la penalizzazione del tempo di caricamento Perl.
mod_perl è disponibile in alcuni modi diversi. Per usare mod_perl ricorda che mod_perl 1.0 funziona solo con Apache 1.3 e mod_perl 2.0 funziona solo con Apache 2.X. mod_perl 1.0 è disponibile in www/mod_perl ed una versione compilata staticamente è disponibile in www/apache13-modperl. mod_perl 2.0 è disponibile in www/mod_perl2.
PHP, anche noto come «Hypertext Prepocessor» è un linguaggio di scripting di scopo generale che è particolarmente adatto per lo sviluppo Web. Adatto ad essere usato all'interno dell'HTML, la sua sintassi deriva dal C, Java™, e Perl con l'intenzione di permettere agli sviluppatori web di scrivere pagine web generate dinamicamente in modo veloce.
Per integrare supporto a PHP5 per il web server Apache, inizia con l'installare il port lang/php5.
Se il port lang/php5
viene installato per la prima volta, le OPTIONS
disponibili saranno mostrate automaticamente.
Se non viene mostrato un menu, ad esempio perché
il port lang/php5
è stato installato qualche volta in passato,
è sempre possibile rivedere il menu a dialogo
con le opzioni eseguendo:
#
make config
nella directory dei port.
Nel menu a dialogo delle opzioni,
flagga l'opzione APACHE
per compilare mod_php5
come modulo caricabile per il web server
Apache.
Molti siti stanno ancora usando PHP4 per varie ragioni (ad esempio questioni di compatibilità o applicativi web già costruiti). Se si necessita del modulo mod_php4 invece che di mod_php5, siete pregati di usare il port lang/php4. Il port lang/php4 supporta molte delle configurazioni e delle opzioni di build-time del port lang/php5.
Questo installerà e
configurerà i moduli richiesti
per supportare applicazioni web dinamiche PHP.
Controlla che le seguenti linee siano state aggiunte al file
/usr/local/etc/apache/httpd.conf
:
LoadModule php5_module libexec/apache/libphp5.so AddModule mod_php5.c <IfModule mod_php5.c> DirectoryIndex index.php index.html </IfModule> <IfModule mod_php5.c> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps </IfModule>
Una volta completato, una semplice chiamata
al comando apachectl
per un tranquillo
restart è richiesto per caricare il modulo
PHP:
#
apachectl graceful
Per upgrade futuri di PHP, il comando
make config
non sarà richiesto;
le OPTIONS
selezionate sono salvate automaticamente
dal sistema dei Ports di FreeBSD.
Il supporto a PHP in FreeBSD è estremamente modulare così l'installazione base è molto limitata. È molto facile aggiungere supporto usando il port lang/php5-extensions. Questo port fornisce un interfaccia a menu per l'installazione di estensioni a PHP. Alternativamente le singole estensioni possono essere installate usando il port appropriato.
Ad esempio, per aggiungere supporto al database MySQL a PHP5, semplicemente installa databases/php5-mysql.
Dopo aver installato un'estensione, il server Apache deve essere riavviato per caricare i cambiamenti della nuova configurazione:
#
apachectl graceful
Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Per domande su FreeBSD, leggi la
documentazione prima di contattare
<questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a
<doc@FreeBSD.org>.