6. mod_php e i suoi prerequisiti

6.1. Cosa è mod_php

 

PHP è un linguaggio di scripting lato server, indipendente dalla piattaforma con HTML incorporato.

All'inizio era un semplice processore di guestbook, ed è cresciuto sempre di più. Dalla Versione 3 è veramente un linguaggio per lo sviluppo Web

 
--www.php.net 

Dalla Versione 4, PHP è sufficientemente robusto e adatto per applicazioni web enterprise. È potente, supporta in maniera nativa pressoché tutti i più importanti database e gli altri tramite ODBC (Open DataBase Connectivity). È leggermente più veloce di ASP su sistemi Windows a parità di Hardware.

Sono disponibili altre estensioni come APC (Alternative PHP Cache), che accelerano l'elaborazione di circa il 50-400% (dipende dal codice php che si scrive)

6.2. Prerequisiti

A seconda delle necessità, ci sono alcuni software da installare prima. Un software già installato, in accordo a questo documento, è MySQL poiché è richiesto da mod_auth_mysql.

6.2.3. Compilazione e installazione

cd /usr/local

tar -xvfz imap.tar.Z

cd imap

make slx SSLTYPE=nopwd (1)

(1)
Con il parametro SSLTYPE=unix si stabilisce la necessità o meno del supporto SSL. L'omissione sta a significare nessun supporto SSL.

SuggerimentoNome del file per il download
 

imap.tar.Z di solito è un link simbolico all'ultima release, attualmente è linkato a imap-2001a.tar.Z

6.3. Compilazione e installazione di PHP4

cd /usr/local

tar -xvzf php-4.3.0.tar.gz

cd php-4.3.0

export LDFLAGS=-lstdc++

./configure \
--with-apxs=/usr/local/apache/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-pgsql=/usr/local/pgsql \
--enable-track-vars \
--with-openssl=/usr/local/ssl \
--with-imap=/usr/local/imap \
--with-gd --with-ldap \
--enable-ftp \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-pdflib=/usr/local \
--with-gettext \
--with-mm=/usr/local/mm-1.1.3 \
--with-jpeg-dir=/usr/lib \
--with-zlib-dir=/usr/local \
--enable-wddx \
--with-mcrypt \
--with-mhash \
--with-mcal=/usr \
--enable-exif \
--enable-xslt \
--with-xslt-sablot=/usr/local \
--with-dom \
--with-dom-xslt \

Modificare il Makefile e aggiungere -lstdc++ alla variabile EXTRA_LIBS. Attualmente è necessario solo quando si usa Sablotron versione 0.9.7

make
make install

Dopo l'installazione l'httpd.conf viene modificato da apxs. Ora dovrebbe risultare come segue:

<IfDefine SSL>
LoadModule ssl_module         libexec/libssl.so
LoadModule php4_module        libexec/libphp4.so
</IfDefine>

Se si è compilato Apache con mod_ssl allora il modulo php verrà caricato quando si lancerà Apache con ssl (apachectl startssl). Se si avvia Apache senza il supporto ssl (ma compilato come descritto in questo documento) è necessario modificare quanto segue:

<IfDefine SSL>
LoadModule ssl_module         libexec/libssl.so
</IfDefine>
LoadModule php4_module        libexec/libphp4.so

Copiare il file di esempio php.ini-dist su /usr/local/lib/php.ini

cp /usr/local/php-4.3.0/php.ini-dist /usr/local/lib/php.ini

decommentare (rimuovere il # all'inizio della linea) le seguenti linee in /usr/local/apache/conf/httpd.conf

l'httpd.conf predefinito di Apache 1.3.27 manca di queste voci. Si devono aggiungere invece di decommentare

AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php .php3

# Se si vuole mostrare il sorgente PHP 

AddType application/x-httpd-php-source .phps (1)

(1)
Questa linea è necessaria solo se si vuole mostrare il codice sorgente nel browser. L'estensione di questi file dovrebbe essere phps.

Suggerimentoregister_globals
 

Dalla Versione 4.2.1. di PHP, »register_globals« è impostata su OFF. Ciò può comportare dei problemi se si esegue del codice PHP senza usare i metodi $HTTP_GET_VARS. Per abilitare register_globals si modifichi la seguente linea nel proprio /usr/local/lib/php.ini:

register_globals = On

Ci si assicuri, se si scrive nuovo software, di utilizzare i nuovi metodi. Il supporto ai vecchi verrà, prima o poi, abbandonato.

Riavviare Apache dando il seguente comando:

/usr/local/apache/bin/apachectl restart