EasyPHP e i virtual hosts
EasyPHP è uno strumento indispensabile e quelle persone che necessitano di dover avere a disposizione una suite completa di sviluppo siti in PHP.
Fa parte della famiglia delle WAMP, acronimo di Windows, Apache, MySQL e PHP. Ovviamente ne esistono anche altri di software WAMP, tra cui il più conosciuto forse è XAMPP, ma noi oggi vogliamo concentrarci su EasyPHP, progetto continuamente aggiornato che segue con molta scrupolosità le varie versioni di PHP che si stanno succedendo, così da offrire una suite ‘sempre aggiornata’.
Capita di dover lavorare con piattaforme di blogging, CMS o e-commerce che necessitano di essere calibrare e configurate in locale, per poi essere pubblicate sul domino di riferimento. Se prendiamo ad esempio wordpress, questi archivia i propri post utilizzando i link assoluti , il che rappresenta un problema per chi passa da un ambiente di sviluppo alla produzione.
E quindi?
E quindi ecco come risolvere con EasyPHP i fastidiosi problemi di migrazione da locale a produzione e viceversa, lasciando inalterati i link assoluti e potendo contare su una situazione il più vicina possibile a quella che si presenterà on line.
Andiamo con ordine:
Per chi no lo avesse fatto, scarichiamo l’ ultima versione aggiornata di EasyPHP (ad oggi la 5.3.8) e la installiamo sul nostro pc nella cartella C:/EasyPHP. Sono circa 20Mb, dove troveremo appunto tutto quello che ci serve per avere un ambiente di sviluppo.
Una volta avviato, e selezionata la nostra lingua di riferimento, apriamo la classica finestra di EasyPHP con un doppio click sull’ icona nella barra delle applicazioni
e scegliamo di configurare apache.
una volta aperto il file (il cui path reale sarà C:\EasyPHP\conf_files\httpd.conf),
cambiate la riga 49 come segue:
Listen 0.0.0.0:80
In questo modo il server WAMP locale acquisirà l’ IP che ha il vostro pc in quel momento
Alla riga 131 del file abilitate (togliendo il simbolo #) il modulo apache mod_vhost_alias.so
Infine aggiungete alla riga 1016 o 1017 la seguente riga
Include conf/extra/httpd-vhosts.conf
In questo file creeremo i veri virtual host.
Creazione del virtual host
aprendo il file C:\EasyPHP\apache\conf\extra\httpd-vhosts.conf
ci troviamo davanti a quello che sarà un file incluso di apache in cui potremo configurare tutti i virtual hosts che decidiamo di creare. E’ importante notare che un virtual host, per funzionare correttamente, deve essere accompagnato da altre informazioni che andranno scritte in un file di sistema di windows, il fatidico file hosts.
Non voglio entrare nei dettagli perchè sarebbe un lunghissimo discorso, ma tagliando la testa al toro ecco una configurazione base di un virtual host
Innanzitutto ridiamo la possibilità ad EasyPHP di accedere al famoso e classico localhost
<VirtualHost *:80> ServerName localhost DocumentRoot "C:\PHP\www" ErrorLog "logs/error.localhost.log" CustomLog "logs/access.localhost.log" common <Directory /> AllowOverride All Order deny,allow allow from all </Directory> </VirtualHost *:80>
Ed ora un virtualhost di esempio
<VirtualHost *:80> ServerName miosito DocumentRoot "C:\path\to\siteroot" ServerAlias www.miuosito.ext miosito.ext ErrorLog "logs/error.miuosito.ext.log" CustomLog "logs/access.miuosito.ext.log" common <Directory /> AllowOverride All Order deny,allow allow from all </Directory> </VirtualHost>
il file si commenta da se… cambiato C:\path\to\siteroot con il path ASSOLUTO della cartella del sito, e miosito con il nome del sito ed ext con la sua estensione.
DOPO QUESTO PROCESSO E’ NECESSARIO RIAVVIARE IL SERVER APACHE DI EASYPHP PER RENDERE EFFETTIVE LE MODIFICHE
In ultimo, ma non per questo meno importante, bisogna modificare il hosts di windows affinchè ogni richiesta indirizzata a quel dominio venga reindirizzata al computer locale. Questo influirà anche sul comportamento di tutti i browser installati.
Apriamo il nostro file hosts in
C:\Windows\System32\drivers\etc\hosts
e inseriamo questa riga
127.0.0.1 www.miosito.ext
nel maggiore dei casi la modifica ha effetto istantaneo, viceversa basta aspettare pochi minuti (se non uno solo)

