Questo articolo spiega come configurare una struttura WAMP su un Windows 7 installando i singoli programmi separatamente.
Esistono anche dei kit preconfezionati come, a puro titolo di esempio, EasyPHP, ma è più istruttivo costruire da soli la propria configurazione in quanto si imparano meglio il funzionamento e l’interazione dei vari componenti, si possono aggiornare i singoli programmi senza dipendere da terzi ed è molto più semplice di quello che si possa credere. Le istruzioni di seguito partono da alcuni presupposti e hanno alcune limitazioni, tra cui:
- l’installazione non ha una sicurezza adatta ad un server pubblico, ma è pensata per un server di sviluppo protetto da altri metodi;
- la piattaforma su cui viene installato il tutto è un Windows 7 a 64 bit e, dove possibile, vengono installate le versioni a 64 bit dei programmi;
- vengono installate le ultime versioni disponibili dei software cercando il più possibile di mantenere i default;
- tutti i download suggeriti riguardano solamente programmi gratuiti, anche se per alcune utility esistono alternative a pagamento;
- ripeto: non usate questa procedura per configurare un server pubblicato su Internet.
Queste istruzioni sono valide per le ultime versioni di Apache (2.4), PHP (5.5) e MariaDB (10.0), con versioni precedenti potrebbero essere necessarie ulteriori modifiche o accorgimenti per far funzionare il tutto.
Prima di installare il software AMP è bene verificare di avere i tool necessari o comodi per alcune operazioni.
Editor
Deve supportare i file con terminazione di riga UNIX non solamente come conversione, ma anche come modalità di editing e salvataggio. Un buon editor gratuito è Notepad++, un’alternativa è PSPad; ci sarebbe anche Crimson Editor, ma non viene più aggiornato da tempo.
Amministrazione SQL
I duri e puri possono scegliere di usare solamente la versione CLI dell’amministrazione di MariaDB, gli altri possono utilizzare normalmente HeidiSQL e passare alla CLI solamente quando serve.
HeidiSQL viene aggiornato molto spesso e supporta anche le connessioni via SSH, PostgreSQL e Microsoft SQL Server.
Visualizzazione dei log
I log del server http sono molto importanti in fase di sviluppo perché PHP visualizza lì errori e warning ed è possibile visualizzare messaggi di debug tramite la funzione error_log().
Un buon programma per visualizzare log in tempo reale è SnakeTail.
Librerie Visual C
PHP e Apache sono compilati in Visual C e necessitano delle librerie apposite che sono contenute nel pacchetto Visual C++ Redistributable for VisualStudio 2012.
MariaDB/MySQL
Partiamo con il server SQL: MariaDB è il fork GNU GPL creato dopo l’acquisizione di MySQL da parte di Oracle. Come si potrà constatare, MariaDB è pensato per sostituire MySQL con il minimo delle differenze sotto il profilo della gestione (drop-in replacement).
Scaricare dalla pagina dei download l’ultima versione stabile nel formato MSI a 64 bit e avviare l’installazione del pacchetto. Si può scegliere di lasciare la password di root vuota ed è consigliabile usare UTF-8 come set di caratteri di default per i nuovi database; per il resto normalmente vanno bene le impostazioni predefinite.
Se il PC con Windows 7 non viene utilizzato sempre per lo sviluppo si può andare nei servizi e impostare il servizio MySQL in avvio manuale oppure dare questo comando da una shell con privilegi elevati ricordando che lo spazio dopo start=
è obbligatorio:
sc config MySQL start= demand
Per vedere se MariaDB è online avviare HeidiSQL, creare una connessione TCP a 127.0.0.1 con utente root e la password impostata o nessuna password se si è deciso di non impostarne alcuna. Dovrebbero essere visualizzati quattro database: information_schema, mysql, performance_schema e test; quest’ultimo può essere tranquillamente cancellato.
PHP
Andare sulla pagina dei download per Windows di PHP, scaricare la versione VC11 Thread Safe a 64 bit e copiare il contenuto dello ZIP in C:\php
.
Copiare il file C:\php\php.ini-development
in C:\php\php.ini
, aprirlo con un editor e apportare queste modifiche:
- alcuni progetti potrebbero richiedere
short_open_tag = On
error_reporting = E_ALL
causa la visualizzazione di un sacco di warning, se si desidera un output pulito e la visualizzazione degli errori nel log di Apache, impostareerror_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
- togliere il commento da
extension_dir = "ext"
- togliere il commento da
extension=php_mysqli.dll
e dalle altre estensioni utili per il progetto che si sta realizzando - impostare
date.timezone = Europe/Rome
Potrebbero essere necessarie altre modifiche più specifiche per il progetto che si sta realizzando, tenere presente che quando si modifica C:\php\php.ini
bisogna riavviare Apache per rendere attive le modifiche.
Per confermare che i moduli vengano correttamente caricati e che non ci siano errori in php.ini
, aprire una shell, andare in C:\php
e digitare
php -m
non dovrebbero apparire errori e dovrebbe venir visualizzato l’elenco dei moduli caricati.
Apache
Apache è il server http che fornisce le pagine web al browser e, se necessario, invoca PHP per elaborarle; è in questo momento il server più utilizzato su Internet.
I binari per Windows sono scaricabili da Apache Lounge, quelli che ci interessano sono VC11 a 64 bit in formato ZIP. Estrarre la cartella dall’archivio e copiarla nella root del disco C: in modo che il suo path sia c:\apache24
; è bene mantenere il default almeno quando si fa la prima installazione di test.
Dal medesimo sito si possono scaricare anche alcuni moduli aggiuntivi, sempre VC11 a 64 bit; nel pacchetto c’è un utilissimo modulo di rotazione dei log, che sopperisce alla mancanza di logrotate.
Aprire una shell con privilegi elevati e digitare
c:\Apache24\bin\httpd -k install
per installare il servizio; si può ignorare l’eventuale messaggio di errore relativo al nome del server, l’importante è che il servizio di Apache sia configurato tra i servizi di Windows. Anche in questo caso con
sc config Apache2.4 start= demand
si può configurare Apache in avvio manuale.
Per apportare alcune modifiche alla configurazione, specialmente per abilitare il supporto di PHP, editare C:\Apache24\conf\httpd.conf
:
- modificare
DirectoryIndex
aggiungendoindex.php
eindex.htm
, quest’ultimo per supportare il default delle estensioni in ambiente Windows - aggiungere in fondo al file queste tre righe:
LoadModule php5_module "c:/php/php5apache2_4.dll" AddHandler application/x-httpd-php .php PHPIniDir c:/php
Per default Apache risponde alla porta 80 di tutti gli indirizzi IP del computer, per cambiare questo comportamento modificare la direttiva Listen
. Se Apache si rifiuta di partire con un errore tipo
(48)Address already in use: make_sock: could not bind to address
significa che qualche altro programma sta utilizzando la porta assegnata. Per capire qual è il programma in questione aprire una shell con privilegi elevati e digitare
netstat -a -b
nell’elenco guardare qual è il programma che blocca la porta che Apache tenta di utilizzare.
Se si vuole abilitare il modulo di rotazione dei log copiare il file mod_logrotate.so in C:\Apache24\modules
e aggiungere queste righe a C:\Apache24\conf\httpd.conf
:
LoadModule log_rotate_module modules/mod_log_rotate.so RotateLogs On RotateInterval 86400 RotateLogsLocalTime On
Se si vogliono avviare e fermare i servizi su comando creare un file batch con questi comandi per avviare i servizi
sc start Apache2.4 sc start MySQL
e un altro file con questi comandi per fermarli
sc stop Apache2.4 sc stop MySQL
I batch vanno eseguiti con privilegi elevati.
È, quindi il momento di avviare (o riavviare) i servizi per vedere se tutto funziona.
Dopo aver avviato i servizi di Apache e MariaDB se si digita http://127.0.0.1/ sul proprio browser dovrebbe apparire la scritta It Works!
Per verificare anche PHP creare un file C:\Apache24\htdocs\test.php
con questa riga di testo:
<?php phpinfo(); ?>
Puntando il browser su http://127.0.0.1/test.php dovrebbe essere visualizzata la diagnostica di PHP.
Lascia un commento