Che cos’è un server web
Il server web è il software che “sta dietro” il World Wide Web: esso resta in ascolto delle richieste di accesso ad un sito web (inoltrate da parte di un browser come Internet Explorer, Mozilla od Opera), le processa e restituisce dei dati come risposta. Tali informazioni, che contengono tutti gli elementi necessari per la visualizzazione di una pagina web composta di testi ed immagini, vengono analizzate da parte del browser nel miglior modo possibile quindi presentate all’utente.
I server web comunicano con il browser Internet installato sul personal computer “client” (ossia sulla macchina che richiede l’accesso ad un sito web) attraverso il protocollo HTTP (Hypertext Transfer Protocol): esso standardizza il processo di invio e di ricezione dei dati cosicché qualsiasi client possa agevolmente comunicare con qualunque tipo di server web, senza problemi di compatibilità.
In altri articoli già pubblicati su IlSoftware.it, vi abbiamo illustrato alcune linee guida per la progettazione e la realizzazione delle vostre pagine web: abbiamo presentato il linguaggio HTML, le problematiche connesse alla creazione di una pagina web, abbiamo visto un primo esempio di linguaggio “client-side” qual è JavaScript.
In questa lezione ci accingiamo a spostare l’obiettivo sul lato server cercando di capire come funziona un server web. La comprensione di questo argomento risulta infatti di fondamentale importanza per tutti coloro che desiderino rendersi conto di tutte le problematiche più evolute connesse alla realizzazione ed alla successiva “pubblicazione” in Rete di un sito Internet evoluto.
Chi pensa di limitarsi alla realizzazione di siti web statici (composti, cioè, di solo codice HTML ed eventualmente di script “client-side” DHTML o JavaScript) non sarà interessato agli aspetti relativi all’interazione delle proprie pagine con il server.
Qualora, però, si dovesse rendere necessario lo sviluppo di una o più pagine web dinamiche, in grado cioè di presentare al visitatore contenuti variabili, spesso acquisiti da uno o più database, è assolutamente indispensabile misurarsi con alcuni concetti legati al server web.
Basti pensare poi che, fatta eccezione per i siti web personali e le pagine di presentazione di un’azienda, gran parte delle realtà su Internet sono oggi dinamiche: in base ad una specifica richiesta dell’utente, infatti, un sito web oggi è in grado di offrire, automaticamente, i contenuti più adatti. I motori di ricerca (Google!, Altavista,…) sono solo un esempio di siti web dinamici: l’utente inserisce in un’apposita casella (form) l’argomento cui è interessato, preme il pulsante “Cerca” e, dopo pochi secondi, il server web restituisce delle pagine HTML contenenti il materiale cercato. Pensate ai cataloghi online, sempre più spesso utilizzati dalle aziende per promuovere in Rete in propri prodotti; ai siti di e-commerce (che permettono di ordinare comodamente da casa prodotti e servizi); alle community online (sempre più siti mettono a disposizione forum all’interno dei quali ogni visitatore può esprimere le proprie opinioni).
Nel caso dei siti web dinamici si ha, insomma, un’interazione tra l’utente ed il sito Internet, tra il computer “client” del visitatore ed il server web; si mettono in comunicazione diretta i desideri dell’utente con i contenuti a disposizione sul server.
In questa lezione presenteremo, dapprima, i server web più utilizzati al mondo (Apache e Microsoft IIS) poi alcune tecniche di programmazione per lo sviluppo di procedure “server-side”. Gli script “server-side” vengono eseguiti direttamente sul server; il risultato dell’operazione viene quindi trasmesso al browser (“client”) dell’utente che sta visitando il sito web. Nel caso di JavaScript, invece, così come abbiamo avuto modo di apprendere nel nostro corso dedicato, gli script contenenti le operazioni da effettuare vengono trasmessi in chiaro – “così come sono” – al browser Internet, interpretati ed eseguiti su ciascun computer client.
L’obiettivo di questa lezione non è quello di improvvisare sistemisti i nostri lettori ma vuole rappresentare un punto di partenza per tutti coloro che desiderano approfondire le tematiche relative alla programmazione lato server.
Comprendere come operano Apache o IIS consentirà, dapprima, di “convertire” – a mero scopo didattico – un personal computer di casa o dell’ufficio a server web: potrete effettuare qui le vostre prime prove di configurazione. Una volta che il sistema risulterà adeguatamente configurato, potrete utilizzarlo per testare le vostre pagine web facenti uso di tecniche di programmazione che implicano l’interazione con il server, prima ancora di caricarle sullo spazio web messovi a disposizione dal vostro provider Internet.
Chi sviluppa siti web dinamici, infatti, è bene allestisca – a casa propria o nel proprio ufficio – uno o più server web in modo tale da verificare il perfetto funzionamento delle pagine realizzate prima ancora di porle online.
I più volenterosi ed i più interessati all’argomento, potranno raffinare le stesse conoscenze con l’obiettivo di allestire un vero e proprio server web personale. Chi dispone di connessioni Internet a larga banda (ADSL o fibra ottica) può provare a rendere uno o più siti web accessibili al mondo intero direttamente da uno dei propri computer di casa o dell’ufficio. Chi possiede una rete locale può pensare alla realizzazione di servizi di gestione della propria attività basati su Intranet.
Il lettore avrà quindi già compreso come la conoscenza del funzionamento del server web apra enormi possibilità. Va sottolineato che la realizzazione di progetti complessi implicherà la necessità di misurarsi immediatamente con problematiche assai importanti come quella della sicurezza. Se non si vuole vedere il proprio server web violato dall’esterno, attraverso la Rete, da parte di hacker e malintenzionati, si dovrà imparare ad applicare patch e severe policy di sicurezza. Queste tematiche, che necessiterebbero una trattazione ampia ed articolata, saranno oggetto di servizi futuri.
Quali server web si possono impiegare
Al giorno d’oggi sono disponibili numerosi server web (gratuiti o meno): alcuni di essi sono liberamente prelevabili da Internet in modo che possano esserne saggiate tutte le caratteristiche.
L’indagine che Netcraft effettua mensilmente (www.netcraft.com) suggerisce quali siano, al momento, i server web più utilizzati in tutto il mondo. Secondo le statistiche disponibili in questa pagina, nel mese di Settembre 2004, Apache risultava in uso sul 67,8% dei server totali a livello mondiale mentre Microsoft IIS sul 21,1%.
Diffusione dei server web negli anni 1995-2004 (fonte: NetCraft – www.netcraft.com)
Gli aspetti che vanno considerati prima della “messa in opera” di un server web sono la facilità d’installazione e di configurazione, le possibilità di personalizzazione, le sue caratteristiche peculiari, le sue dimensioni, le performance garantite ed il consumo di risorse macchina, il supporto di transazioni sicure, la disponibilità del codice sorgente, la puntualità con cui vengono rilasciati aggiornamenti, eventuali patch e nuove versioni, il supporto tecnico, il supporto di più piattaforme hardware-software, la disponibilità di versioni gratuite.
I server web disponibili oggi non consentono solo di restituire pagine statiche ai personal computer che si collegano con un certo sito ma supportano tutti i più recenti linguaggi di scripting.
I tempi in cui il web era concepito come un insieme di pagine statiche collegate da semplici collegamenti ipertestuali (link) sono ormai remoti. Gli sviluppatori di pagine web sentire infatti, da subito, l’esigenza di svincolarsi dalla staticità dell’HTML. Nacquero, quindi, i primi linguaggi “server-side”: l’intento era quello di garantire una maggiore interattività delle pagine Internet, restituendo all’utente solo le informazioni cui egli era effettivamente interessato.
CGI (Common Gateway Interface) è una delle prime tecnologie che vennero offerte agli sviluppatori per rendere maggiormente dinamici i propri progetti sul web.
Dopo CGI hanno infatti preso ampiamente piede ASP, PHP, ColdFusion, JSP, Microsoft .NET.
Il denominatore comune dei linguaggi di scripting “server-side” consiste nel fatto che il codice viene eseguito ed interpretato direttamente sul server che ospita il sito Internet (una situazione inversa rispetto a quanto accade nel caso di JavaScript). In questo modo è possibile acquisire dall’utente la lista delle informazioni alle quali egli è interessato, ricercarle sul server quindi proporgliele sotto forma di una normale pagina HTML, preparata “al volo” direttamente sul server web. Il processo è del tutto trasparente agli occhi dell’utente.
Linguaggi come ASP e PHP hanno aperto scenari fantastici, impensabili all’epoca in cui tutto il web era immobile, condizionato dalla staticità dell’HTML: si pensi, a mero titolo esemplificativo, che è oggi possibile generare automaticamente pagine HTML riversando, al loro interno, il contenuto di un database. In pratica, immaginate di poter memorizzare tutte le informazioni che dovranno essere inserite nel vostro sito web (ad esempio, il catalogo dei vostri prodotti con nome, descrizione ed altri dati caratterizzanti) in unico database. Grazie all’utilizzo di script “server-side” il server web sarà in grado di attingere dal database solo le informazioni alle quali il visitatore è interessato, comporre una normale pagina HTML, inserirvi all’interno i dati richiesti e proporre il tutto all’utente. Nel caso di un catalogo memorizzato all’interno di un database (per esempio, in formato Microsoft Access, MySQL oppure di una base dati creata con DBMS più evoluti quali Postgresql, Microsoft SQL Server, Oracle), si dovrà esclusivamente realizzare lo script in grado di recuperare le informazioni e di generare la pagina web. In questo modo si eviterà di sprecare tempo e risorse nello sviluppo di una pagina HTML statica per ciascun prodotto che si vuole mettere in Rete. Eventuali modifiche (grafiche e non) dovranno essere inoltre applicate solo allo script server-side e non ad ogni singola pagina HTML!
Installare e configurare IIS
Internet Information Services (IIS) è il server web che Microsoft mette a disposizione nelle versioni Professional e Server di Windows 2000, in Windows XP Professional e in Windows 2003 Server.
Le differenze tra la l’IIS incluso nelle versioni Server e quello che viene fornito con le versioni Professional sono notevoli.
Sostanzialmente, la versione di IIS inclusa in Windows 2000/XP Professional può essere utilizzata con il solo scopo di sviluppare e testare a fondo i siti web che si stanno realizzando, prima ancora di “pubblicarli” online (sul server web messo a disposizione dal proprio provider Internet). Tale versione di IIS è infatti assolutamente inadatta se si vuole allestire un server professionale.
In Windows 2000/XP Professional, l’installazione di IIS deve essere avviata manualmente accedendo al Pannello di controllo di Windows, cliccando su Installazione applicazioni quindi su Installazione componenti di Windows.
Dalla lista dei componenti installabili, selezionate la voce Internet Information Service (IIS) quindi cliccate sul pulsante Dettagli. Qualora siate interessati ad allestire solo un server web, potete limitarvi a spuntare le caselle File comuni, World Wide Web Server (Servizio Web in Windows XP), Snap-in Internet Information Services e Personal Web Manager. Cliccando su OK vi verrà richiesto di inserire il CD ROM di installazione di Windows. Al termine della fase di setup, che procederà in modo automatico, consigliamo di riavviare il sistema operativo.
Per controllare che IIS sia installato e funzionante, avviate il browser Internet quindi digitate, nella barra degli indirizzi, http://localhost
(localhost o 127.0.0.1 è detto anche “indirizzo di loopback” ed identifica il vostro stesso computer).
Il server web (IIS) dovrebbe rispondere alla vostra richiesta mostrandovi la pagina di default.
Se il computer è connesso in rete locale, provate ad accedere alla visualizzazione della pagina HTML di default di IIS da un client qualsiasi. Per far ciò eseguite Internet Explorer (od il browser installato) e digitate, come URL, http:// seguito dal nome del computer sul quale è in esecuzione IIS (per esempio: http://nomedelcomputer
).
Per verificare il nome assegnato al computer sul quale avete provveduto ad installare IIS, accedete al Pannello di controllo, fate doppio clic sull’icona Sistema, cliccate sulla scheda Nome computer. Il pulsante Cambia… permette di modificare a proprio piacimento il nome della macchina.
In alternativa, potete provare a raggiungere la macchina IIS facendo riferimento al suo indirizzo IP. Supponiamo che all’interno della rete locale gli sia stato assegnato l’IP 192.168.0.4: provate a digitare http://192.168.0.4
da un qualsiasi personal computer della LAN per accedere alla pagina predefinita proposta da IIS.
Se poi il computer è collegato ad Internet dovrebbe essere possibile raggiungerlo dall’esterno indicando l’IP assegnato dal provider al momento della connessione.
Le differenze tra IIS in Windows 2000 Professional e in Windows 2000 Server – Windows 2003 Server
Sia la versione Professional di Windows 2000 (Windows XP Professional compreso), sia la versione Server, mettono a disposizione Internet Information Services (IIS). Windows 2003 è stato invece rilasciato unicamente nella versione Server.
Le differenze tra le versioni Professional e quelle Server, sebbene siano molto simili per ciò che concerne l’interfaccia grafica di amministrazione (almeno per quanto riguarda Windows 2000 e Windows XP), sono piuttosto marcate. La versione di IIS inclusa in Windows 2000/XP Professional è assai limitata: il webmaster od il programmatore può farne uso con il solo scopo di testing delle pagine Internet sviluppate. Una volta verificata la corretta visualizzazione di tutte le pagine Internet su una tranquilla workstation locale dotata di Windows 2000 Professional e IIS, una volta soddisfatti del proprio lavoro, si potrà procedere alla “pubblicazione” del sito sul server della società o del provider Internet sul quale sarà in esecuzione Windows 2000 Server o Windows 2003 Server.
La versione di IIS di Windows 2000/XP Professional non permette infatti, di creare veri e propri siti Internet, raggiungibili dall’esterno nella forma http://www.nomedelsito.com
ma semplicemente di avere una serie di directory virtuali: in ciascuna di esse si potranno memorizzare le pagine costituenti un unico sito. Ciascun sito “virtuale” sarà però raggiungibile nella forma http://123.45.67.89/nome_sito
ove 123.45.67.89 è l’indirizzo IP associato in quel momento alla macchina dotata di Windows 2000 Professional e IIS; nome_sito è il nome della directory virtuale contenente le pagine web da visualizzare.
Sebbene questo tipo di struttura possa essere adeguata per piccole realtà aziendali che utilizzano reti locali per offrire ai propri dipendenti servizi Intranet (ad esempio, la possibilità di accedere a determinati dati, di acquisire ordini dai clienti, di gestire la contabilità dell’azienda semplicemente da un’interfaccia web), non è pensabile adottare questa soluzione nel caso in cui, dalla medesima macchina, si desideri rendere accessibili numerosi siti Internet nella forma www.ilmiosito.it o www.ilsuosito.com.
La limitazione più pesante che riguarda le versioni Professional consiste nel fatto che le connessioni che possono essere gestite dal server IIS sono pari ad un massimo di 10 (vedremo più avanti).
Configurazione del sito web predefinito in Windows 2000 Professional
Accedendo al Pannello di controllo di Windows 2000 Professional e facendo doppio clic sull’icona Gestione Servizio Internet Microsoft (in Windows XP: Internet Information Services), si accederà alla finestra di configurazione del server IIS. Da questa finestra è possibile gestire siti web, funzionalità FTP e SMTP.
Dopo l’installazione di IIS, viene automaticamente creato un sito web predefinito contenente, essenzialmente, i riferimenti ai file della guida di Internet Information Services.
E’ opportuno considerare le varie opzioni per la configurazione di un sito web da un punto di vista gerarchico: maggiore è il livello gerarchico dell’elemento sul quale si stanno apportando delle modifiche, maggiore sarà l’impatto globale degli stessi interventi.
Molte schede per la configurazione compaiono a più livelli gerarchici: ciò significa che effettuando una modifica al livello più alto verrà influenzato un maggior numero di oggetti componenti il sito.
Fate clic con il tasto destro del mouse sulla voce Sito predefinito quindi scegliete Proprietà. La prima parte della finestra contiene le informazioni le informazioni necessarie per l’identificazione del sito, compresi nome ed indirizzo. Vi sono poi due voci relative alle porte da utilizzare: la prima, per gli accessi anonimi dal server, la seconda per l’accesso SSL. Una delle limitazioni che Windows 2000 Professional impone consiste nel fatto di mettere a disposizione l’utilizzo, per le connessioni SSL, di un’unica porta: la 443.
L’altra grossa limitazione della versione di IIS contenuta in Windows 2000 Professional, consiste nel fatto che il numero di connessioni che possono essere effettuate è limitato a 10. Questa restrizione rende Windows 2000 Professional assolutamente inadatto per la gestione di un normale sito web che preveda un numero di accessi contemporanei superiore.
Il campo Timeout connessione permette di stabilire il tempo massimo (in secondi) durante il quale un utente inattivo – che non “naviga” cioè all’interno del sito – può restare collegato al server IIS. Poiché l’utilizzo della versione di IIS inclusa in Windows 2000 Professional è consigliato pressoché esclusivamente all’interno di una rete locale Intranet, suggeriamo di ridurre il valore impostato nel campo Timeout connessione in modo da agevolare l’ingresso di utenti in attesa e di accelerare le prestazioni del sistema.
Suggeriamo, inoltre, di attivare la casella Abilita keep-alive HTTP: è possibile così migliorare le prestazioni del server permettendo ad ogni client di mantenere attiva la connessione con IIS anziché crearne una nuova ad ogni richiesta di accesso.
La sezione Consenti registrazione attività permette di configurare le impostazioni relative alla creazione dei file di log ossia dei file testuali che registrano tutti i tentativi di accesso al server IIS. Se si prevede di utilizzare IIS solo all’interno della propria Intranet, è possibile disattivare la casella Consenti registrazione attività in modo da evitare l’occupazione di spazio su disco. In caso contrario, se si prevede che la macchina sulla quale è installato IIS debba essere raggiungibile anche dalla Rete Internet, è bene attivare l’utilizzo dei file di log in modo da registrare tutto il traffico generato. Il formato più diffuso per la creazione dei file di log è il W3C Extended Log File Format che costituisce lo standard per la maggior parte dei server web ed è supportato anche dagli sviluppatori di strumenti di analisi e gestione.
La scheda Prestazioni contenuta nell’IIS di Windows 2000 Professional (la stessa scheda è stata rimossa nell’IIS 5.1 di Windows XP Professional) ricalca quella inclusa nella versione Server del sistema operativo. La maggior parte delle opzioni contenute nella scheda Prestazioni risulta comunque disabilitata poiché, in Windows 2000 Professional, non è possibile agire su funzionalità avanzate come la regolazione della larghezza di banda destinata al sito Internet.
L’unica opzione abilitata è Regolazione prestazioni. E’ comunque curioso che Microsoft non abbia provveduto a modificare l’opzione predefinita: è infatti altamente improbabile che un utente che utilizzi la versione di IIS inclusa insieme con Windows 2000 Professional (dotata della limitazione a dieci connessioni simultanee) debba gestire più di 10.000 accessi al giorno!
Consigliamo quindi di selezionare l’impostazione Meno di 10.000.
A questo livello non ci sembra opportuno dilungarci sui filtri ISAPI: basti sapere che essi consentono di eseguire controlli in background sul sito web. Vi sono diversi tipi di filtri: alcuni soddisfano esigenze relative alla sicurezza, altri la mappatura degli URL e l’elaborazione delle intestazioni richieste.
La scheda Home Directory permette invece di specificare dove debbono essere reperiti i file che compongono il sito web che si sta configurando in IIS. Le scelte possibili sono tre: Directory situata in questo computer, Directory condivisa situata in un altro computer e Reindirizzamento a un URL.
La scheda può assumere diverse forme a seconda che si sia selezionata una directory, una directory virtuale od un file.
La sezione sottostante della finestra permette di impostare le tipologie di accesso consentite.
Accesso origine script, se selezionato, e se sono impostati i premessi di lettura e/o scrittura, permette l’accesso al codice sorgente degli script; Lettura consente l’accesso alla risorsa in sola lettura; Scrittura permette l’accesso alla risorsa in lettura/scrittura; Esplorazione directory se selezionato, visualizza in formato ipertestuale il contenuto di una cartella non virtuale. Per visualizzare il contenuto di queste ultime bisognerà conoscerne l’alias associato. Se l’opzione non è abilitata e l’utente specifica all’interno dell’URL un percorso ad una risorsa inesistente, il server Web risponderà con un messaggio di errore (accesso negato); Registra visite aggiunge la risorsa a quelle da monitorare per mezzo dei file di log; Indicizza questa risorsa se il servizio di indicizzazione è attivo, aggiunge la risorsa a quelle da indicizzare.
Il menù a tendina Autorizzazioni di esecuzione permette di indicare il livello di esecuzione autorizzato sulla risorsa: solo file HTML, script oppure script ed eseguibili.
La scheda Documenti consente di impostare le pagine che devono essere automaticamente proposte all’utente qualora egli non specifichi il nome di un file memorizzato sul server.
Primi accorgimenti
Microsoft stessa, per motivi di sicurezza, consiglia di eliminare i riferimenti ai file della guida ed agli esempi installati automaticamente insieme con IIS (per ottenere la lista completa delle patch da installare e delle politiche di sicurezza che è consigliabile applicare, suggeriamo l’utilizzo del software Microsoft Baseline Security Analyzer (MBSA), già presentato più volte nelle pagine de IlSoftware.it).
Per far questo eliminate, dalla finestra di amministrazione di IIS, tutte le directory virtuali create dopo l’installazione di Internet Information Services (cancellate le directory virtuali Scripts, IISAdmin, IISSamples, MSADC, IISHelp, WebPub, Printers) e tutti i contenuti predefiniti (cancellate le cartelle inetsrv\iisadmin e inetsrv\iisadmpwd… entrambe contenute nella cartella \winnt\system32 -; cancellate anche le cartelle \inetpub\wwwroot (o \ftproot o \smtproot), inetpub\scripts, inetpub\iissamples, inetpub\adminscripts, %systemroot%\help\iishelp\iis e %systemroot%\web\printers.
A questo punto fate clic con il tasto destro del mouse su Sito web predefinito, cliccate sulla scheda Home directory, quindi eliminate wwwroot dalla casella Percorso locale (dovrebbe restare solo c:\inetpub). Questa modifica vi permetterà di evitare un messaggio d’errore che informa sull’inesistenza della cartella specificata.
Dopo aver effettuato le regolazioni iniziali, sinora illustrate, è possibile passare alla creazione di una directory virtuale. Nella versione di IIS inclusa in Windows 2000/XP Professional è immediato pensare di creare una directory virtuale per ogni sito web che si sta sviluppando.
Destinando una directory virtuale a ciascun sito su cui si sta lavorando, è possibile simulare, sul proprio computer, il comportamento del server web che lo ospiterà. E’ possibile visualizzare, quindi, pagine web statiche e dinamiche così come appariranno successivamente dopo averle caricate sul server. L’utilizzo delle directory virtuali permette di risolvere eventuali problemi prima ancora di “pubblicare” i file sul server web del provider Internet consentendo di concentrarsi esclusivamente sulla programmazione e sull’ottimizzazione del sito.
La particolarità delle directory virtuali consiste nel fatto di fungere da “puntatore” verso una cartella residente su un disco fisso locale o su un altro personal computer in rete.
Per creare una nuova directory virtuale, è sufficiente fare clic con il tasto destro del mouse su Sito web predefinito quindi seguire la procedura passo-passo che viene presentata. La finestra immediatamente successiva a quella di presentazione, richiede di specificare un alias per la directory virtuale che si sta creando. L’alias è l’identificativo che dovrà digitare, nella barra degli indirizzi del browser Internet, chiunque vorrà accedere al contenuto della directory virtuale. Ad esempio, supponiamo di inserire sitotest
come alias: ciò significa che se dal browser Internet si vuole accedere alla directory virtuale del sito di prova, creata sul nostro computer, dovremo digitare, nella barra degli indirizzi http://localhost/sitotest
Per accedere alla stessa directory virtuale, un utente della nostra LAN dovrà digitare, in luogo di localhost, l’indirizzo IP associato alla nostra macchina oppure il nome della stessa: ad esempio, http://computeruno/sitotest
Tenete presente che è possibile accedere alle directory virtuali configurate su un personal computer dotato di Windows 2000/XP Professional e IIS anche dalla rete Internet specificando, al posto di localhost, l’indirizzo IP associato in quel momento alla macchina (per stabilire l’indirizzo IP associato al proprio computer all’atto della connessione Internet, fate doppio clic sull’icona raffigurante due piccoli computer, nella traybar in basso a destra, cliccate sulla scheda Dettagli quindi fate riferimento al valore Indirizzo IP del client).
Per evitare l’accesso ai siti configurati su IIS è necessario applicare alcune politiche di sicurezza sugli account utente o configurare un firewall in modo tale che respinga i tentativi di accedere al server IIS dalla rete Internet.
Creazione di una directory virtuale
Dopo l’impostazione dell’alias, è necessario indicare la cartella che deve essere puntata ossia la directory su disco che contiene (od all’interno della quale si intende memorizzare) i file che costituiscono il sito web.
Come ultimo passo, è necessario specificare le autorizzazioni che si desiderano impostare per la directory virtuale in corso di creazione. Suggeriamo di attivare solo le caselle Lettura ed Esecuzione script. Cliccando sul pulsante Avanti quindi su Fine, si concluderà la procedura guidata. Come risultato, vedrete comparire all’interno del ramo Sito web predefinito, una nuova voce, corrispondente all’alias da voi scelto per la directory virtuale.
Cliccando con il tasto destro del mouse sulla directory virtuale “sitotest” appena creata quindi scegliendo Proprietà, avrete accesso alla finestra delle proprietà, molto simile a quella già vista in precedenza per il Sito web predefinito.
Sono due gli aspetti che, a questo livello, è bene sottolineare. Il primo riguarda la gestione della sicurezza. La scheda Protezione directory permette di stabilire le modalità con le quali un utente può accedere alla directory virtuale. Diversamente dalla versione server di IIS, in Windows 2000/XP Professional non è possibile controllare l’accesso in base all’indirizzo IP. Facendo clic sul pulsante Modifica, viene visualizzata la finestra Metodi di autenticazione: selezionando la casella Accesso anonimo è possibile fare in modo che chiunque possa accedere alla directory (pur consentendo di mantenere il controllo sulle sottodirectory e sui singoli file). Nonostante l’accesso sia “anonimo”, l’utente verrà registrato nel sistema per mezzo di un account “ad hoc” (generalmente denominato IUSR_nomecomputer, ove “nomecomputer” è il nome associato al computer sul quale è in esecuzione IIS). Gli utenti anonimi non dovranno inserire alcun nome utente identificativo né alcuna password per accedere ad una directory virtuale sul vostro computer. Se su un server web di solito si deve consentire l’accesso ad un sito senza digitare alcun nome utente e password, sul vostro computer locale sarebbe bene inibire, per ragioni di sicurezza, qualsiasi forma di accesso anonimo.
Gli altri tre livelli di accesso richiedono l’identificazione dell’utente prima di consentire l’accesso alla directory. Attivando la casella Autenticazione di base vengono richiesti il nome e la password dell’utente. L’unico problema è che tali informazioni vengono trasmesse in chiaro e possono essere quindi intercettate consentendo ad utenti malintenzionati di accedere al sistema in modo non autorizzato. L’intercettazione può avvenire tramite un software (od un hardware) denominato sniffer, in grado di analizzare il contenuto di ogni pacchetto inviato e ricevuto. Le due opzioni successive sono utilizzabili in Windows 2000 Professional solo se la macchina è collegata ad un server di dominio.
L’opzione Autenticazione integrata di Windows sfrutta invece un metodo completamente diverso per l’identificazione dell’utente: in questo caso il sistema operativo effettua uno scambio di dati crittografati con il browser dell’utente grazie ad un metodo di certificazione digitale installato sul personal computer client insieme con il browser Internet.
Il secondo aspetto da evidenziare riguarda la priorità con la quale vengono visualizzati i documenti contenuti in una directory virtuale.
Nella scheda Documenti, è possibile indicare quali file devono essere mostrati se l’utente non richiede la visualizzazione di uno specifico file. Digitando, nella barra degli indirizzi del browser, l’URL http://localhost/sitotest
, verrà dapprima cercato il file default.htm, se questo non viene trovato, IIS passa alla ricerca di default.asp. Se anche il file default.asp non è presente nella cartella, IIS ricerca iisstart.asp; se anche tale file risulta irreperibile, viene visualizzato un messaggio d’errore che segnala all’utente l’impossibilità di accedere alla directory.
La lista dei documenti predefiniti è liberamente personalizzabile.
Installare e configurare Apache sotto Windows
Apache è il server web attualmente più utilizzato al mondo nato per funzionare come processo “stand alone” ossia senza richiedere l’appoggio di altre applicazioni o di altri componenti software. Si tratta di un prodotto solido, performante e supercollaudato: è il frutto (completamente gratuito) del lavoro di un team di volontari, noto come Apache Group.
Apache è un software estremamente aperto (sono addirittura reperibili sul sito www.apache.org i sorgenti veri e propri) che offre anche la possibilità ad altre aziende di crearsi un business mediante lo sviluppo di plug-in, aggiunte varie, strumenti di configurazione, tool di supporto e così via.
Il server web Apache, nato in ambiente Linux, è stato più di recente portato anche in Windows. Apache differisce da IIS per il fatto di essere completamente gratuito e di mettere a disposizione tutte le funzionalità di un server web avanzato. Tra l’altro Apache può essere impiegato su una qualunque versione di Windows (Windows 9x compreso).
L’ultima versione di Apache al momento disponibile, è scaricabile dal sito web ufficiale, raggiungibile all’indirizzo httpd.apache.org. Sullo stesso sito è possibile reperire le informazioni relative all’installazione, alla configurazione ed all’aggiornamento del server Apache. L’Apache Group è poi solito pubblicare tempestivamente, proprio in questo sito web, le patch risolutive per eventuali bug di sicurezza scoperti con il passare del tempo.
Come detto, il web server Apache può essere installato su tutti i sistemi Microsoft a partire da Windows 95, ma è necessario predisporre il sistema in modo che:
– sia presente il protocollo TCP/IP. In realtà su qualunque sistema che si connetta a Internet questo protocollo è sicuramente presente, e inoltre viene installato di default, quindi non dovrebbero esserci problemi. Diversamente, è sufficiente inserire il CD di Windows nel lettore ed aggiungere manualmente il componente;
– sia presente Winsock 2. Questa osservazione vale solo per gli utenti di Windows 95, i quali devono fare riferimento al sito di Microsoft per informazioni.
Una volta preparato il sistema, e dato per scontato di aver scaricato il file di installazione per sistemi Windows, provvediamo a lanciarlo. L’installazione di per sé non presenta nessun problema dato che ci troviamo dinanzi alle classiche finestre di setup di tutti i programmi che conosciamo.
Apache 2.x
Nel caso in cui abbiate scelto di installare la versione 2.x di Apaache, dopo l’accettazione dei termini della licenza d’uso (che consigliamo di leggere con attenzione) e delle note generali sull’installazione (“Read This First”) sarà necessario inserire alcune informazioni riguardo al server web che si sta configurando. Se state installando Apache per la prima volta, con lo scopo di saggiarne le principali funzionalità, digitate localhost
nel campo Server Name ed inserite la vostra e-mail nel campo Administrator’s email address. Lasciate attiva l’opzione for All users, on Port 80, as a service.
Nella finestra successiva selezionate Typical quale modalità di installazione quindi inserite la cartella ove desiderate che Apache venga collocato.
Cliccando sul pulsante Install verrà avviata la fase di setup che si concluderà in pochi istanti. Al termine della procedura, all’interno della traybar (ossia l’area situata in basso a destra, accanto all’orologio di Windows), dovrebbe comparire l’icona di Apache, a segnalare che il web server è già in esecuzione.
Nel caso di Apache 2.x, ad installazione conclusa provate ad avviare Internet Explorer od il browser in uso e digitate http://localhost
. Se il server web vi risponderà con la finestra visualizzata in figura avrete già installato correttamente Apache. I file componenti il sito web (html, php,…) andranno posti nella sottodirectory denominata htdocs (vedere più avanti per maggiori dettagli). All’interno della stessa cartella, potete creare sottodirectory in modo che il loro contenuto possa essere richiamato, dal browser Internet, nella forma http://localhost/nomesottodirectory/nomefile.html
. Se l’utente non specifica alcun file ma si limita a digitare un URL del tipo http://localhost/nomesottodirectory
, il primo file che verrà automaticamente richiamato sarà index.html.
Apache 1.3.x e superiori
Nel caso in cui stiate installando Apache 1.3.x (o versioni superiori ma comunque della serie 1.x), portata a termine la prima fase dell’installazione, anche in questo caso viene istintivo cercare di avviare il web server. Dal percorso Start->programmi->apache http server->control apache server notiamo che disponiamo di tre comandi, nell’ordine restart, start e stop. Provando a cliccare su start molto probabilmente apache si rifiuterà di partire, presentando un messaggio del tipo
Cannot determine local host name
Perché? Fondamentalmente perché il web server apache è un componente all’apparenza molto semplice ma la cui configurazione non è così agevole. La configurazione del sistema è infatti affidati ad un semplice file di testo e non ad una interfaccia grafica.
Configurazione di Apache con httpd.conf
Recatevi dentro la cartella in cui avete installato Apache, e poi ancora dentro la sottocartella conf. Noterete un file chiamato httpd.conf
(supponendo che il sistema sia settato per visualizzare anche le estensioni dei file), che è appunto il file di testo di setup del web server e che contiene un gran numero di parametri, alcuni dei quali debbono essere necessariamente noti. Trattandosi appunto di un semplice file di testo, apritelo con un editor testuale (anche il Blocco note di Windows è sufficiente per i nostri scopi). Nel seguito supporremo che prima di modificare httpd.conf vi ricordiate sempre di stoppare il server e di riavviarlo subito dopo.
Per prima cosa, vediamo come risolvere il messaggio di errore che si è prospettato in precedenza davanti a noi nel caso di installazione di Apache 1.x. Tramite il menù modifica->trova del Blocco Note di Windows (o del vostro editor di testi preferito) ricercate una riga che si presenta in questo modo:
Cominciamo col cancellare il simbolo # che nel file di configurazione di apache equivale a commentare la riga (le righe commentate vengono poi ignorate dal software) e sostituiamo poi alla dicitura new.host.name
l’host name della macchina sulla quale è installato il web server. Se dovete utilizzare il web server localmente la dicitura localhost
è più che sufficiente, se invece la macchina fa parte di una rete intranet può essere necessario rivolgersi all’amministratore di rete per sapere quale host name usare.
A questo punto la riga si dovrebbe presentare in questo modo
Salviamo il file di configurazione e chiudiamolo. A questo punto il web server apache si dovrebbe correttamente avviare (sempre tramite il percorso start->programmi->apache http server->control apache server). Se non riceviamo messaggi di errore e vogliamo accertarci che il web server sia in esecuzione apriamo un browser e digitiamo http://localhost/
nella barra degli indirizzi (si sta supponendo di lavorare in locale). Dovrebbe comparire una presentazione del web server come nella foto:
Questo perché di default apache considera la sottocartella htdocs come punto di partenza del web server pubblico. Cioè significa che se non interveniamo sulla configurazione saremo costretti a inserire i nostri files dentro la medesima cartella, che già contiene appunto la documentazione, creando solamente un sacco di confusione! A titolo d’esempio, il lettore può verificare che all’interno della suddetta cartella sono presenti i file di presentazione in varie lingue e la documentazione di apache. Tuttavia, è di nostro interesse vedere come configurare al meglio apache per una gestione più ordinata. Una possibile soluzione potrebbe essere questa: create una cartella all’interno della cartella di apache, ad esempio con l’esplicativo nome WWW: nel nostro caso, ad esempio, il percorso completo è C:/Programmi/Apache Group/Apache/WWW
. Ora riaprite il file di configurazione di apache e cercate una riga che si presenta in questo modo
e sostituitela con il valore da voi scelto, nel mio caso
Tenete però presente che così facendo tutti i file che intendete visualizzare tramite il web server devono trovarsi all’interno della cartella da voi indicata o in una delle sue sottocartelle.
A questo punto è necessario anche modificare una direttiva che si trova poco dopo DocumentRoot
e che si presenta in questo modo
Nel nostro caso, come avrete certamente intuito, la riga deve diventare
Se salvate il file e riavviate il server questo adesso cercherà i file nella cartella WWW in maniera del tutto trasparente. Per essere sicuri di questo fatto posizionate un file html dentro la cartella WWW e verificate.
Gli altri parametri che riguardano la configurazione di apache in questa sede non ci interessano, basti sapere che si possono configurare parametri quali: la porta d’ascolto del server, l’email dell’amministratore del sistema, i valori di timeout, la modalità del server (sotto windows deve essere standalone) ma in ogni caso se state lavorando in locale sono fondamentalmente ininfluenti, diversamente è necessario rivolgersi all’amministratore di rete.
Suggeriamo di fare riferimento a questa pagina per ottenere una lista completa delle regolazioni (direttive) applicabili. Per rendere la configurazione di Apache più semplice ed intuitiva – evitando, così, di dover intervenire direttamente sul file di testo httpd.conf – sono nati anche dei tool basati su interfaccia grafica, facilmente reperibili in Rete.
Nella prossima puntata vedremo come installare Perl, PHP (sia sotto Apache che in IIS) oltre ad analizzare i primi esempi di pagine ASP.