Installare PHP su Internet Information Services (IIS7)

Di base IIS è usato per far girare le applicazioni Asp.Net, mentre il server web Apache è usato per le applicazioni PHP (sia su Windows che su Linux).
E' però possibile configurare IIS in modo che esegua anche gli script PHP, con possibilità di accesso a data base MySQL.

L'utilizzo di applicazioni PHP su IIS era in passato considerato poco affidabile e poco performante, ma con le ultime versioni di IIS la Microsoft garantisce che le prestazioni sono di livello professionale. Saper configurare PHP su IIS può quindi tornare utile.

In questo articolo illustro i passi da seguire per configurare FastCGI PHP5 su IIS7 in una macchina Windows 7. Il procedimento su Windows Server 2008 è molto simile. Invece per Windows Server 2003 (con IIS6) alcuni passaggi sono leggermente differenti.

Il processo è un po' lungo e macchinoso ma non è difficile e una volta completato dà soddisfazione.

Scaricare e installare PHP e MySQL

Php

Dal sito http://www.php.net scaricare la versione di PHP desiderata (es. 5.2.x oppure 5.3.x) nel formato Windows Binaries zip package.
Estrarre poi il file zippato su C:\php

MySql

Scaricare la versione desiderata (ed es. la 5.1.47) di MSI Installer essentials dal sito http://www.mysql.com/downloads oppure da http://www.oldapps.com/mysql_server.php

Lanciare l'installazione, e quando richiesto impostare i seguenti parametri:

  • Complete
  • Detailed configuration
  • Developer machine
  • Multifunctional database
  • Decision support (DSS)/OLAP
  • Creare password per l'utenza root (e scriversela)

E' utile scaricare e installare anche MySQL Workbench 5.2, uno strumento per gestire in modo visuale il DB

C++ Redistributable

E' necessario che sulla macchina sia presente Microsoft Visual C++ 2008 Redistributable Package.

Configurare PHP.ini

php.ini è il file di configurazione di php. Andare su C:\php e rinominare il file php.ini-recommended in php.ini
Aprire il file, apportare le modifiche elencate qui sotto, salvare e chiudere.

  • cercare "extension_dir" e modificare da extension_dir = "./" a extension_dir = "C:\php\ext"
  • cercare cgi.force_redirect" e modificare da cgi.force_redirect = 1 a cgi.force_redirect = 0
  • cercare "cgi.fix_pathinfo" e rimuovere il commento a inizio riga (deve essere = 1)
  • cercare "fastcgi.impersonate" e rimuovere il commento a inizio riga (deve essere = 1)
  • cercare "extension=php_mysql.dll" e rimuovere il commento a inizio riga
  • sotto "extension=php_mysql.dll" aggiungere le righe:
    • upload_tmp_dir="C:\Windows\Temp"
    • session.save_path="C:\Windows\Temp"

Variabili di sistema

Adesso è necessario impostare due variabili di sistema di Windows. Per aprire il pannello:

Start >> Computer >> Tasto destro >> Properties >> Advanced System Settings >> Environment Variables >> Systems Variables

  • Aggiungere una variabile chiamata PHPRC e assegnare il valore: C:\php
  • Modificare la variabile Path aggiungendo ";C:\php;C:\php\ext" alla fine della stringa facendo attenzione a non cancellare il contenuto che era già presente

Riavviare il pc

Attivare CGI per IIS

Adesso bisogna aggiungere la funzionalità CGI a IIS:

Control Panel >> Program and Features >> Turn Windows features on or off >> IIS >> espandere World Wide Web Services >> Application Development Features >> selezionare CGI >> OK

Configurare IIS - aggiungere supporto FastCGI

Aggiungere "index.php" tra i documenti di default:

Control Panel >> Administrative Tools >> IIS >> Default Documents >> Add >> aggiungere "index.php"

Aggiungere il modulo php-cgi:

IIS >> Handler Mappings >> Add Module Mapping >> Request path: *.php >> Modules: FastCgiModule >> Executable: selezionare il file C:\php\php-cgi.exe >> Name: PHP via FastCGI >> ok e dare conferma al popup

Solo per Windows 64bit:

IIS >> Application Pools >> selezionare DefaultAppPool >> Advanced Settings >> Impostare Enable 32-Bit Applications su True

Riavviare IIS

Assegnare i permessi alla cartella wwwroot

Start >> Computer >> aprire C:\inetpub >> Tasto destro sulla cartella wwwroot >> Properties >> Security >> Group or user names >> Edit >> Add >> Advanced >> Find Now >> Selezionare l'account che si usa per lo sviluppo e dargli i permessi in lettura e scrittura

Testare il corretto funzionamento di PHP su IIS

Ora abbiamo finito, non ci resta che verificare se tutto è andato a buon fine. Nella cartella c:\inetpub\wwwroot creare un file chiamato phpinfo.php con questo contenuto:

<?php phpinfo(); ?>

Richiamare la pagina mediante il browser all'indirizzo: http://localhost/phpinfo.php oppure http://127.0.0.1/phpinfo.php Dovreste ottenere una pagina simile a quella dell'immagine sottostante; assicuratevi che ci sia anche la sezione relativa a MySql.

Autore: Sergio Roberto Boarina