IIS6.0+PHP+MySql

Ultimamente a lavoro ho dovuto installare PHP e MySql su una macchina windows 2003 server con IIS6.0. Nonostante le paure e le bestemmie iniziali dovuti alla comprensione di alcune cose su IIS, son riuscito a fare girare tutto senza problemi. Visto che comunque tra una cazzata e l’altra ci ho impiegato comunque 2 giorni per rendere operativo e funzionale tutto, posto qua una miniguida in caso qualcuno sia interessato a seguire la mia strada (Non fatelo, Apache è solo meglio).

Per installare la suite PHP+MySql su una macchina con IIS 6.0 preinstallato occorrono i seguenti pacchetti:

Vediamo di seguito l’installazione di entrambi i componenti.

PHP

Avviare il pacchetto autoinstallante scaricato dal sito e selezionare, quando verrà chiesto, il modulo IIS ISAPI. Successivamente selezionare le estensioni MySql e MySqli, oltre a quelle che potranno tornare utili . E’ consigliabile per praticità installare PHP nella cartella C:\PHP. Una volta finita la procedura di installazione controllare che la directory C:\PHP sia presente nella variabile path di sistema.

 

Nel file php.ini (contenuto nella directory di installazione di PHP) bisogna andare a specificare la corretta timezone decommentando la riga “date.timezone =” ed inserendo la propria regione di appartenenza nel seguente modo:

[Date]
date.timezone = Europe/Rome

Fatto ciò, poichè l’installer di PHP5 non è perfetto, bisogna apportare alcune modifiche alla configurazione di IIS:

  • Aprire la Gestione di IIS
  • Cliccare col tasto destro su Siti Web e andare su Home Directory
  • Dopo aver cliccato su Configurazione, scegliere nel menu delle estensioni .php e clickare su modifica.
  • Attraverso il comando sfoglia selezionare la corretta dll isapi (nel nostro caso si trova in C:\PHP\php5isapi.dll).
  • Dare conferma
  • Nel sottomenu Documents aggiungere la voce index.php alla lista
  • Dare conferma e riavviare IIS

Controllare che a fine installazione siano presenti le seguenti chiavi di registro:

 

[HKEY_LOCAL_MACHINESOFTWAREPHP]
“IniFilePath”=”C:PHP”

[HKEY_LOCAL_MACHINESOFTWAREPHP]
“InstallDir”=”C:PHP”

[HKEY_LOCAL_MACHINESOFTWAREPHP]
“WebServerType”=”iis4ISAPI”

Fatto ciò dobbiamo assegnare all’utente IUSR_NomeMacchina i diritti di accesso in lettura, esecuzione e attraversamento su tutta la cartella di installazione di PHP e le sue sottocartelle.

Per permettere l’utilizzo delle sessioni e della funzionalità di upload da parte di php è necessario creare inoltre due directory in cui l’utente IIS abbia accesso completo, e specificarle all’interno della configurazione di php. Per far ciò bisogna aprire il file di configurazione C:\PHP\php.ini e modificare le voci upload_tmp_dir e session.save_path. Per comodità abbiamo creato due dir “upload” e “sessions” nella sottocartella C:\PHP\temp, a cui avevamo già attribuito in precedenza i corretti permessi.

upload_tmp_dir=”C:PHPtempupload”
session.save_path=”C:PHPtempsessions”

IMPORTANTE: ricordarsi sempre di attribuire i corretti permessi di lettura,esecuzione e attraversamento sulla cartella di installazione php e di scrittura e modifica su quelle dedicate alle sessioni e all’upload per un corretto funzionamento del modulo.
Nel qual caso si vogliano attivare nuove estensioni basterà scaricare lo zip di PHP dal sito ufficiale, estrarre le nuovi estensioni nella sottocartella ext di PHP e aggiungere le corrispondenti entry nel file di configurazione php.ini.

Es:

[PHP_ZLIB_FILTER]
extension=php_zlib_filter.dll

MYSQL

Avviare il pacchetto autoinstallante e seguire le istruzioni a video. Si consiglia di:

  • Non attivare la possibilità di connettersi come root da remoto
  • Installare la cartella dati su un disco diverso da quello di sistema
  • Attivare MySQL come servizio
  • Cambiare la password dell’utente root

Anche se si specifica un nuovo path per la cartella dati durante la procedura di installazione, in realtà verrà solo creato il database di configurazione nella nuova posizione, per cui è necessario seguire questi passi per poter spostare la locazione della cartella dati:

  • Al termine dell’installazione fermare il servizio mysql (net stop mysql)
  • Spostare la cartella Mysql\Data nella nuova destinazione
  • Modificare la voce “datadir=C:\\MySQL\\Data” con il nuovo path nel file di configurazione my.ini (contenuto nella cartella di installazione di MySql)
  • Riavviare il servizio mysql (net start mysql)

Assicurarsi infine che il percorso della cartella di MySql sia stata aggiunta alla variabile path di sistema.

 

Per controllare che il database sia correttamente installato aprire un prompt dei comandi e digitare:

mysql -u root -p

Se inserendo la password di root non vengono visualizzati errori e ci si riesce a connettere l’installazione è andata a buon fine.

Per amministrare facilmente il nuovo database è consigliabile scaricare il pacchetto GuiTools dal sito ufficiale.

Se, dopo l’installazione, il tool MySqlAdministrator genera all’avvio un errore del tipo Could not load configuration settings significa che il servizio non è stato correttamente configurato e si dovrà intervenire nel modo seguente:

  • Controllare, nella scheda del servizio mysql, il path dell’eseguibile: probabilmente sarà uguale a C:\Mysql\bin\mysqld MySQL e sarà necessario modificarlo
  • Fermare il servizio, aprire regedit e andare in LOCAL_MACHINE\System\CurrentControlSet\Services\Mysql
  • Modificare il path dell’eseguibile con: C:\Mysql\bin\mysqld –defaults-file=”C:\DirDoveStaIlFileIni\MY.INI” MySQL
  • Riavviare il servizio

Provare a riavviare MySqlAdministrator per controllare che tutto funzioni correttamente.

 

IMPORTANTE: a causa della restrizione della connessione remota per l’utente root, sarà necessario creare un nuovo utente ‘remoto’ a cui attribuire i permessi appositi ogni volta che viene creato un nuovo database.