In questo articolo vedremo come predisporre un server HTTP in locale senza utilizzare alcun pacchetto integrato (si veda XAMPP).
Per infiniti scopi, un web server sul proprio PC è una caratteristica utilissima: si pensi alla semplice condivisione di file o allo sviluppo web occasionale, fino ad arrivare al developer professionista che prova in locale le proprie creazioni prima di renderle pubbliche.
Prima di cominciare, ci prefiggiamo questi obiettivi:
Si tenga conto che, un server HTTP necessita di port-forwarding della porta 80 in TCP, impostazione fondamentale affinché il server possa funzionare. Purtroppo, le istruzioni per aprire una specifica porta sono diverse a seconda del modello di router o modem che utilizzate: per il diffusissimo Alice Gate, fornito in comodato da Telecom Italia, vi rimando alla guida "Aprire porte TCP/UDP su modem-router Alice gate 2 Plus e 2 Plus Wi-Fi" pubblicata su MegaLab.it. Per tutti gli altri modelli, non posso che raccomandarvi la lettura del relativo manuale di istruzioni.
Si tenga presente che molti programmi possono utilizzare la porta 80. Un esempio lampante di questo comportamento è dato da Skype. Generalmente, programmi che hanno questo comportamento consentono di essere istruiti per non utilizzare tale porta, nel caso debba essere destinata ad altri servizi. Prima di installare i pacchetti, darò per scontato che la vostra porta 80 sia aperta ed accetti connessioni.
Prima di metterci a scaricare a destra e manca, mi sembra doveroso farvi una lista di ciò che ci serve.
Spiegare concetti come quello di server SMTP locale o server FTP locale non è compito di questo articolo. Per brevità di esposizione, vi rimando agli articoli che li trattano singolarmente: rispettivamente "Trasformare il PC in un server SMTP" e "Guida completa: come predisporre un server FTP sul proprio PC".
Sebbene il primo possa non tornare eccessivamente utile nel contesto di quello di cui stiamo parlando, il secondo potrebbe risultare molto comodo. Tuttavia, è a vostra discrezione. Si tenga presente che Apache e PHP sono, se istruiti a dovere, tranquillamente in grado di inviare mail.
Per prima cosa, accediamo al sito ufficiale del prodotto e localizziamo la colonna di sinistra. Ivi troveremo una voce denominata from a mirror, nella categoria Download. Clicchiamoci.
La pagina vi darà la possibilità di cambiare il mirror da cui scaricare il pacchetto, tuttavia non credo sia necessario, poiché non ho riscontrato problemi nella velocità di download. Dirigiamoci quindi più in basso, dove possiamo scegliere la tipologia da scaricare.
Per una versione davvero completa vi raccomando il download dell'ultima voce, Win32 binaries including OpenSSL... che potete scaricare cliccando sul nome del file.
Dal sito ufficiale, localizziamo l'header e clicchiamo sul collegamento denominato downloads.
Verremo indirizzati ad una pagina che contiene una lista di possibili file. Come vedete, è attualmente disponibile la versione 5.3 e veniamo rimandati ad un altro sito per il download dei file binari per Windows. Cliccate quindi su tale link.
Arriverete a questa pagina che vi consente di scegliere fra le numerose versioni disponibili.
Vediamo un po' come orientarci: sulla sinistra vi è un riquadro di testo che vi guida sulla versione da scegliere.
Come vedete l'ultima riga di testo riporta la dicitura Do NOT use VC9 version with apache.org binaries quindi è d'obbligo scaricare la VC6, che trovate sotto ai box relativi alla VC9.
Per quanto ci riguarda, lo ZIP della versione Thread Safe è quello che ci interessa.
Scaricare MySQL è la procedura più lunga da seguire, vista la vastità del sito ufficiale. Localizzate anche qui l'header e cliccate sul collegamento Download.
Verrete indirizzati ad una pagina che vi chiede se volete la versione a pagamento o quella gratuita. Per i nostri scopi, quella gratuita è più che sufficiente (MySQL Community Server, Download).
La lista di sistemi operativi compatibili è davvero vastissima ma Windows si trova al primo posto, ed è lì che dobbiamo cliccare.
Adesso scegliamo quale scaricare a seconda della versione di Windows in uso. Nel nostro caso, consiglio di scaricare la versione MSI per Windows a 32bit (o 64 a seconda del vostro sistema operativo).
Successivamente, ci viene richiesto se desideriamo registrarci oppure no. A vostra discrezione: qualora vogliate semplicemente scaricare il file, cliccate su No thanks, just take me the downloads!.
Scegliete quindi il mirror italiano, con un download di tipo HTTP o FTP a seconda della vostra preferenza in merito.
Raggiunto il sito ufficiale, localizzate il box verde sulla destra e notate che sono disponibili due versioni.
Il mio consiglio è quello di scaricare il formato zip cliccando sul collegamento .zip. Se vedete che SourceForge non vi fa partire il download potete cliccare sul link select a mirror e selezionare un server alternativo.
Raggiungiamo il sito ufficiale e localizziamo l'immagine con scritto download Perl, in alto a sinistra, quindi clicchiamovi.
Scegliamo la versione ActivePerl for Windows....
Verremo reindirizzati ad una pagina, che esporrrà un bottone per scaricare l'applicativo.
Quando avrete scaricato tutto, dovreste ritrovarvi con questi eseguibili all'interno della cartella dove li avete salvati.
In questo momento dobbiamo anche porci un altro problema: dove installeremo il nostro server?
Le possibilità sono grossomodo tre:
La scelta è a vostra discrezione. Nel caso di questo articolo, lo installeremo in una partizione distinta.
Nel caso di una cartella, il mio consiglio è di crearla prima di installarle i vari pacchetti. Non ci sono motivazioni particolari: diciamo che è per comodità.
Qualora dobbiate destinare spazio aggiuntivo alla partizione nella quale volete installare il vostro server (come abbiamo fatto per questo articolo), vi consiglio la lettura di "Come ridimensionare le partizioni dei dischi fissi" o l'utilizzo delle funzioni integrate nei sistemi operativi come Windows Vista e Windows 7.
Una volta scelta la strategia, procediamo e iniziamo l'installazione dei vari pacchetti scaricati in precedenza.
Dopo aver scaricato tutti i pacchetti necessari e aver allocato lo spazio per il nostro web- erver, possiamo iniziare ad installare i programmi che lo andranno a comporre. Iniziamo dunque da Apache, avviando l'installazione con un doppio click sul suo eseguibile.
Il processo di setup è il medesimo di qualsiasi altra installazione, eccezion fatta per questa schermata.
Qui vi vierrà chiesto di inserire dati preliminari in merito al vostro server. Per il momento, basti inserire dati fittizi, visto che poi andremo a modificarli come meglio ci interessa. Per quanto riguarda la porta in ascolto, non posso che consigliare l'utilizzo della 80, come detto in precedenza.
Procedendo, si arriverà alla fase che chiederà se si vuole eseguire una installazione tipica o personalizzata. Scegliete Custom, e arriverete qui.
Vi consiglio di disabilitare dall'installazione la voce Build Headers and Libraries che vi consente di creare moduli server. Quando avrete concluso, procedete con la fase finale dell'installazione.
Al termine, noterete che si è creata una nuova icona nella barra dell'orologio.
Nella cartella che si sarà creata all'interno del menu Start, ci saranno molti collegamenti e la struttura sarà simile a questa
Gli unici collegamenti che ci servono, riuniti in una singola cartella, sono questi.
Se provate a cliccare nell'icona presente nella barra dell'orologio con il tasto destro e scegliete Open Apache Monitor si aprirà l'applicativo omonimo: quello che costituirà il pilastro di base per contollare il nostro server HTTP.
Se accedete a http://localhost/ dovreste trovarvi davanti ad uno scenario simile, indice del fatto che l'installazione di Apache è andata a buon fine.
In caso contrario, molto spesso ci sono problemi di rete e di porte: assicuratevi che tutto sia a posto e che la porta 80 non sia utilizzata da alcun programma, quindi che sia aperta in TCP e abbia il port-forwarding verso il PC che ospita il web server. Assicuratevi altresì che il servizio di Apache sia attivo e che i relativi processi siano in esecuzione.
Prima di poter installare il secondo pacchetto, PHP, dobbiamo però configurare Apache perché funzioni al meglio. Procediamo dunque.
Dopo aver installato Apache, vediamo come configurarlo al meglio.
In verità, il programma funziona già mantenendo inalterate le opzioni di default. Di seguito, andremo a presentare però una serie di personalizzazioni che, sebbene non risultino indispensabili per utilizzare immediatamente l'applicazione, consentono di prendere dimestichezza con il funzionamento del file di configurazione. Raccomando quindi, perlomeno, di leggere e comprendere le meccaniche alla base, ritornando, magari in un secondo momento, per implementarle sul proprio PC.
Per quanto riguarda il servizio di Apache (monitorabile, come detto in precedenza, dall'Apache Monitor) si sappia che prima era stato installato come servizio Automatico, ovvero che si avviava contestualmente a Windows.
Per portarlo in avvio manuale, apriamo il menu Start e, tramite Esegui (oppure mediante la funzionalità di ricerca, su Windows Vista/7), digitiamo services.msc. Nella finestra che appare cerchiamo il servizio Apache2.2.
Come vedete dall'immagine precedente, il servizio è avviato come Automatico. Per renderlo manuale, clicchiamo sul suo nome due volte con il tasto sinistro e scegliamo Manuale dal menu a tendina denominato Tipo di Avvio.
Infine, confermate con OK e chiudete anche la finestra dei servizi. Al successivo riavvio della macchina, Apache dovrà essere avviato manualmente sfruttando i collegamenti conservati in precedenza.
Qualora vogliate anche rimuovere l'icona dalla barra dell'orologio, sarà necessario agire tramite msconfig, disabilitando la voce Apache HTTP Server. In alternativa, è possibile nasconderla utilizzando le apposite funzioni: per maggiori informazioni in merito a quste procedure, rimando all'articolo "Rimuovere le icone dall'Area di notifica".
Fulcro della configurazione di Apache sono i file conf che si trovano nella sottocartella conf di Apache e contengono tutte le più svariate opzioni.
Il più importante, nonché il più vasto, è quello denominato httpd.conf. Gli altri, che controllano funzioni più particolari che vedremo in seguito, si trovano nella sottocartella extra.
Apriamo dunque httpd.conf con un editor di testi. Personalmente, vi consiglio Notepad++, soprattutto anche per ragioni come questa. Vi apparirà davanti un file vastissimo, simile a quello riportato di seguito.
La struttura del file prevede l'utilizzo dei commenti, che sono indicati con il simbolo cancelletto (#). Una riga che inizia con tale simbolo è un commento, e, al momento dell'utilizzo del file da parte di Apache, non verrà interpretata. I commenti inseriti automaticamente (quelli che quindi trovate la prima volta che aprite il file) servono per farvi capire come utilizzarlo, e sono davvero molto completi.
Da ora in avanti, prima di provare ogni nuova modifica è necessario riavviare il servizio di Apache per far funzionare il tutto. Ricordatevi di questo passaggio, altrimenti le modifiche non verranno considerate.
Di seguito, darò per scontato che prima di testare le configurazioni, abbiate riavviato il servizio utilizzando il collegamento Restart, di cui avevamo parlato poco prima, oppure utilizzando l'Apache Monitor, nella barra dell'orologio.
Ricordatevi che questo file di configurazione richiede l'impiego delle slash (/), ovvero le stesse barre che si usano nel Web. Nella versione di Apache per Windows, tuttavia, si possono usare entrambi i tipi di slash. Personalmente però, ho riscontrato malfunzionamenti occasionali dovuti a questa pratica, quindi il mio consiglio è di usare le slash.
Sebbene si usi sempre preferire la porta 80, possono esserci degli scenari in cui tale porta è già utilizzata e non è possibile "liberarla".
Potremmo quindi decidere di aprire una nuova porta, procedendo prima con il port-forwarding di essa, quindi modificando la configurazione di Apache. Sempre agendo da httpd.conf, localizziamo la sezione Listen, simile a questa.
Vedete la riga Listen che non è commentata? Per cambiare la porta in ascolto basterà semplicemente modificare 80 con il numero della porta che avrete configurato in precedenza. Riavviare quindi il servizio.
Cambiare la porta, come mostrato, richiede però un minimo di attenzione. Quando infatti ci si connette ad un sito, viene automaticamente utilizzata la porta 80 e, nell'eventualità che il server ne utilizzi un'altra, sarebbe necessario specificarla nell'indirizzo.
La procedura è comunque più facile a farsi che a dirsi: si prenda come esempio http://localhost/. Se, per infinite ragioni, si utilizzasse un'altra porta (come ad esempio la 8080) saremo costretti a specificarla nella barra degli indirizzi del browser.
Scrivendo http://localhost:8080 faremo sì che il browser punti la richiesta alla porta 8080 e ci risparmieremo un errore come ad esempio "Tempo scaduto".
Quando si parla di moduli in Apache, ci si riferisce a particolari add-on che gestiscono funzioni speciali.
Per non sovraccaricare troppo il computer che mantiene i processi in esecuzione, Apache ne carica una parte ridotta. La lista completa dei moduli, caricati e non, si trova sempre all'interno di httpd.conf. Sono riconoscibili dal fatto che le loro regole iniziano con la dicitura LoadModule e sono del tipo LoadModule nomemodulo percorsomodulo/nomemodulo.so. Quando un modulo non è caricato, è facilmente riconoscibile per il fatto che la sua riga è commentata. Per caricare un modulo quindi, sarà sufficiente rimuovere il cancelletto che contraddistingue il commento e riavviare il servizio.
Nella foto qui sopra, è visibile una parte della lunga lista di moduli disponibili. Vi consiglio di lasciar caricati i moduli che di default lo sono, a meno che non sappiate con certezza che non vi servono.
Al contrario, la lista qui sotto riporta alcuni moduli che potrebbero tornarvi utili.
Per maggiori informazioni inerenti i moduli, download dei suddetti e qualsivoglia documentazione, merita sicuramente un occhio il sito ufficiale dei moduli di Apache.
Aggiungere una riga per caricare un modulo non è difficile: è infatti sufficiente inserire l'struzione LoadModule seguito dal percorso del modulo da caricare. L'analisi delle righe inserite di default è spesso risolutiva per questo genere di cose.
Gli utenti più attenti, noteranno che, all'interno del Log di Apache, si crea questa riga ogni qual volta il servizio viene riavviato.
Per evitare tutto ciò, cerchiamo la direttiva ServerName all'interno del file di configurazione e decommentiamola, quindi modifichiamone il valore in questo modo.
Secondo le convenzioni, si assume la directory htdocs come cartella che conterrà tutti i file del nostro sito. Di default, questa si trova come sottocartella della directory di Apache, ma può essere ricreata in un'altra posizione, per una raggiungibilità migliore.
Supponendo di volerla spostare nella radice del nostro server, creiamo una nuova cartella dal nome htdocs (ma qualunque altro va bene).
Tuttavia, creare la cartella non è sufficiente: dobbiamo anche istruire Apache al fatto che la cartella da cui deve attingere i file del nostro Server è cambiata. Utilizzando httpd.conf localizziamo la sezione DocumentRoot. Con il file di default, l'istruzione dovrebbe trovarsi alla riga 177.
Modifichiamo la stringa inserendo il percorso assoluto alla nuova cartella. Nel caso sopra citato, la stringa intera diventerà DocumentRoot "G:/htdocs". Salvate il file di configurazione.
Tuttavia, non è ancora finita. Se si provasse la nuova configurazione adesso, si avrebbe come risultato un errore 403 Accesso negato (Forbidden).
Poche righe più in basso si trova un "blocco" Directory che riporta ancora il vecchio percorso. Anche questo andrà modificato, inserendo il nuovo percorso come sopra. Nel caso sopra citato, il blocco dovrà quindi iniziare con <Directory "G:/htdocs">.
Salvate il file di configurazione.
Per provare la nuova configurazione, possiamo copiare il file denominato index.html presente all'interno della sottocartella htdocs all'interno di Apache nella nuova directory htdocs. Apriamo nel browser l'indirizzo http://localhost/. Se viene visualizzata la stringa It works!, vuol dire che abbiamo modificato il percorso correttamente.
Volendo, per essere sicuri al cento per cento di aver svolto tutto correttamente, potete cancellare l'indice presente all'interno della cartella htdocs in Apache. Se, dopo aver ricaricato la pagina nel browser appare ancora il testo sopra citato, avete davvero svolto tutto correttamente.
Se il servizio di Apache non dovesse riavviarsi o non dovreste visualizzare nulla nel browser, controllate le slash che avete inserito e la validità dei percorsi.
All'interno di Apache, un file htaccess permette di specificare delle regole che avranno la precedenza rispetto a quelle impostate all'interno del già noto httpd.conf. Un file htaccess ha effetto nella cartella in cui si trova e in tutte le relative sottocartelle. Il vantaggio sicuramente più importante è quello di poter utilizzare un file distinto da quello generale di Apache.
Di default, l'utilizzo dei file htaccess non è consentito in quanto tutte le regole vengono generalmente salvate all'interno del file di configurazione già menzionato, oltre agli altri specifici.
Tuttavia, abilitare l'utilizzo di tali file è un passaggio che ritengo essere molto utile, per cui vediamo come proseguire.
La direttiva che blocca l'utilizzo di questi file si trova in httpd.conf all'interno del blocco Directory. Di default, tale blocco dovrebbe cominciare alla riga 187.
Come vedete, vi è un AllowOverride None che impedisce l'utilizzo dei file. Sostituendo None con All e riavviando Apache, i file htaccess diverranno utilizzabili.
Attenzione: vi sono molteplici blocchi di tipo Directory all'interno del file di configurazione. Basti sapere che la direttiva da modificare sta nel blocco <Directory />, che è univoco in tutto il file.
Quando all'interno di una cartella non c'è un file indice, Apache crea una lista di tutti i file che sono contenuti. Tuttavia, in mancanza di regole particolari, l'elenco viene creato seguendo questo schema che, a mio modo di vedere, non è esteticamente gradevole.
Per fare in modo che Apache crei una lista dei file più curata, dobbiamo abilitare un modulo (che solitamente è già abilitato, ma manca del file di configurazione) dal nome mod_autoindex.so e il relativo file di configurazione, che si trova più in basso.
Localizziamo la parte finale del file di configurazione.
Togliamo il commento da Include conf/extra/httpd-autoindex.conf, salviamo il file e riavviamo Apache. Adesso i file verranno elencati in questo modo, sicuramente migliore.
Per personalizzare ulteriormente la visualizzazione possiamo aprire il file di configurazione che abbiamo decommentato in precedenza, all'interno del suo percorso (conf\extra). Apparirà così.
La riga che controlla la personalizzazione della lista è la numero 15 nella foto qui sopra.
Per fare in modo che la visualizzazione occupi tutta la larghezza dello schermo disponibile, dobbiamo rimuovere l'attributo HTMLTable dalla riga, in modo che diventi così.
E la visualizzazione della lista diverrà così.
Molte altre sarebbero le migliorie e i trucchi che si possono applicare ad Apache ma per il momento ci fermiamo qui.
Adesso siamo davvero pronti per installare il secondo pacchetto scaricato, PHP. Dopo la sua installazione configureremo ancora alcune impostazioni di Apache affinché funzioni in collaborazione con il nostro interprete dinamico.
L'installazione di PHP è semplicemente composta dall'estrazione dell'archivio che abbiamo scaricato in precedenza e dalla sua collocazione.
Una volta che avete estratto tutti i file, dovrete spostare la cartella all'interno dello spazio che abbiamo riservato in precedenza e, per comodità, rinominare tale directory in qualcosa di semplice: ad esempio, PHP.
La struttura all'interno del nostro Server dovrebbe assomigliare a qualcosa di simile.
Prima di configurare Apache però, dobbiamo impostare le variabili d'ambiente affinché accettino l'interprete PHP. Questa non è un'operazione che deve spaventarvi perché, al contrario di quello che potreste pensare, è molto semplice.
Aprite il Pannello di Controllo e selezionate la voce Sistema.
Nella finestra che appare, selezionate Impostazioni di sistema avanzate e accedete alla tab Avanzate.
Nella parte bassa della finestra vi è un pulsante dal nome Variabili d'ambiente. Clicchiamovi.
Nel secondo GroupBox della finestra, dal nome Variabili di sistema c'è una voce dal nome Path.
Una volta localizzata, facciamo doppio click su di essa e ci troveremo davanti ad una finestra che ci permette di modificare il valore della variabile, come questa.
Localizzate l'inizio della stringa e aggiungetevi il percorso della cartella di PHP, con le backslash usate da Windows seguito da un punto e virgola. Nel mio caso, dovrò aggiungere G:\PHP;. Una volta fatto dovremo avere una variabile che inizierà così.
Confermate tutte le finestre premendo in ognuna il relativo pulsante OK e riavviate la macchina. Mi raccomando: il logoff NON è sufficiente, bisogna davvero riavviare la macchina affinché tutto funzioni correttamente.
Una volta tornati a Windows saremo pronti per istruire Apache, quindi configurare PHP al meglio.
Prima di gettarci a capofitto nella configurazione di PHP, riapriamo il file httpd.conf e localizziamo la direttiva DirectoryIndex. Aggiungiamo alla fine della sua riga, separando il tutto con uno spazio, la dicitura index.php. La riga dovrà quindi diventare così.
Raggiungiamo la fine del file di configurazione e scriviamo le seguenti righe di codice.
Si tenga presente che i percorsi variano a seconda della vostra directory di PHP per cui dovrete modificarli di conseguenza. La fine del file di configurazione sarà quindi così.
A questo punto, salvate il file di configurazione e riavviate il servizio di Apache.
Il file di configurazione di PHP ha una sintassi diversa rispetto a quello di Apache, essendo un file INI.
In questo caso, i commenti sono indicati da un punto e virgola (;) e appaiono di colore verde in Notepad++. Anche PHP.ini, come il già citato httpd.conf, è molto vasto e ben documentato.
Per ottenerlo, dobbiamo localizzare un file che si chiama php.ini-development e rinominarlo semplicemente in php.ini. Quindi aprirlo con un editor di testi.
Analizziamo anche qui alcuni suggerimenti utili che potrebbero aiutarci nello sviluppo. Si ricordi che, dopo ogni salvataggio del file di configurazione, si deve riavviare il servizio di Apache.
L'utilizzo dei tag PHP in forma breve <? e ?> non è supportata di default. Per abilitarla dobbiamo portare a On la direttiva short_open_tag.
Qualora volessimo anche utilizzare i tag in stile ASP (<% e %>), portiamo a On anche la direttiva asp_tags (poco più in basso rispetto alla direttiva precedente nell'immagine qui sopra).
Come per il mod_deflate citato in precedenza, la compressione Zlib permette di inviare pagine compresse ai browser. Si ricordi anche che, in caso di pagine che eseguono upload, questo potrebbe generare problemi.
Localizzate la direttiva zlib.output_compression e cambiate Off in On.
Questa sezione meriterebbe, a causa della sua vastità, un intero articolo. Tuttavia, basti sapere che PHP di default mostra tutti gli errori (Fatal, Strict, Parse, Notice tanto per citare i più comuni). Nel caso vogliate modificare tale comportamento e nasconderne alcuni, dovete modificare la sintassi della direttiva error_reporting, seguendo gli esempi forniti nei commenti della sezione.
Una gestione degli errori ottimale per PHP si ottiene installando XDebug: ne abbiamo parlato nell'articolo "Introduzione e installazione di XDebug: debugger PHP".
Come in Apache esistono i moduli, in PHP esistono le estensioni. Prima di utilizzarle però dobbiamo indicare a PHP dove trovarle. Localizziamo quindi questo blocco.
E trasformiamolo in qualcosa come questo, a seconda del vostro percorso di tale cartella.
A questo punto, possiamo abilitare alcune estensioni molto utili nel blocco Dynamic Extensions (come detto in precedenza, per caricare un'estensione è sufficiente decommentarla).
Il mio consiglio è quello di abilitare:
Altre estensioni le potete abilitare qualora vi servano. Ogni estensione ha la sua documentazione e articoli che ne parlano, quindi non avrete problemi.
Di default, PHP mostra tutti i tipi di errori, se è configurato per visualizzarli.
Di conseguenza, quando installeremo phpMyAdmin o utilizzeremo una qualunque delle funzioni che generano o gestiscono, date e orari, riceveremo l'avvertimento It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. seguita da altri dettagli.
Per evitare questo comportamento, possiamo impostare il timezone di default, ovvero il nostro. Localizzate la direttiva date.timezone e decommentatela, quindi inserite la dicitura Europe/Rome.
Per inviare email, PHP ha bisogno del nome del server SMTP utilizzato nel PC corrente. È lo stesso che utilizzate nel vostro account di posta principale. Per inserirlo, localizzate il blocco [mail_function] e modificate la stringa SMTP inserendo quanto sopra descritto.
Ho preferito dedicare un'altra pagina a PHP proprio per la sua vastità. Una volta ultimate le modifiche della pagina precedente, bisogna salvare il file di configurazione e riavviare Apache.
A questo punto, non ci resta che realizzare la nostra prima pagina PHP.
Creiamo un nuovo documento di testo all'interno della nostra cartella del sito e rinominiamolo in test.php. Aprendolo con Notepad++, digitiamo <?php phpinfo(); ?>.
Salviamo il file e apriamolo nel nostro browser, digitando http://localhost/test.php.
Se vi appare qualcosa di simile, è già un segnale del fatto che avete installato PHP correttamente.
Se avete abilitato tutte le estensioni che vi ho consigliato prima, scorrendo la pagina generata troverete tutte le impostazioni di ognuna.
Questo è un esempio.
Tale tabella non verrebbe visualizzata se non fossero caricate le estensioni relative a MySQL.
A questo punto, siamo arrivati all'installazione del nostro gestore database: MySQL.
Quando arrivate a questa schermata, scegliete Custom.
In questa fase, potete scegliere quali componenti installare.
Qualora non vi serva, potete disabilitare l'installazione della Documentation, perché di fatto contiene solo il manuale del programma.
Dopo poche conferme, inizierà l'installazione.
Durante l'installazione appariranno due schermate pubblicitarie, che potrete tranquillamente ignorare.
Poco dopo, apparirà una schermata come questa, che darà l'inizio ad una delle più lunghe configurazioni che abbiate mai visto.
In questa schermata, vi consiglio di disabilitare la seconda casella. Premere quindi Finish per proseguire.
Ad ogni fase della configurazione, una volta completati i dati richiesti, premere sempre Next.
Scegliere Detailed Configuration per poter configurare tutte le opzioni disponibili in questa istanza.
Scegliere Developer Machine, che ottimizzerà la configurazione per l'impiego su macchine di sviluppo
Scegliete Multifunctional Database, così da poter eseguire qualsivoglia operazione su di essi.
Nella schermata qui sopra, vi consiglio di mantenere le impostazioni consigliate.
Nella fase qui sopra, sta a voi stabilire quante connessioni simultanee sono previste nei vostri database. Se non avete necessità particolari comunque, potetete mantenere la scelta proposta di default.
Anche qui sopra, le configurazioni di default proposte sono perfette. L'eccezione per il Firewall non è necessaria.
Nella fase qui sopra, il mio consiglio è quello di scegliere Best Support For Multilingualism per far sì che il sistema gestisca al meglio i caratteri accentati.
Il servizio di MySQL non richiede iterazione da parte dell'utente. È a vostra discrezione stabilire se deve avviarsi in autonomia, assieme a Windows, o se dovete abilitarlo manualmente (vi ricordo che dovrete agire dai servizi o aprendo l'eseguibile dedicato).
Il mio consiglio è di configurare il passagio precedente come da immagine qui sopra. L'account anonimo potrebbe causare problemi di sicurezza, quindi consiglio di non crearlo.
A questo punto, potete premere Execute per impostare tutta la configurazione di prima.
Quindi Finish quando ha finito la procedura. La configurazione verrà chiusa, e sarete pronti per testare il tutto.
Per essere certi che l'installazione di MySQL sia andata a buon fine e la configurazione sia funzionante, possiamo creare una pagina PHP contenente il codice per la connessione a MySQL.
Create dunque un nuovo file di testo e rinominatelo con estensione PHP, quindi inserite questo codice.
Mi raccomando di sostituire password con la password del vostro utente di root, altrimenti riceverete un errore simile a questo.
Se viene restituita pagina bianca e avete configurato PHP affinché visualizzi gli errori, complimenti: avete installato correttamente MySQL e PHP riesce a connettersi ad esso.
A questo punto, per non trovarsi a gestire i database di MySQL tramite la linea di comando, installeremo phpMyAdmin, una web application che ci aiuterà a gestire i database tramite un'interfaccia accessbile mediante il browser.
Estraete l'archivio di phpMyAdmin e copiate la cartella dello script all'interno della directory del sito (htdocs nel mio caso). Rinominatela in qualcosa di più semplice, come ad esempio phpmyadmin o pma.
A questo punto, aprite http://localhost/phpmyadmin/ nel vostro browser web e troverete qualcosa come questo.
A questo punto però non siamo pronti per autenticarci in quanto dobbiamo configurare il nostro phpMyAdmin: il tutto nella prossima pagina.
Raggiungete quindi la pagina http://localhost/phpmyadmin/setup (cambiate phpMyAdmin a seconda del nome della directory dello script) e troverete qualcosa di simile.
Come vedete, ci sono delle notifiche che dobbiamo risolvere prima di procedere.
La notifica qui sopra ci chiede di creare una cartella di configurazione, dal nome config, all'interno della cartella di phpMyAdmin. Una volta creata, se ricarichiamo la pagina, la notifica scomparirà.
Lo script ci richiede l'abilitazione della libreria Bzip2 che ha la sua dll all'interno del file php.ini (riga extension=php_bz2.dll), che andremo a decommentare.
Una volta riavviato Apache e ricaricato la pagina, la notifica sarà scomparsa.
Per evitare che le password vengano trasmesse in chiaro, lo script ci consiglia l'abilitazione delle connessioni SSL, tramite un modulo di Apache.
Prima di procedere con ogni altra operazione, è necessario inserire all'interno della nostra distribuzione di Apache (precisamente nella cartella bin), il file openssl.cnf che troveremo all'interno della cartella conf. Una copia di tale file sarà quindi la prima operazione da eseguire. Se il file non è disponibile, potete trovarne una copia qui (create un file di testo e rinominatelo, cambiando anche l'estensione).
Apriamo il file httpd.conf e localizziamo la riga LoadModule ssl_module modules/mod_ssl.so. Togliamo il cancelletto, in modo da decommentarla.
Poco più in basso, localizziamo anche la riga Include conf/extra/httpd-ssl.conf e decommentiamola.
A questo punto possiamo salvare il file di configurazione, ma non riavviamo Apache perché manca ancora il certificato. Aprite il Prompt dei Comandi (Start, Esegui, cmd) e raggiungete il percorso della sottodirectory bin in Apache mediante il comando cd (nel mio caso G:\Apache\bin).
Digitate openssl req -config openssl.cnf -new -out localhost.csr -keyout localhost.pem e date Invio. Inserite la password quando vi viene richiesta. La password da scegliere va ricordata fino al termine di questa procedura ed è a vostra discrezione.
Confermando con Invio ogni fase, arriviamo ad alcune richieste.
Se non volete inserire dei dati, non lasciate il campo vuoto ma compilatelo con un punto (.).
Nel mio caso, la configurazione sarà rappresentata dall'immagine qui sotto.
A questo punto, digitate openssl rsa -in localhost.pem -out localhost.key e premete Invio. Digitate sempre la stessa password di prima e cliccate su Invio. Quando la riga di comando torna disponibile e appare la dicitura writing RSA key scrivete openssl x509 -in localhost.csr -out localhost.cert -req -signkey localhost.key -days 365 seguito da Invio.
Chiudete la finestra dei comandi e localizzate la cartella bin di Apache. Come vedete, vi sono dei file con estensione diversa che si chiamano localhost.
Spostiamo questi file all'interno della sottocartella ssl nella cartella conf (ad esempio G:\Apache\conf\ssl), che dovrete creare. Una volta spostati tutti i file, aprite con un editor di testi la configurazione SSL di Apache, ovvero il file httpd-ssl.conf che si trova nella sottocartella extra, in conf.
Localizzate la riga SSLCertificateFile e notate che ve ne sono due, uno commentato e uno no. Modificate il percorso di quello non commentato, in modo che punti al file localhost.cert. Nel mio caso, inserirò il percorso G:/Apache/conf/ssl/localhost.cert.
Poco più sotto, modificate il percorso della chiave SSLCertificateKeyFile in modo che punti al file localhost.key. Nel mio caso, inserirò questo percorso.
Salvate il file di configurazione e riavviate Apache. Ritornate alla pagina di configurazione di phpMyAdmin e cliccate sul collegamento this link che vi reindirezzerà alla stessa pagina, filtrata tramite il protocollo HTTPS. Il browser, se usate Mozilla Firefox, vi risponderà con un messaggio come questo.
Prima di procedere, dovrete accettare il certificato.
Una volta accettato, se avete modificato la directory del sito, vi verrà restituito un errore 403 (Forbidden). Questo perché il file di configurazione del mod_ssl di Apache ha le sue direttive proprietarie, che non abbiamo modificato. Localizzate la direttiva DocumentRoot all'interno del blocco <VirtualHost _default_: 443> e modificatene il percorso in modo che punti alla vostra directory pubblica. Nel mio caso, modificherò la stringa così.
Al solito, salvate e riavviate il servizio di Apache. Quindi ricaricate la pagina dal browser. Come vedete, se visionate il certificato troverete tutte le informazioni che avete inserito durante la procedura di prima.
A questo punto è rimasta una sola notifica, che scomparirà dopo che avremo configurato lo script.
A questo punto, torniamo nella nostra configurazione di phpMyAdmin e clicchiamo sul pulsante Nuovo Server.
Le uniche opzioni che meritano attenzione sono:
Una volta conclusa la configurazione per questa tab, non è necessario premere Salva, ma è sufficiente procedere con la seconda tab.
In questo caso, prestiamo attenzione a:
Una volta conclusa la configurazione per questa tab, non è necessario premere Salva, ma è sufficiente procedere con la terza tab.
Per quanto riguarda questa scheda, prestate attenzione a questi valori se non sono impostati come da immagine qui sopra.
Una volta conclusa la configurazione per questa tab, non è necessario premere Salva, ma è sufficiente procedere con la quarta ed ultima tab.
Personalmente, consiglio di lasciare tutti i campi vuoti in questa sezione.
Qualora invece vogliate utilizzare la funzionalità, potete configurare, utilizzando i valori di default proposti (inseriti automaticamente al click delle rispettive matitine), e configurarlo affinché utilizzi le credenziali del vostro utente root.
Una volta configurate le opzioni richieste, clicchiamo sul pulsante Salva e arriveremo ad una pagina come questa, che ci farà capire che abbiamo configurato phpMyAdmin per lavorare con il server localhost.
Nella prossima pagina configureremo le opzioni generali di phpMyAdmin.
Una volta che vi trovate davanti ad una videata simile a quella dell'ultima immagine della pagina precedente, potete procedere con la configurazione generale di phpMyAdmin. Anche qui, non è necessario salvare ad ogni cambiamento di tab ma è sufficiente salvare prima di cliccare su un altro collegamento della barra di sinistra.
Cliccate sul collegamento denominato Caratteristiche.
Le prime due variabili consentono di salvare in specifiche cartelle i file importati ed esportati. Personalmente, consiglio di non utilizzare la funzionalità, per motivi di sicurezza. Se volete utilizzare le compressioni, accertatevi di abilitare anche le estensioni nel file PHP.ini (php_zip.dll e php_bz2.dll)
Il primo campo è una password che utilizzate per crittografare il cookie di accesso qualora sia impostata l'autenticazione tramite questo metodo.
Vi consiglio, se avete abilitato le connessioni crittografate, l'abilitazione di Force SSL connection.
La configurazione proposta è sufficiente, ma se non desiderate molte conferme potete disabilitare Confirm DROP queries. Altresì, se desiderate uno storico delle query effettuate, potete utilizzare Permanent query history.
In questa sezione potete impostare altri dati di sistema, non molto rilevanti per il funzionamento dello script.
Cliccate sul collegamento denominato Frame di navigazione.
In questo caso potete impostare opzioni di mera estetica, che dipendono interamente dalle vostre preferenze personali.
Se lavorate con un solo server (localhost) potete disabilitare entrambe le caselle.
La configurazione proposta di default è sufficiente. Ciò che viene considerato in questa sezione è la mera visualizzazione dei database.
Anche qui, come sopra, l'utente può scegliere l'aspetto grafico delle tabelle.
Cliccate sul collegamento denominato Main frame.
In questa sezione potete scegliere quali informazioni visualizzare nella prima istanza di phpMyAdmin. Nel mio caso, onde evitare di creare sempre pagine per visualizzare la configurazione di PHP, ho abilitato la variabile Show phpinfo() link.
In questa sezione potete configurare l'aspetto della visualizzazione. Personalmente, non sapendo mai quante righe posso trovare in una tabella e volendo sempre visualizzarle tutte, ho abilitato Allow to display all the rows.
In questo caso potete impostare la grandezza degli elementi di edit (textarea) e altri valori. La configurazione proposta di default è sufficiente.
In questo caso potete scegliere quali sezioni visualizzare in casi specifici. Non conoscendo a priori l'output generato dai file proposti negli elenchi, ho accettato la configurazione di default.
Per mia curiosità personale, ma anche per sfruttare al massimo le funzionalità offerte ho abilitato tutte le caselle.
Cliccate sul collegamento denominato Importa.
In questo caso la configurazione di default è sufficiente.
Cliccate sul collegamento denominato Esporta.
In questa sezione ritengo siano degne di nota queste variabili:
Salvate il tutto e ritornate alla pagina principale. Cliccate anche qui sul pulsante Salva, quindi localizzate in Esplora risorse la cartella config all'interno della directory di phpMyAdmin.
Spostate quel file di configurazione all'interno della cartella principale dello script e cancellate la cartella config. A questo punto siete davvero pronti per utilizzare phpMyAdmin.
Abbiamo finito di configurare phpMyAdmin però a questo punto si presenta un altro problema. Noi abbiamo inserito lo script all'interno della directory pubblica del nostro server quindi, qualora questa fosse priva di indice, noi vedremmo la sua cartella.
Chiunque può accedervi dunque, previa conoscenza della password dell'utente root. Per evitare che venga visualizzata questa cartella, applicheremo la tecnica documentata qui sotto.
Delle due opzioni qui presentate, questa è sicuramente la più semplice e veloce da realizzare.
Di fatto, sposteremo la cartella di phpMyAdmin al di fuori della directory pubblica del Server, ma raggiungendo l'indirizzo http://localhost/phpmyadmin/ non riceveremo un errore 404 (Not found). Come? Semplice, istruiremo Apache di modo che accetti anche questo indirizzo, prendendo i contenuti da visualizzare da una cartella che si trova all'esterno della directory pubblica. Il tutto utilizzando un Alias.
Aprite httpd.conf, il file di configurazione di Apache e localizzate il termine del documento. Aggiungete le seguenti righe di codice.
In modo che il documento termini come segue.
Ovviamente potete modificare, nella seconda riga, la parola mysql con una di vostro gradimento. Tale parola sarà il nome della directory fittizia (l'Alias, per l'appunto) che vi permetterà di accedere a phpMyAdmin. Anche il nome stesso della directory può essere utilizzato.
Salvate il file di configurazione e accedete tramite Esplora Risorse alla directory di phpMyAdmin e spostatela al di fuori di htdocs portandola nello spazio radice del vostro Server infine riavviate Apache.
Come vedete, la cartella sarà scomparsa dalla lista ma l'accesso a /mysql non porterà errori di sorta.
Questo passaggio è facoltativo: vi consiglio di installare Perl solo se sapete di averne realmente bisogno.
Avviate il file di installazione di Perl e, quando raggiungete questa fase, disabilitate l'installazione della Documentation e degli Examples.
In questa fase, lasciate selezionate le opzioni di default.
L'installazione di Perl è quindi completata dopo alcune conferme.
A questo punto, come abbiamo fatto anche per PHP, dobbiamo istruire Apache sul fatto che Perl è disponibile.
Aprite il file httpd.conf (il solito file di configurazione di Apache) e cercate la riga che contiene Options Indexes FollowSymLinks (dovrà risultare una sola occorrenza).
Separando con uno spazio quanto già presente, aggiungete la dicitura ExecCGI, in modo che la stringa finale risulti così.
Tuttavia, con questa configurazione abbiamo abilitato l'esecuzione dei file scritti in Perl solamente all'interno della cartella cgi-bin, sottodirectory di Apache.
Il nostro scopo è quello di abilitare l'esecuzione dei file in tutte le cartelle pubbliche del nostro Server, per cui dovremo attuare ancora qualche modifica. Cercate la dicitura AddHandler cgi-script .cgi e decommentatela (rimuovete il cancelletto).
Tuttavia, Perl non interpreta solo i file con estensione cgi ma anche quelli in formato pl. Modificando la riga in AddHandler cgi-script .pl .cgi avremo supporto anche a queste estensioni.
A questo punto, la direttiva che specifica l'Alias per la cartella cgi-bin ovvero quella in cui dovrebbero risiedere tutti i file scritti con questo linguaggio non è più necessaria, quindi la commenteremo. Localizzate la riga che inizia con ScriptAlias e commentatela in questo modo.
Adesso siamo pronti per testare la nostra installazione di Perl, ma prima è necessario fare un altro chiarimento.
La sintassi di Perl vuole che all'inizio di ogni file vi sia il percorso del interprete che, ovviamente, varia per ogni computer.
Il nostro obiettivo è quello di indicare l'eseguibile perl.exe, che si trova all'interno della cartella bin, sottocartella della principale Perl.
Prendendo come esempio la mia installazione: avremo un percorso come G:/Perl/bin/perl.exe. A questo percorso, dovremo anteporre i caratteri #!.
Tuttavia, il percorso per raggiungere l'interprete può essere specificato anche mediante altre sintassi (comprensive dei due caratteri sopra citati): .
A questo punto possiamo testare davvero la nostra installazione. Partendo da una delle possibili sintassi sopra specificate, creiamo un file che andremo a chiamare test.cgi all'interno della nostra directory pubblica.
Apriamo il file con il nostro editor di testi e inseriamoci le seguenti righe di codice.
Ricordatevi che il percorso specificato nella prima riga varia a seconda della vostra installazione di Perl.
Salvate il file appena creato e raggiungetelo tramite l'indirizzo http://localhost/test.cgi. Se vi appare una pagina come questa, avete configurato Perl correttamente.
Print "Content-type: text/HTML\n\n";
Print "Se vedi solo questa riga sei riuscito a configurare Perl grazie alla guida di MegaLab.it";
MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .
Copyright 2008 MegaLab.it - Tutti i diritti sono riservati