How TO Compilare installare LAMP

30/09/2006 by - Linux

Il seguente articolo è tratto dal vecchio sito
Questo articolo cerca di spiegare ai n00b (di cui ne faccio parte) come compilare e installare apache 2 + php + mysql su sistemi Linux partendo dai src.

Questa configurazione (apache 2 + php) è ancora in fase sperimentale quindi potrà subire modifiche nel corso del tempo.

Le vie conosciute fino alla versione 1.3.xx di apache sono due:

-shared module
-static module

Utilizzeremo la prima strada: php viene caricato come modulo dal web server e non direttamente integrato in apache.

Sicuramente il sistema sarà leggermente più lento nel processare codice php ma la grande comodità rimarrà la possibilità di aggiornare php senza dover necessariamente ricompilare apache.

Requisiti
* Una linux box
* PHP src disponibili presso http://www.php.net/
* Apache 2 src disponibili presso http://www.apache.org
* Ansi C (Gnu C) compilatore e altri tool necessari come make, bison ecc. Di solito sono inclusi nelle varie distribuzioni. Potete verificare la presenza lanciando da shell make o gcc. Se nn verrà trovato alcun file visitate http://www.gnu.org.
* Un programma com TAR per estrarre il contenuto dei src 😉

Prima di cominciare…
Rimuovete tutte le versioni installate di apache e php. Prima di rimuoverle stoppate il websrv!
Ora scaricate apache e php dai siti ufficiali o da mirror… le versioni da me utilizzate sono al momento (maggio 2004)

-httpd-2.0.48.tar.gz
-php-4.3.6.tar.gz
-mysql-standard-4.0.18-pc-linux-i686.tar.gz

Posizionate i src in /usr/src o dove vi siete abituati

–Installazione mysql
E’ sicuramente la parte più semplice che affronterò: estraete il pacchetto e spostatelo su /usr/local dopodichè seguire i semplici comandi che si possono trovare sul file INSTALL (da distro a distro può variare qualcosina)

shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf - shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> scripts/mysql_install_db
shell> chown -R root .
shell> chown -R mysql data
shell> chgrp -R mysql .
shell> bin/mysqld_safe –user=mysql &

Se nn abbiamo ricevuto nessun msg di errore verifichiamo che il servizio sia attivo facendo

#netstat -nat

controllando che la porta 3306 tcp sia in ascolto.

Passiamo ad apache

Come ho accennato prima compileremo php come modulo dinamico (o condiviso = shared).
Il codice oggetto php non verrà incluso nel binario httpd e potremo, modificando una riga, abilitarlo o meno nella nostra configurazione finale.

# cd /usr/src

# tar zxvf httpd-2.0.48.tar.gz

Posizioniamoci sulla dir

# cd /usr/src/httpd-2.0.48

Ora possiamo configurare apache per la compilazione

Quasi ogni software che necessita una compilazione contiene uno script “configure” che controlla la presenza dei compilatori necessari per l’installazione, le librerie, ci permette di passare dei parametri quali la dir di destinazione, se abilitare o meno determinate opzioni ec..ec..

# ./configure –help

Ci offrirà la lista completa delle opzioni che possiamo specificare, normalmente iniziano con “–with-***” o “–enable-***”

# ./configure –prefix=/www –enable-so

La prima opzione specifica la dir di destinazione nella quale verrà installato il web server, potete scegliere a seconda delle vostre preferenze, se omesso la dir di default è /usr/local/apache2.
Quando una nuova versione di php o apache viene rilasciata mi basterà rinominare /www in /www_old e installare la nuova versione nuovamente su /www.
Se l’installazione non presenta problemi mi basterà copiare i file di configurazione dalla dir /www_old alla solita /www. Altro motivo è la possibilità di disinstallare completamente php e apache con un semplice

#rm -rf /www

La seconda opzione –enable-so abilita il modulo so, permettendo ad apache di caricare i moduli dinamici. Abilitiamo questa opzione poichè php verrà compilato come modulo dinamico.

Ora possiamo compilare con il comando make. make legge il contenuto del file Makefile (target) ed esegue le istruzioni
in esso contenute. Dopodichè tiene traccia delle modifiche apportate e delle dipendenze fra i vari file, ricompilando il codice soltanto quanto necessario. Risulta utilissimo in fase di sviluppo e testing

# make

infine installiamo

# make install

apache è installato su /www . Posizioniamoci su /wwww/bin e avviamo il server

# ./apachectl start

Se nn ci sono errori possiamo collegarci col browser e visualizzare la pagina di documentazione di default

# lynx http://localhost

Per stoppare il server

# ./apachectl stop

Installazione php

Posizioniamoci sulla dir src di php

# cd /usr/src

Estrarre i src

# tar -zxvf php-4.3.6.tar.gz

# cd /usr/src/php-4.3.6

Anche per php le opzioni che possiamo utilizzare sono tantissime. Permetteranno di abilitare l’utilizzo di DB.. di particolari estensioni…ecc..ec… Potete trovare una lista con il comando

# ./configure –help

Le estensioni non sono tutte integrate nel core php ma vanno abilitate a mano. Ad esempio per la creazione di immagini possiamo istruire php con l’opzione –with-gd, per funzionare le librerie gd devono essere installate. Se i parametri inseriti il sistema risponderà con un messaggio di errore. Soprattuto le prime volte non è consigliabile utilizzare estensioni non indispensabili

Per compilare php come modulo condiviso dobbiamo fornire il percorso dell’utility apxs, contenuta su /www/bin

Posizioniamoci sulla dir dei src di php e lanciamo

# ./configure –prefix=/www/php –with-apxs2=/www/bin/apxs –with-config-file-path=/www/php –with-mysql

La prima opzione specifica la dir di destinazione di php, se omessa quella di def è /usr/local

La seconda opzione –with-apxs2 specifica che vogliamo installare php come modulo condiviso di apache

La terza opzione –with-config-file-path specifica che php dovrà andare a recuperare il file php.ini nella dir

/www/php. Il file php.ini contiene numerosi parametri quali il sever smtp per la posta.. il tempo massimo di esecuzione degli script ecc…ec…

La quarta opzione –with-mysql abilita il supporto all’accesso a datebase mysql. Se non si vuole utilizzare mysql si può eliminare questo parametro. Se la dir di mysql non è /usr/local/mysql potete inserire il percorso dopo l’opzione

–with-mysql=/dir/mysql

Compiliamo php (stoppiamo il server httpd se nn l’abbiamo ancora fatto) e installiamo php

# make

# /www/bin/apachectl stop

# make install

make install installerà nella dir /www/modules il modulo php che dovremo richiamare da apache e inserirà nel file di configurazione di apache (/www/conf/httpd.conf) questa linea

LoadModule php4_module modules/libphp4.so

Se non è stata inserita fatelo voi a mano mettendola sotto la sezione”Dynamic Shared Object (DSO) Support”.

Inseriremo un’altra linea nel file di configurazione in modo che apache, ogni volta che viene richiesta una pagina contenente tag php, restituirà sotto forma codice html al client richiedente il codice processato dal parser php.

La linea da aggiugnere è:

AddType application/x-httpd-php .php

Inseritela dove trovate

AddType application/x-tar .tgz

Per testare il tutto seguite questi comandi che nn fanno altro che creare una pagina php e visualizzarla

# cd /www/bin
# ./apachectl start
# cd ../htdocs
# echo “”>index.php
# lynx localhost/index.php

Non ci rimane che copiare il file php.ini dalla dir dei src

# cp /usr/src/php-4.3.6/php.ini-dist /www/php/php.ini

e riavviare il server

# /www/bin/apachectl restart



Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.