PHP: renderlo disponibile nel sistema e integrarlo come modulo di Apache

Affinchè tutto funzioni dobbiamo rendere nota al sistema la presenza di Php. Per prima cosa dobbiamo inserire nel PATH di sistema il percorso in cui si trova l’interprete (php4ts.dll o php5ts.dll nel caso di Php 5). Lo possiamo fare recandoci in Pannello di Controllo / Sistema / Avanzate / Variabili d’ambiente / Variabili di Sistema, cliccando due volte sulla variabile Path e una volta su Modifica, in fondo alla stringa contenuta nella variabile Path aggiungiamo ;C:\php, facendo attenzione a separare il valore dal precedente con un punto e virgola e a non lasciare spazi prima di ;C:\php.

Il manuale dedica alla procedura un’apposita FAQ e la figura 4 mostra una schermata d’esempio.

 

Figura 4. Aggiungere il percorso di Php al Path di sistema

Aggiungere il percorso di Php al Path di sistema

Successivamente, per rendere raggiungibile il modulo per Apache 2, è necessario copiare in C:\php il file php4apache2.dll (che per ora si trova in C:\php\sapi\).

– Php 5: questa operazione non è necessaria

Infine copiamo il contenuto della directory dlls (C:\php\dlls) nella directory principale (C:\php) e riavviamo il Pc per rendere attive le nuove impostazioni del Path di sistema.

– Php 5: questa operazione non è necessaria

Al riavvio, digitiamo dal prompt di DOS (si ottiene digitando dal menu Start / Esegui il comando cmd) il comando php -v, dovremmo ottenere alcune sintetiche informazioni dall’interprete CGI. Ciò non ha nulla a che fare con la nostra installazione per Apache ma si tratta comunque di un messaggio rassicurante, infatti significa che il sistema ha tutte le informazioni necessarie su come raggiungere l’interprete Php.

Questa installazione, consigliata dal manuale ufficiale Php, ha il vantaggio di non richiedere lo spostamento di file nelle directory di sistema (Windows, System32 e altre): infatti modificando la sola variabile di sistema PATH e mantenenedo i file in c:\php, tutto rimane più ordinato e l’aggiornamento diventa molto più semplice.

Semplificando al massimo possiamo dire che il compito di un server Web è quello di ricevere le richieste HTTP e fornire al client (di solito il browser) il contenuto dei file richiesti. Tuttavia, nel caso dei file con estensione .php, prima di esaudire la richiesta il Web Server effettua il parsing e l’esecuzione del codice Php contenute nel file. Affinchè ciò avvenga è necessario che l’interprete si trovi integrato nel Web Server, ed è quanto ci accingiamo ad illustrare.

Torniamo al file di configurazione di Apache (nel nostro esempio C:\Programmi\Apache Group\Apache2\conf\httpd.conf), apriamolo con un editor di testo (avete già fatto il backup come consigliato in precedenza, vero?) scorriamo il testo fino a giungere in fondo all’elenco che contiene una lunga serie di “LoadModule …” molti dei quali commentati.

 

# …

# LoadModule speling_module modules/mod_speling.so
# LoadModule status_module modules/mod_status.so
# LoadModule unique_id_module modules/mod_unique_id.so

LoadModule userdir_module modules/mod_userdir.so
# LoadModule usertrack_module modules/mod_usertrack.so
# LoadModule vhost_alias_module modules/mod_vhost_alias.so
# LoadModule ssl_module modules/mod_ssl.so

Aggiungiamo al termine della lista le righe seguenti

 

# Start Php integration
LoadModule php4_module “c:/php/php4apache2.dll”
AddType application/x-httpd-php .php
PhpIniDir “C:/php”
#End Php integration
La prima riga indica ad Apache dove trovare il modulo per l’integrazione di Php, la seconda dice che i file con estensione .php devono essere elaborati attraverso Php. L’ultima istruzione specifica dove vada cercato il file di configurazione php.ini.

– Php 5: l’httpd.conf deve esere modificato come segue:

Valido solo per Php 5 e Apache 2.0.x

# Start Php integration
LoadModule php5_module “c:/php/php5apache2.dll”
AddType application/x-httpd-php .php
PhpIniDir “C:/php”
# End Php integration
Per comodità dei lettori aggiungiamo anche la sintassi per includere Php anche con Apache 2.2 evidenziando in rosso le differenze:

Valido solo per Php 5 e Apache 2.2.x

# Start Php integration
LoadModule php5_module c:/php/php5apache2_2.dll
AddType application/x-httpd-php .php
PhpIniDir “C:/php”
# End Php integration
Queste righe non devono trovarsi necessariamente in quella posizione, ma personalmente è più comodo e leggibile raggruppare tutte le istruzioni in un unico blocco. Un’ultima aggiunta al file httpd.conf è necessaria affinchè anche il file index.php vada a far parte dei file che il Web Server cerca automaticamente quando viene indicato il percorso di una directory (ad esempio http://www.sito.it/miadir/). Scorriamo ancora un po’ il file di configurazione fino a raggiungere questo blocco

 

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
# The index.html.var file (a type-map) is used to deliver content-
# negotiated documents. The MultiViews Option can be used for the
# same purpose, but it is much slower.
#

DirectoryIndex index.html index.html.var
è sufficiente modificarlo come segue

 

DirectoryIndex index.html index.html.var index.php

Salviamo tutte le modifiche e passiamo alla configurazione vera e propria di Php attraverso il file php.ini.

Semplificando al massimo possiamo dire che il compito di un server Web è quello di ricevere le richieste HTTP e fornire al client (di solito il browser) il contenuto dei file richiesti. Tuttavia, nel caso dei file con estensione .php, prima di esaudire la richiesta il Web Server effettua il parsing e l’esecuzione del codice Php contenute nel file. Affinchè ciò avvenga è necessario che l’interprete si trovi integrato nel Web Server, ed è quanto ci accingiamo ad illustrare.

Torniamo al file di configurazione di Apache (nel nostro esempio C:\Programmi\Apache Group\Apache2\conf\httpd.conf), apriamolo con un editor di testo (avete già fatto il backup come consigliato in precedenza, vero?) scorriamo il testo fino a giungere in fondo all’elenco che contiene una lunga serie di “LoadModule …” molti dei quali commentati.

 

# …

# LoadModule speling_module modules/mod_speling.so
# LoadModule status_module modules/mod_status.so
# LoadModule unique_id_module modules/mod_unique_id.so

LoadModule userdir_module modules/mod_userdir.so
# LoadModule usertrack_module modules/mod_usertrack.so
# LoadModule vhost_alias_module modules/mod_vhost_alias.so
# LoadModule ssl_module modules/mod_ssl.so

Aggiungiamo al termine della lista le righe seguenti

 

# Start Php integration
LoadModule php4_module “c:/php/php4apache2.dll”
AddType application/x-httpd-php .php
PhpIniDir “C:/php”
#End Php integration
La prima riga indica ad Apache dove trovare il modulo per l’integrazione di Php, la seconda dice che i file con estensione .php devono essere elaborati attraverso Php. L’ultima istruzione specifica dove vada cercato il file di configurazione php.ini.

– Php 5: l’httpd.conf deve esere modificato come segue:

Valido solo per Php 5 e Apache 2.0.x

# Start Php integration
LoadModule php5_module “c:/php/php5apache2.dll”
AddType application/x-httpd-php .php
PhpIniDir “C:/php”
# End Php integration
Per comodità dei lettori aggiungiamo anche la sintassi per includere Php anche con Apache 2.2 evidenziando in rosso le differenze:

Valido solo per Php 5 e Apache 2.2.x

# Start Php integration
LoadModule php5_module c:/php/php5apache2_2.dll
AddType application/x-httpd-php .php
PhpIniDir “C:/php”
# End Php integration
Queste righe non devono trovarsi necessariamente in quella posizione, ma personalmente è più comodo e leggibile raggruppare tutte le istruzioni in un unico blocco. Un’ultima aggiunta al file httpd.conf è necessaria affinchè anche il file index.php vada a far parte dei file che il Web Server cerca automaticamente quando viene indicato il percorso di una directory (ad esempio http://www.sito.it/miadir/). Scorriamo ancora un po’ il file di configurazione fino a raggiungere questo blocco

 

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
# The index.html.var file (a type-map) is used to deliver content-
# negotiated documents. The MultiViews Option can be used for the
# same purpose, but it is much slower.
#

DirectoryIndex index.html index.html.var
è sufficiente modificarlo come segue

 

DirectoryIndex index.html index.html.var index.php

Salviamo tutte le modifiche e passiamo alla configurazione vera e propria di Php attraverso il file php.ini.

1 comment so far

  1. GraCe on

    mi piacerebbe se aggiornassi il blog…la tua rompina!!


Lascia un commento