Cookie

LAMP: Linux, Apache, MySQL e PHP per produzione

Pubblicato da TheJoe il

Tempo di lettura stimato: 3 minuti

Attenzione


Questo articolo è stato pubblicato più di un anno fa, potrebbero esserci stati sviluppi.
Ti preghiamo di tenerne conto.

Oggi vediamo come predisporre la nostra Linux box per la produzione web. Ciò che ci serve sarà Apache (il web server), MySQL (il database che conterrà i dati) e PHP (l’interprete per il linguaggio dinamico PHP). Questa configurazione è esattamente la stessa adottata dai maggiori server in tutto il mondo.

Qualche tempo fa c’è stata un po’ di confusione su che versione di php utilizzare. Era appena uscito php5 e si stava usando ancora la versione 4, per alcuni comandi la retrocompatibilità non è stata rispettata e alcuni script hanno smesso di funzionare. Fortunatamente php5 è in circolo da parecchio tempo, ed è addirittura terminato lo sviluppo di php4. Non ci saranno problemi con i grandi pacchetti (wordpress, joomla e compagnia).

L’installazione è molto semplice. Basti lanciare il comando

sudo apt-get install tasksel

per installare il programma tasksel (non incluso in ubuntu 11.04), e con tasksel lanciare il comando

sudo tasksel install lamp-server

Questo comando installerà i seguenti pacchetti:

apache2 apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libdbd-mysql-perl libdbi-perl libmysqlclient15off libnet-daemon-perl libplrpc-perl libpq5 mysql-client-5.0 mysql-common mysql-server mysql-server-5.0 php5-common php5-mysql

che (nel caso volessimo rimuovere il webserver) saranno questi ultimi i pacchetti da cancellare.

Avviare Apache

Apache è un servizio, e come tutti i servizi è avviabile tramite riga di comando come segue:

sudo /etc/init.d/apache2 start

Apache funziona?

Testiamo il funzionamento di Apache richiamando il webserver dal browser. Scriviamo nella barra dell’URL di Firefox l’indirizzo “http://127.0.0.1/“: indirizzo che identifica sempre la macchina da cui ha origine la richiesta.

Se viene visualizzato il messaggio “It works!“… come comprensibile Apache è correttamente avviato e… funziona. Viceversa se Firefox va in timeout qualcosa è andato storto. Controllare che effettivamente all’avvio del servizio non ci siano stati problemi.

Ora che sappiamo che Apache funziona dovremo cambiare la pagina “It works!” e metterci il codice che stiamo scrivendo. Se usiamo Ubuntu troviamo tutto nella directory “/var/www/“, per molte altre distribuzioni invece è sotto “/var/www/html/“. Modifichiamo il file “index.html” e possiamo iniziare a lavorare.

PHP funziona?

Ora che abbiamo testato Apache dovremo testare il funzionamento di PHP. Semplicemente cancelliamo il file “index.html” e creiamo il nuovo file “index.php“, al cui interno scriveremo questo brevissimo codice:

<?PHP
phpinfo();
?>

Richiamiamo il file usando browser. Se verrà visualizzato lo stesso codice inserito c’è qualcosa che non va. Suggerisco di controllare i pacchetti PHP installati. Mentre nel caso andasse l’immagine a video sarà questa.

Guarda qui:  Google Buzz, cos'è?
PHP installato e funzionante

Occhio a non rendere pubblico il file contenente la funzione “phpinfo();“, dalle informazioni che ci da potrebbe essere un aiuto per “bucare” il sito.

Installare MySQL

MySQL è il gestore dei dati all’interno del server, i post di un blog, gli articoli di una testata giornalistica, gli utenti, le loro password, i post in un forum (praticamente tutti i dati) vengono salvati in alcune tabelle che risiedono in un database. MySQL è un DBMS (Data Base Management System), basti sapere che ci permette di salvare tutte queste informazioni per renderle disponibili all’interno delle pagine.

Come sempre l’installazione è semplicissima. Basti lanciare il seguente comando:

sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql

I pacchetti che installiamo sono tre in tutto: “mysql-server” è il vero database, “libapache2-mod-auth-mysql” permette ad Apache di riconoscere il database e “php5-mysql” permette l’interazione fra php e MySQL.

Post installazione

A questo punto dovremmo aver finito, usiamo però questa configurazione “base” solo per la produzione o il testing, da notare che non abbiamo impostato i bind address e la password di MySQL, questo è un chiaro problema di sicurezza interno del server, che possiamo ignorare perché stiamo appunto parlando di produzione e testing. Suggerisco per la gestione del / dei database il pacchetto “phpmyadmin“. Va estratto e messo in una directory raggiungibile dal server. Permette di creare, cancellare, modificare database, tabelle ed utenti. È uno strumento molto potente e di semplice utilizzo.

Se poi vogliamo che il sito al quale stiamo lavorando sia visibile solo dal computer con il quale stiamo lavorando (chiaramente aumentando la sicurezza) suggerisco di modificare il file /etc/apache2/ports.conf in modo che contenga Listen 127.0.0.1:80. In questo modo il sito su cui stiamo lavorando sarà raggiungibile solo digitando 127.0.0.1, praticamente solo dal computer su cui stiamo lavorando.

Note:

Dopo ogni installazione di un nuovo pacchetto che interagisce con Apache, sarà necessario riavviare Apache stesso:

sudo /etc/init.d/apache2 restart

TheJoe

Mantengo questo blog a livello amatoriale dal 2009. Sono appassionato di grafica, tecnologia, software Open Source. Fra i miei articoli non sarà difficile trovarne circa la musica, ed alcuni di riflessioni personali, ma preferisco indirizzare la linea del blog principalmente verso la tecnologia. Per informazioni contattami.

2 commenti

TheJoe · 8 Ottobre 2011 alle 8:18 PM

Quantomeno non corri rischi di fare danni in “real time” eheh..

DaAsFlickered · 1 Ottobre 2011 alle 10:20 AM

ottimo tutorial!! 🙂
ideale per chi vuole avvicinarsi allo sviluppo server-side in locale!!

Lascia un commento

Segnaposto per l'avatar

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

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