La presente guida è la versione aggiornata di quella scritta più di un anno fa Come installare un ambiente WAMP (Windows, Apache, MySQL, PHP) sul proprio PC.
Questa volta però oltre a descrivere il procedimento di installazione dell’ambiente WAMP abbiamo deciso di fornire due archivi già pronti per chi va di fretta.
Perchè un ambiente WAMP ?
La maggior parte dei siti web oggi in circolazione si basa su una soluzione a stack di software open source nota come LAMP: Linux, Apache, MySQL e PHP (Se al posto di Linux c’è Windows si parlerà di WAMP).
- Apache HTTP Server è il web server più diffuso, infatti più del 60% dei siti web viene servito da questo web server (fonti: W3Techs, BuiltWith)
- MySQL è il database relazionale più famoso e utilizzato al mondo (fonte: Wikipedia)
- PHP è il linguaggio server-side più famoso e utilizzato al mondo (fonti: W3Techs, BuiltWith)
Per fare qualche esempio, i seguenti software e di consegunza tutti i siti che ne fanno uso, si basano sulle tecnologie Apache, MySQL e PHP.
- CMS: WordPress, Drupal, Joomla
- E-commerce: Magento, Prestashop, osCommerce, VirtueMart
- Wiki: MediaWiki, DokuWiki
- CRM: vTiger, sugarcrm
Vediamo allora come installare sul proprio PC Windows una piattaforma WAMP: in questo modo sarà possibile provare in locale uno qualsiasi dei software sopra citati prima di effettuarne il deploy in un ambiente di produzione come può essere un servizio di hosting su internet.
Alcuni casi in cui questa soluzione è particolarmente utile:
- Vogliamo provare una nuova estensione da aggiungere al nostro sito Joomla;
- Vogliamo realizzare il nostro sito web in locale per poi pubblicarlo online;
- Vogliamo imparare ad utilizzare un nuovo CMS/E-Commerce/CRM/…
Sulla rete si trovano dei programmi che automatizzano l’installazione di un ambiente WAMP, ma è meglio imparare a installare le singole parti una alla volta per due motivi:
- Si vuole poter ricreare esattamente le condizioni del servizio di hosting, intese come versioni dei singoli pacchetti;
- Si vuole capire dove mettere le mani per risolvere eventuali problemi che si possono presentare in fase di deploy del nostro sito web;
Per questo motivo nel seguito di questo tutorial vedremo come installare e testare in ordine: Apache, PHP, MySQL e la sua interfaccia di amministrazione phpMyAdmin.
Ho fretta, voglio l’archivio WAMP già pronto!
In questa versione della guida abbiamo pensato anche a chi va di fretta e vuole un ambiente wamp pronto da scaricare per fare delle prove.
Abbiamo quindi preparato due archivi seguendo il procedimento descritto in questa guida:
-
Ambiente WAMP portabile per Windows che contiene:
- Apache 2.4.7 con SSL e FastCGI
- PHP 5.3.28
- MySQL Server 5.6
- phpMyAdmin 4.1.4
-
Ambiente WAMP portabile per Windows + Joomla e WordPress: è come l’ambiente WAMP, ma in più contiene:
- Joomla 3.2.2 versione già localizzata in lingua Italiana e scaricata da http://www.joomla.it
- WordPress 3.8.1 versione già localizzata in lingua Italiana e scaricata da http://it.wordpress.org
Una volta scelto il pacchetto da scaricare basta seguire i seguenti punti:
- scaricare uno dei due pacchetti WAMP già pronti ed estrarlo sotto
C:
; - verificare che dopo l’estrazione siano state create le due directory
C:\wamp14
eC:\workspace
;C:\wamp14
contiene gli eseguibili e lo stack WAMP;C:\workspace
contiene il phpmyadmin e tutti i file html o php che si vorranno utilizzare.
- installare i due eseguibili presenti in
C:\wamp14\redist
; - lanciare apache manualmente in modalità debug avviando il bat
C:\wamp14\apache_start.cmd
- verificare il funzionamento di apache e php collegandosi con un browser a http://localhost:8014/phpinfo.php
- lanciare mysql manualmente avviando il bat
C:\wamp14\mysql_start.cmd
- verificare il funzionamento di mysql collegandosi all’interfaccia di amministrazione di MySQL: phpMyAdmin http://localhost:8014/phpmyadmin. Le credenziali di accesso sono utente root e senza passaword.
- se si è scaricato l’archivio contenente anche Joomla e WordPress si possono provare raggiungendoli rispettivamente agli indirizzi seguenti:
- http://localhost:8014/joomla le credenziali di accesso all’area amministrativa sono: utente admin e password admin
- http://localhost:8014/wordpress le credenziali di accesso all’area amministrativa sono: utente admin e password admin
- se tutto funziona si può decidere di avviare automaticamente Apache e MySQL come servizi all’avvio del PC. Per farlo basta eseguire i due bat
C:\wamp14\apache_install.cmd
eC:\wamp14\mysql_install.cmd
. Al prossimo riavvio i due servizi verranno eseguiti in automatico.
Voglio capire tutti i passi di installazione e crearmi la mia installazione WAMP
Per evitare problemi di permessi che possono emergere sulle ultime versioni di Windows (7) installeremo tutti questi pacchetti sotto C:\wamp14
.
La directory C:\workspace
sarà invece deputata a contenere tutti i nostri file html/php o le varie installazioni di Joomla, WordPress o di qualsiasi applicazione PHP di nostro interesse.
Nel seguito viene descritto come installare Apache, PHP, MySQL e phpMyAdmin.
Apache
Passi di installazione:
- dal sito http://www.apachelounge.com/download/ scarichiamo i binari di una release stabile di Apache per Windows. Per esempio http://www.apachelounge.com/download/VC11/binaries/httpd-2.4.7-win32-VC11.zip
- come indicato sul sito prima di procedere all’installazione di apache è necessario scaricare e installare i Visual C++ Redistributable for Visual Studio 2012
- estraiamo l’archivio zip di apache sotto
C:\wamp14\apache2.4
; - configuriamo apache modificando il file
C:\wamp14\apache2.4\conf\httpd.conf
come indicato di seguito ( < prima, > dopo):
< ServerRoot "c:/Apache24"
> ServerRoot "c:/wamp14/apache2.4"
< Listen 80
> Listen 8014
< DocumentRoot "c:/Apache24/htdocs"
> DocumentRoot "c:/workspace"
< <Directory "c:/Apache24/htdocs">
> <Directory "c:/workspace">
< AllowOverride None
> AllowOverride All
< ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/"
> ScriptAlias /cgi-bin/ "c:/wamp14/apache2.4/cgi-bin/"
< <Directory "c:/Apache24/cgi-bin">
> <Directory "c:/wamp14/apache2.4/cgi-bin">
- se non l’abbiamo ancora fatto creiamo la directory
C:\workspace
e copiamoci dentro il file di provaC:\wamp14\apache2.4\htdocs\index.html
Uso:
Apache può essere utilizzato in modalità standalone o può essere installato come servizio di sistema.
In entrambi i casi è necessario lanciare le opportune operazioni dalla directory bin
di apache.
Per prima cosa aprire il prompt dei comandi cmd.exe
e posizionarsi nella directory bin
di apache: cd C:\wamp14\apache2.4\bin
A questo punto è possibile eseguire vari comandi:
- Apache in modalità standalone:
- avviare apache in modalità debug:
httpd.exe -e debug
(Ctrl+C per terminarlo); - terminare apache: chiudere il prompt dei comandi o terminarlo con Ctrl+C ;
- avviare apache in modalità debug:
- Apache come servizio di sistema:
- Installare apache come servizio di sistema in modo che parta automaticamente all’avvio del computer:
httpd.exe -k install
- Disinstallare il servizio apache:
httpd.exe -k uninstall
- Avvaire apache come servizio:
httpd.exe -k start
- Fermare il servizio apache:
httpd.exe -k stop
- Riavviare il servizio apache:
httpd.exe -k restart
- Installare apache come servizio di sistema in modo che parta automaticamente all’avvio del computer:
Test:
- avviare apache in una delle modalità sopra descritte;
- aprire un browser e puntarlo all’indirizzo http://localhost:8014/: se tutto è andato bene dovrebbe apparire la pagina html It Works che sul disco si trova sotto
C:\workspace
.
Troubleshooting:
- Problema: Apache non parte, ma non è chiaro il motivo.
- Soluzione: da un prompt dei comandi (cmd.exe) avviare apache in modalità debug.
PHP
Passi di installazione:
- Dal sito http://windows.php.net/download/ scegliamo una release binaria di PHP per Windows che sia stabile e compatibile con la versione di Apache installata. Per sapere che versione scegliere leggere attentamente la sezione Which version do I choose? presente sul sito http://windows.php.net/download/. Volendo utilizzare il php 5.3 (attualmente ancora il più diffuso) in modalità FastCGI optiamo per la versione VC9 x86 Non Thread Safe;
- come indicato sul sito prima di procedere all’installazione di php è necessario scaricare e installare i Visual C++ Redistributable for Visual Studio 2008 SP1 x86;
- Estraiamo l’archivio zip scaricato sotto
C:\wamp14\php5.3
; - Volendo eseguire il php in modalità FastCGI è necessario aggiungere il relativo modulo ad apache. Per farlo bisogna scaricare dal sito di apache http://www.apachelounge.com/download/ i moduli aggiuntivi per la versione scelta. In questo caso http://www.apachelounge.com/download/VC11/modules/modules-2.4-win32-VC11.zip;
- Dall’archivio dei moduli aggiuntivi è necessario estrarre il file
mod_fcgid.so
e copiarlo sottoC:\wamp14\apache2.4\modules
; - A questo punto editiamo il file di configurazione di apache
C:\wamp14\apache2.4\conf\httpd.conf
per aggiungere ad apache il supporto al php ( < prima, > dopo):
< Options Indexes FollowSymLinks
> Options Indexes FollowSymLinks ExecCGI
< DirectoryIndex index.html
> DirectoryIndex index.php index.html
> LoadModule fcgid_module modules/mod_fcgid.so
>
> FcgidInitialEnv PATH "c:/wamp14/php5.3;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem"
> FcgidInitialEnv SystemRoot "C:/Windows"
> FcgidInitialEnv SystemDrive "C:"
> FcgidInitialEnv TEMP "C:/WINDOWS/Temp"
> FcgidInitialEnv TMP "C:/WINDOWS/Temp"
> FcgidInitialEnv windir "C:/WINDOWS"
> FcgidBusyTimeout 300
> FcgidIOTimeout 300
> FcgidIdleTimeout 300
> FcgidConnectTimeout 16
> FcgidMaxRequestsPerProcess 1000
> FcgidMaxProcesses 50
> FcgidMaxRequestLen 8131072
> # Location php.ini:
> FcgidInitialEnv PHPRC "c:/wamp14/php5.3"
> FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
>
> AddHandler fcgid-script .php
> FcgidWrapper "c:/wamp14/php5.3/php-cgi.exe" .php
- Copiamo il file di configurazione di esempio del php
C:\wamp14\php5.3\php.ini-development
sul fileC:\wamp14\php5.3\php.ini
- Editiamo il file di configurazione del php
C:\wamp14\php5.3\php.ini
come segue:
< max_execution_time = 30
> max_execution_time = 120
< display_errors = On
> display_errors = Off
< display_startup_errors = On
> display_startup_errors = Off
< html_errors = On
> html_errors = Off
< ;error_log = php_errors.log
> error_log = "c:\workspace\php-errors.log"
< ; extension_dir = "ext"
> extension_dir = "c:\wamp14\php5.3\ext"
< upload_max_filesize = 2M
> upload_max_filesize = 20M
> upload_tmp_dir="C:\windows\Temp"
> session.save_path="C:\windows\Temp"
< ;extension=php_bz2.dll
> extension=php_bz2.dll
< ;extension=php_curl.dll
> extension=php_curl.dll
< ;extension=php_gd2.dll
> extension=php_gd2.dll
< ;extension=php_gettext.dll
> extension=php_gettext.dll
< ;extension=php_mbstring.dll
> extension=php_mbstring.dll
< ;extension=php_exif.dll ; Must be after mbstring as it depends on it
> extension=php_exif.dll ; Must be after mbstring as it depends on it
< ;extension=php_mysql.dll
> extension=php_mysql.dll
< ;extension=php_mysqli.dll
> extension=php_mysqli.dll
< ;extension=php_openssl.dll
> extension=php_openssl.dll
< ;extension=php_pdo_mysql.dll
> extension=php_pdo_mysql.dll
< ;extension=php_pdo_odbc.dll
> extension=php_pdo_odbc.dll
< ;extension=php_soap.dll
> extension=php_soap.dll
< ;extension=php_sockets.dll
> extension=php_sockets.dll
< ;extension=php_sqlite3.dll
> extension=php_sqlite3.dll
< ;extension=php_xmlrpc.dll
> extension=php_xmlrpc.dll
< ;extension=php_zip.dll
> extension=php_zip.dll
< mysqlnd.collect_memory_statistics = On
> mysqlnd.collect_memory_statistics = Off
< session.bug_compat_42 = On
> session.bug_compat_42 = Off
< session.bug_compat_warn = On
> session.bug_compat_warn = Off
Test:
- Creiamo il file
C:\workspace\phpinfo.php
con il seguente contenuto
<?php
phpinfo();
?>
- fermiamo e riavviamo Apache in una delle modalità sopra descritte;
- apriamo un browser e ci colleghiamo a http://localhost:8014/phpinfo.php : se funziona dovrebbe apparire una pagina di informazioni sulla configurazione attuale di php.
Troubleshooting:
Diagnosi: Eseguire Apache in modalità debug come descritto precedentemente e vedere gli errori riportati.
MySQL
Passi di installazione:
- Dal sito http://dev.mysql.com/downloads/mysql/ scarichiamo una versione stabile per Windows di MySQL Community Server (N.B. non è necessario registrarsi c’è un link per saltare la registrazione). Per esempio: http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16-win32.zip
- Estraiamo l’archivio zip sotto
C:\wamp14\mysql5.6
Uso:
Anche MySQL, come Apache, può essere eseguito in modalità standalone o può essere installato come servizio di sistema.
In entrambi i casi è necessario lanciare le opportune operazioni dalla directory bin
di MySQL.
Per prima cosa aprire il prompt dei comandi cmd.exe
e posizionarsi nella directory bin
di MySQL: cd C:\mysql5.6\bin
A questo punto è possibile eseguire vari comandi:
- MySQL in modalità standalone:
- avviare MySQL:
mysqld.exe --standalone
(Ctrl+C per terminarlo); - terminare MySQL:
mysqladmin.exe -u root -p shutdown
;
- avviare MySQL:
- MySQL come servizio di sistema:
- Installare MySQL come servizio di sistema in modo che parta automaticamente all’avvio del computer:
mysqld.exe --install
- Disinstallare il servizio apache:
mysqld.exe --remove
- Installare MySQL come servizio di sistema in modo che parta automaticamente all’avvio del computer:
Nota: l’utente amministratore di MySQL è root e non ha password.
phpMyAdmin
phpMyAdmin è un software scritto in php che consente di amministrare dei database MySQL (creare utenti di database, creare database, eseguire backup/restore, lanciare query, ispezionare il database, ecc.)
Passi di installazione:
- Dal sito http://www.phpmyadmin.net/home_page/downloads.php scarichiamo l’archivio zip dei sorgenti di una versione stabile di phpMyAdmin compatibile con le versioni di PHP e MySQL che abbiamo installato in precedenza. Ad esempio: phpMyAdmin-4.1.7-all-languages.zip;
- Estraiamo l’archivio zip in
C:\workspace\phpmyadmin
; - Configurazione:
- copiamo
C:\workspace\phpmyadmin\config.sample.inc.php
inC:\workspace\phpmyadmin\config.inc.php
e lo editiamo assegnando alla variabile$cfg['blowfish_secret']
un valore a caso come nell’esempio seguente.
$cfg['blowfish_secret'] = 'jasghfsafuiihqwbc87234uiewjhbd37887rgut9b4'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
e impostiamo la variabile$cfg['Servers'][$i]['AllowNoPassword']
atrue
per consentire la login senza password.
$cfg['Servers'][$i]['AllowNoPassword'] = true;
- copiamo
Test:
Ci colleghiamo a http://localhost:8014/phpmyadmin ed eseguiamo l’accesso con l’utente root e senza password.
Related Posts
Garda Informatica
Latest posts by Garda Informatica (see all)
- Case History: Web Scraping da Airbnb per un progetto di ricerca dell’Università di Padova - 31 Agosto 2018
- Case History: web application verticale per gestione incroci domanda-offerta nel settore immobiliare - 31 Agosto 2018
- Case History: Applicazione Desktop Windows/macOS per configurazione di sistemi di protezione industriale basati su tecnologia radar - 31 Agosto 2018
SPE-TTA-CO-LA-RE
😀
vi ringrazio per questa guida: precisa sintetica e chiara come poche 🙂
Grande!!!
GRAZIE, un lavoro spettacolare.
ciao, volevo farti una domanda in merito alla fase di configurazione PHP.
Nella parte di configurazione del file httpd.conf da “> FcgidInitialEnv PATH” fino “> FcgidWrapper “c:/wamp14/php5.3/php-cgi.exe” .php” dove va inserito?
Puoi inserirla alla fine del file httpd.conf, ma attenzione a non aggiungere il carattere >. Il carattere > serve solo nella guida a far capire cosa va aggiunto.
Che dire mi hai aperto un mondo. Complimenti per il lavoro svolto veramente utile ed interessante.
Finalmente! la magia delle cose semplici. Ottima idea quella di “pacchettizzare” la soluzione con prodotti compatibili e installabili in un unico task. Complimenti anche e soprattutto per le spiegazioni semplici e chiare, anche per i “non proprio specialisti”
Davvero i miei complimenti! è una guida piuttosto completa, sprattutto per chi come me si sta avviando per la prima volta all’impiego di questi strumenti…Purtroppo i vari software si evolvono molto rapidamente, quindi prodotti del 2014 non sono proprio esattamente uguali a quelli di ott 2015, e questo comporta probab leggere differenze, ad esempio nelle impostazioni dei file di configurazione. Comunque, faccio di nuovo i miei complimenti, anche perchè è un buon modo per “iniziare bene”: si viene sì supportati, ma ci si devono mettere un po’ anche “del nostro” … e alla fine si ha soddisfazione!. Ciao!
in realtà la pagina phpinfo è all’url http://localhost:8014/index.php
per il resto appena finisco la guida
saprò dire ma promette molto bene
grazie