Sviluppo software

Come installare un ambiente WAMP (Windows, Apache, MySQL, PHP) sul proprio PC

Questa guida è datata. La versione aggiornata è presente al seguente link: Come installare un ambiente WAMP (Windows, Apache, MySQL, PHP) sul proprio PC (aggiornamento 2014).

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.

Per evitare problemi di permessi che possono emergere sulle ultime versioni di Windows (7) installeremo tutti questi pacchetti sotto C:wamp.

Apache#

Passi di installazione:

  1. dal sitohttp://httpd.apache.org/scarichiamo i binari di una release stabile di Apache per Windows. Per esempio http://apache.fastbull.org//httpd/binaries/win32/httpd-2.2.22-win32-x86-no_ssl.msi
  2. lanciamo l'installer ricordandoci di:
    • specificare come directory di installazioneC:wampapache2.2;
    • installare Apache come servizio di sistema;
    • rifarsi agli esempi dello stesso installer quando viene chiesto un nome di dominio, l'email dell'amministratore ecc. (es. miodominio.com, admin@miodominio.com, ecc.)

Uso:

per avviare, fermare o riavviare il servizio Apache si può usare il menu dell'apposita tray icon di windows o attraverso Pannello di controllo -> Strumenti di amministrazione -> Servizi.

  • Per fermare il servizio di Apache: dalla tray icon -> Apache 2.2 -> Stop
  • Per avviare il servizio di Apache: dalla tray icon -> Apache 2.2 -> Start

Test:

  1. aprire un browser e puntarlo all'indirizzohttp://localhost/: se tutto è andato bene dovrebbe apparire la pagina htmlIt Worksche sul disco si trova sottoC:wampapache2.2htdocs.

Troubleshooting:

  • Problema: la porta 80 è occupata da un altro programma come ad esempio skype.
  • Soluzione: editare il fileC:wampapache2.2confhttpd.confe modificare la rigaListen 80inListen 8080. Quindi avviare Apache ad esempio dalla tray icon e collegarsi all'indirizzohttp://localhost:8080/(come avrete notato se la porta di ascolto è diversa dalla 80 bisogna specificarla dopo i due punti).
  • Problema: Apache non parte (l'icona della tray resta lo stop rosso) ma non è chiaro il motivo.
  • Soluzione: da un prompt dei comandi (cmd.exe) spostarsi inC:wampapache2.2bined eseguirehttpd.exe -e debug: in questo modo dall'output di Apache si dovrebbe capire cosa c'è che non va.

PHP#

Passi di installazione:

  1. Dal sitohttp://windows.php.net/downloads/releases/archives/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 sezioneWhich version do I choose?dal sitohttp://windows.php.net/download/. In questo caso scegliamo la seguente: http://windows.php.net/downloads/releases/archives/php-5.3.3-Win32-VC6-x86.msi
  2. Lanciamo l'installer ricordandoci di:
    • specificare come directory di installazione:C:wampphp5.3
    • far configurare il modulo per apache2.2 scegliendo come directory di configurazione di Apache:C:wampapache2.2conf
    • mantenere le estensioni di default preselezionate nell'installer e non variarle
  3. Editiamo il file di configurazione di ApacheC:wampapache2.2confhttpd.conf

Nel tag<Directory "C:wampapache2.2htdocs">modifichiamoOptionseAllowOverridecome segue

Options FollowSymLinks
AllowOverride All

Nel tag dir_module modifichiamoDirectoryIndex index.htmlinDirectoryIndex index.php

<IfModule dir_module>
DirectoryIndex index.php
</IfModule>

Test:

  1. Creiamo il fileC:wampapache2.2htdocsindex.phpcon il seguente contenuto

    <?php
    phpinfo();
    ?>
  2. fermiamo e riavviamo il servizio Apache;

  3. Apriamo un browser e ci colleghiamo ahttp://localhost/index.php: se funziona dovrebbe apparire una pagina di informazioni sulla configurazione attuale di php.

Troubleshooting:

Diagnosi: Eseguire Apache in modalità debug come descritto prima nella sezione Troubleshooting di Apache. Se appaiono degli errori su dll manacanti vuol dire che è stata richiesta l'installazione di estensioni (es. Oracle) che richiedono dll esterne. Soluzione: Reinstallare PHP mantenendo le estensioni di default.

Verificare che il fileC:wampapache2.2confhttpd.confsia stato modificato dall'installer di PHP e che verso il fondo rechi delle direttive simile a quelle seguenti:

#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "C:/wamp/php5.3/"
LoadModule php5_module "C:/wamp/php5.3/php5apache2_2.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL

MySQL#

Passi di installazione:

  1. Dal sitohttp://www.mysql.it/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://www.mysql.it/get/Downloads/MySQL-5.5/mysql-5.5.28-win32.msi/from/http://cdn.mysql.com/
  2. Lanciamo l'installer ricordandoci di:
    • scegliere la modalità di installazione custom
    • installare mysql sotto: C:wampmysql
    • segnarsi da qualche parte la password dell'utente root che si è scelta

Uso:

anche MySQL viene installato come servizio di sistema che parte in automatico all'avvio. Se si vuole fermare basta andare inPannello di controllo -> Strumenti di amministrazione -> Servizi

phpMyAdmin#

phpMyAdmin è un software che consente di amministrare MySQL (creare utenti di database, creare database, eseguire backup/restore, lanciare query, ispezionare il database, ecc.)

Passi di installazione:

  1. Dal sitohttp://www.phpmyadmin.net/home_page/downloads.phpscarichiamo l'archivio zip dei sorgenti di una versione stabile di phpMyAdmin compatibile con le versioni di PHP e MySQL che abbiamo installato in precedenza. In questo caso:http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.5.3/phpMyAdmin-3.5.3-all-languages.zip/download#!md5!4821f1dc472c39d1d83ce5c5609f138d
  2. estraiamo l'archivio zip inC:wampe rinominiamo la directoryphpMyAdmin-<versione>inphpMyAdminper semplicità.
  3. Configurazione:

    • copiamoC:wampphpMyAdminconfig.sample.inc.phpinC:wampphpMyAdminconfig.inc.phpe 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! */
    • editiamo il file di configurazione di ApacheC:wampapache2.2confhttpd.confaggiungendo

      <Directory "C:/wamp/phpMyAdmin">
              Options FollowSymLinks
              DirectoryIndex index.php
              Order allow,deny
              Allow from all
      </Directory>
      
      # Disallow web access to directories that don't need it
      <Directory "C:/wamp/phpMyAdmin/libraries">
          Order Deny,Allow
          Deny from All
      </Directory>
      <Directory "C:/wamp/phpMyAdmin/setup/lib">
          Order Deny,Allow
          Deny from All
      </Directory>

E dentro al tag<IfModule alias_module>aggiungiamo l'alias

<IfModule alias_module>

    Alias /phpmyadmin/ "C:/wamp/phpMyAdmin/"
  1. Riavviamo Apache in modo che le modifiche ai file di configurazione abbiano effetto

Test:

Ci colleghiamo ahttp://localhost/phpmyadmined eseguiamo l'accesso come root utilizzando la password scelta durante l'installazione di MySQL.

Conclusioni#

A questo punto l'ambiente WAMP è installato. Per creare nuovi database si può usare phpMyAdmin. I file php vanno messi nella directoryC:wampapache2.2htdocs<nome file>.phpe richiamati dal browser all'urlhttp://localhost/<nome file>.php

Nei prossimi articoli vedremo come, partendo da questo ambiente WAMP, installare Joomla, WordPress, Drupal e altri software basati sull'architettura LAMP/WAMP.

Autore: Giovanni Chiodi
Senior software developer con più di 13 anni di esperienza nello sviluppo di soluzioni web based, enterprise, su misura. Dal 2011 socio fondatore di Garda Informatica Snc condivide questa avventura col fratello Lorenzo.

Che soluzione cerchi?#

Read more!

Newsletter

Ti è piaciuto questo articolo? Iscriviti alla newsletter

Di tanto in tanto pubblichiamo nuovi articoli come questo. Se vuoi essere avvisato lascia il tuo indirizzo e-mail di seguito.

Non invieremo mai SPAM e non condivideremo la tua e-mail con altri. Per maggiori informazioni consulta la privacy policy.

Attendere prego...

closeIcona closesearchIcona searchmore vertIcona more vertmenuIcona menushareIcona sharelinkIcona linkarrow upwardIcona arrow upward