|
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:
- Aprire una finestra di Prompt dei comandi
- Passare a C:\windows\system32
- Eseguire il comando: cscript iisext.vbs
/AddFile c:\php\php.exe 1 php 0 php
- Eseguire il comando: cscript iisext.vbs /EnFile
c:\php\php.exe
- Per verificare se i comandi hanno avuto buon fine:
- 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
|