Installare PHP 5 in Microsoft Information Services 6

L'installazione

L'installazione di PHP5 in II6, il servizio Web di Windows 2003 Server è un procedimento abbastanza semplice, ma è necessaria una particolare configurazione della quale non vi è traccia nelle informazioni presenti nel pacchetto di PHP5.

Per prima cosa è necessario procurarsi il pacchetto completo di PHP5. L'ultima versione è disponibile nel sito PHP.NET ed attualmente è la versione 5.1.6. E' necessario scaricare la versione completa.

Si consiglia di scaricare anche la collezione di moduli PECL.

Una volta scaricat il file Zip, si deve decomprimere il contenuto in una cartella del server, ad esempio C:\php. La colelzioen di moduli PECL deve essere decompressa nella cartella C:\php\ext.

Per permettere al sistema di caricare correttamente le librerie PHP è necessario inserire il percorso C:\php nelle variabili d'ambiente. Come è noto le variabili di ambiente sono editabili dal pannello "Proprietà" di "Risorse del Computer". Cliccando qui si visualizza un filmato con la procedura.

Copiare il file php.ini-reccomanded dalla cartella C:\PHP a \%systemroot%\ (di solito C:\windows) rinominandolo php.ini. Il file contiene le configurazioni di PHP. Più avanti vedremo le configurazioni essenziali.

E' altresì necessario inserire il perocrso nel registro di sistema. per fare questo è sufficiente copiare questi comandi:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\PHP]
"IniFilePath"="C:\\PHP"

salvarli in un file con estensione .reg, ad esempio php.reg. Cliccando sull'icona del file il path sarà inserito nel registro.

Se C:\php è installato in un volume NTFS è necessario assegnare alla cartella e a tutto il suo contenuto permesso di lettura ed esecuzione all'utente "Account Internet Guest" detto anche "IUSR_nomeserver":

 

La configurazione

Internet Information Services 6, a differenza delle precedenti versioni disabilita di default le estensioni ISAPI, per cui è necessario attivarle.

Dagli "Strumenti di Amministrazione" del server si clicca sull'icona "Gestione di IIS Services"

 

e si apre tutto l'albero del contenuto.

Posizionandosi su "Sito web predefinito" lo si arresta, cliccando sul suo nome col tasto destro e scegliendo "Arresta" (lo stesso si può fare dal menu "Azione").

A questo punto si passa al ramo "Estensioni servizio Web" e lo si apre. Posizionandosi nella finestra di destra si clicca col tasto destro e si sceglie "Aggiungi nuova estensione servizio Web":

Nella finestra di composizione si assegna un nome, ad esempio PHP e come "File richiesto" si aggiunge C:\php\php5isapi.dll e si spunta la voce "Imposta lo stato dell'estensione su Consentito":

 

A questo punto è necessario sistemare le autorizzazioni di esecuzione ed il mapping delle estensioni. Questo può essere fatto per tutti i siti del server, cliccando col tasto destro su "Siti Web" e scegliendo le "Proprietà", ovvero, con identica procedura, per uno o più siti presenti.

Vediamo come fare per il sito predefinito.  Ci si posiziona su "Sito Web predefinito" e col tasto destro si sceglie "Proprietà". Nella finestra che appare si setta come "Autorizzazioni di esecuzione" "Solo script".

Quindi si clicca su "Configurazione" e si sceglie una nuova estensione che chiameremo "PHP".

In questa finestra di aggiunta va indicato l'eseguibile, nel nostro caso c:\php\php5isapi.dll, settata la voce Limite di: "GET,POST;HEAD" e attivato "Modulo script" e "Verifica esistenza del file".

Tornando indietro nell'etichetta "Documenti" della finestra "Proprietà" si deve aggiungere ai documenti predefiniti "index.php".

Oltre al metodo ISAPI è possibile settare anche il metodo CGI. Questo è, tuttavia sconsigliabile, in quanto meno sicuro. nel caso uno decidesse di optare per questo deve compiere le operazioni di cui sopra sostituendo al php5isapi.dll l'eseguibile php-cgi.exe.

PHP.ini

E' il file di configurazione. Come detto prima è stato posto nella cartella di Windows. Lo si apre con Notepad o altro editor e si settano le cose essenziali. Per prima cosa devono essere settate la collocazione della cartella contenente il web, per lo più c:\inetpub\wwwroot  e quella dove sono le estensioni di PHP5, di norma c:\php\ext.

Si cerca quindi la voce cgi.force_redirect e la si pone a 0 (cgi.force_redirect = 0).

A questo punto è opportuno, visto che ci siamo, attivare le estensioni più utili, ad esempio quelle per la grafica e quelle per Mysql:

togliendo il ";" davanti all'estensione scelta. Nel caso in immagine, l'estensione php_mysqli.dll non è presente in quelle di default, ma deve essere aggiunta a mano, se si vuole installare MySQL 5. Per ora può bastare, per cui si salva il file.

Si ritorna sulla finestra di sinistra della console di amministrazione di IIS, ci si posiziona su "Sito Web predefinito" e col tasto destro (o col menu "Azione") lo si riavvia.

A questo punto si può testare se PHP funziona.

Nella root del sito Web predefinito, di norma C:\inetpub\wwwroot si crea un file con il blocco notes che contenga questo semplice comando:

<?php
phpinfo();
?>

e lo si salva come phpinfo.php .

Con Internet Explorer ci si connette al server con l'URL http://nomeserver/phpinfo.php (nomeserver è, ovviamente il nome del vostro server) oppure utilizzando l'IP assegnato al sito web predefinito. Se apparirà una schermata di riassunto di PHP, vuol dire che lo stesso è funzionante:

Se non apparirà nulla, allora qualcosa non è andato per il verso giusto.

A questo punto la prima cosa da fare è vedere se PHP funziona da solo. Utilizzando una finestra di prompt di DOS ci si posiziona nella cartella C:\php e si esegue il comando:

C:\php>php.exe -i > prova.html

se PHP funziona verrà creato un file prova.html contenente tutte le informazioni, esattamente come quello sopra riportato.

E' evidente che, in questa evenienza, PHP funziona, ma non colloquia correttamente con IIS.

La causa potrebbe essere quella di mancanza di permessi di lettura ed esecuzione per l'utente Internet,  oppure, nel caso sia evidenziato un errore 404, potrebbe provare a forzare l'inclusione degli script PHP in IIS in questo modo:

  1. Aprire una finestra di Prompt dei comandi
  2. Passare a C:\windows\system32
  3. Eseguire il comando:  cscript  iisext.vbs /AddFile c:\php\php.exe 1 php 0 php
  4. Eseguire il comando:  cscript iisext.vbs /EnFile c:\php\php.exe
  5. Per verificare se i comandi hanno avuto buon fine:
  6. Eseguire il comando: cscript IisExt.vbs /ListFile (l'estensione PHP dovrebbe essere nella lista)

Nel caso non funzionasse ancora, potrebbe essere utile inserire la cartella di PHP nel path di sistema (Proprietà del Computer - Avanzate - Variabili d'ambiente). nel caso la cartella di PHP sia su un volume NTFS, controllare i permessi, eventualmente aggiungendo "Lettura ed esecuzione" all'utente "Network"

Ulteriori informazioni sono reperibili in questi Howto:

Conclusioni

L'installazione di PHP 5 ed eventualmente di MySQL 5 su Internet Information Services 6 teoricamente è semplice e, di norma, funziona alla prima volta. Capita, però, che qualche volta non vada per il verso giusto. In tal caso è conveniente rivedere bene le procedure, controllare che tutti i files richiesti ci siano, pestare prima PHP da solo per vedere se va, poi ricontrollare le impostazioni di IIS. Di solito si trova l'inghippo che ha bloccato il funzionamento.

Rev. 3
 


Aggiornato il: 30/09/2006 16.58.21

Istituto e Liceo Tecnico Statale di Chiavari - Dipartimento di ICT
 Via Castagnola 15A - Chiavari (Genova - Italia) 
tel. +390185324590  fax. +390185370106

Informazioni legali