Apache 2.x su sistemi Unix
Questa sezione contiene appunti e suggerimenti specifici per l'installazione di Apache 2.x
con PHP su sistemi Unix.
AvvisoL'utilizzo di un threaded MPM
non è raccomandato in produzione con Apache 2. Usare il prefork MPM, che è
il MPM di default su Apache 2.0 e 2.2.
Per informazioni, leggere la voce correlata delle FAQ sull'uso di
Apache2 con un threaded MPM
La » documentazione di Apache
è la principale fonte di informazioni per il server Apache 2.x.
Più informazioni riguardanti l'installazione di Apache possono essere trovate
nella documentazione ufficiale.
La versione più recente di Apache HTTP Server può essere ottenuta dal
» sito di download di Apache,
e una versione di PHP compatibile dai siti menzionati in precedenza.
Questa guida rapida fornisce solo le informazioni base per iniziare ad
utilizzare Apache 2.x e PHP. Per maggiori informazioni si legga la
» documentazione di Apache.
I numeri di versione sono omessi per assicurare che le
istruzioni non siano incorrette. Nell'esempio sotto, 'NN' dovrebbe essere
sostituito con la specifica versione di Apache che si sta utilizzando.
Ci sono attualmente 2 versioni di Apache 2.x - la 2.4 e la 2.2.
Ci possono essere varie ragioni per scegliere una o l'altra versione, ma la 2.4 è
attualmente l'ultima e quella raccomandata, se quella opzione
è disponibile. In ogni caso le istruzioni qui presentate sono utilizzabili sia con
la versione 2.4 che con la 2.2. Da notare che Apache httpd 2.2 è ufficialmente End of Life,
e nessun nuovo sviluppo o patch sarà effettuato.
-
Scarica Apache HTTP Server da uno dei collegamenti menzionati
precedentemente ed estrailo:
-
Allo stesso modo, scarica ed estrai il codice sorgente di PHP:
-
Compila ed installa Apache. Consulta la documentazione di Apache
per maggiori dettagli.
-
Ora Apache2.x.NN è disponibile in /usr/local/apache2,
configurato con il supporto per il caricamento di moduli e il MPM prefork standard.
Per testare l'installazione usa la normale procedura per eseguire
il server Apache, es.:
e termina l'esecuzione del server per proseguire con la configurazione di PHP:
-
Ora, configura e compila PHP. In questa fase è possibile personalizzare
PHP con varie opzioni, come le estensioni da abilitare. Esegui
./configure --help per una lista completa delle possibili opzioni. Nell'esempio
seguente PHP sarà configurato per supportare Apache 2 e MySQL.
Se si compila Apache dal codice sorgente, come descritto in precedenza, il percorso per apxs
sarà uguale a quello dell'esempio seguente, ma se Apache viene installato in qualche altro modo, si
dovrà eventualmente correggere il percorso di apxs. Da ricordare che alcune distribuzioni potrebbero rinominare
apxs in apxs2.
Per riconfigurare le opzioni dopo l'installazione,
è necessario eseguire nuovamente i passaggi di configurazione, compilazione ed installazione.
Sarà poi necessario
riavviare Apache per utilizzare il nuovo modulo. Non è necessario
compilare Apache nuovamente.
Nota che se non indicato diversamente, 'make install' installerà anche PEAR,
strumenti di PHP come phpize, PHP CLI ed altri.
-
Configurazione di php.ini
È possibile modificare il file .ini per impostare le opzioni di PHP. Se si desidera
spostare il file php.ini in un'altra poizione, utilizzare l'opzione --with-config-file-path=/some/path al
punto 5.
Nel caso venga utilizzato il file php.ini-production, assicurarsi di leggere la lista
dei cambiamenti al suo interno, perché modificano il comportamento di PHP.
-
Modifica il file httpd.conf per caricare il modulo PHP. Il percorso nella parte
destra della dichiarazione di LoadModule deve puntare al percorso del modulo
PHP sul proprio sistema. Il precedente comando make install potrebbe averlo già
aggiunto, ma si verifichi per sicurezza.
-
Configurare Apache per analizzare certe estensioni di file con PHP. Per esempio, facciamo
in modo che Apache analizzi i file .php con PHP. Invece di utilizzare solamente la direttiva
AddType, si vuole evitare di caricare e creare file potenzialmente pericolosi
come exploit.php.jpg ed evitarne l'esecuzione con PHP. Usando il seguente
esempio, è possibile eseguire file con qualsiasi estensione con PHP semplicemente aggiungendola
alla direttiva. Di seguito verrà aggiunta l'estensione .php come esempio.
O se si vuole far eseguire a PHP solamente i file con estensione .php, .php2, .php3, .php4, .php5,
.php6, e .phtml, ma nient'altro, useremmo questo:
E per permettere ai file .phps di essere gestiti dal filtro per sorgenti php, ed
utilizzare la colorazione della sintassi per il codice sorgente, utilizzare:
mod_rewrite può essere utilizzato per permettere che ogni file .php disponga
della colorazione della sintassi per il codice sorgente, evitando di rinominare o copiare il file
in un file .phps:
Il filtro per sorgenti php non dovrebbe essere abilitato in sistemi in produzione, dove
potrebbe esporre informazioni confidenziali o sensibili incorporate nel
codice sorgente.
-
Utilizzare la normale procedura per avviare il server Apache, es. :
o
Seguendo i passi sopra indicati si avrà un server web Apache2 con il
supporto per PHP come modulo SAPI. Ovviamente ci sono
molte altre opzioni configurabili per Apache e per PHP. Per altre
informazioni digita ./configure --help nella
cartella corrispondente.
Apache può essere compilato per utilizzare il multithread selezionando il
worker MPM, invece del prefork
MPM standard, quando Apache viene compilato. Questo è possibile
aggiungendo la seguente opzione all'argomento passato al comando ./configure, nel
passo 3 precedente:
Questa modifica non dovrebbe essere fatta senza essere consapevoli delle conseguenze di
questa decisione e senza avere almeno una discreta comprensione
delle sue implicazioni. La documentazione di Apache
riguardante » MPM-Modules tratta
l'argomento MPM in modo molto più dettagliato.
Nota:
Le Apache MultiViews
FAQ trattano l'utilizzo delle multiviews con PHP.
Nota:
Per compilare una versione multithread di Apache, il sistema di destinazione deve supportare i thread.
In questo caso, PHP può anche essere compilato con
Zend Thread Safety (ZTS). Con questa configurazione, non tutte le estensioni saranno disponibili.
La configurazione consigliata è quella di compilare Apache usando l'MPM-Module
prefork come di default.