Installare un server lamp su Linux Ubuntu

Il seguente articolo, tratto dal sito www.webgrafic.net, è una semplice guida illustrata particolarmente utile a coloro che desiderano cimentarsi con la creazione di siti in Php sfruttando le potenzialità di Linux.

Chi testa in locale (nel proprio pc) i siti realizzati in php aprezzerà sicuramente la velocità di un server LAMP (Linux, Apache, Mysql, Php). Nella creazione e sviluppo di siti web è preferibile operare in locale e trasferire il tutto in rete nel momento in cui il sito è completato. Ciò permette di avere una maggior velocità di quella che si avrebbe operando sul server remoto. Nel server remoto dovremmo trasferire i file ad ogni ogni modifica e questo renderebbe lento il nostro lavoro.

Chi usa Winwods e vuole provare la potenza di un server LAMP installato su Linux Ubuntu, ma non vuole fare modiche alle partizioni, può utilizzare Wubi. Wubi è un programmino che installerà Ubuntu all'interno di Windows come fosse un'applicazione, permettendo di rimuoverlo come qualsiasi altro programma in Windows.

Installiamo il server

Per installare un server LAMP in Ubuntu come prima cosa apriamo il terminale:

Terminale Ubuntu

Poi copiamo ed incolliamo nel terminale il comando:
sudo apt-get install apache2 apache2-mpm-prefork php5-mysql mysql-server php5 libapache2-mod-php5 php5-cgi php5-gd php5-cli phpmyadmin

Incollare su terminale ubuntu

Premiamo invio ed inseriamo la nostra password di Root (quella che usiamo per accedere ad Ubuntu). Premiamo di nuovo invio e comincerà il download e l'installazione dei pacchetti necessari.

Durante l’installazione ci verrà chiesto di fornire la password di root per MySQL che inseriremmo due volte. Con questi dati di login potremmo poi accedere a phpMyAdmin per gestire i nostri database.

Nella finestra dove viene chiesto il tipo di server web da configurare automaticamente per eseguire PhpMyAdmin lasciamo apache2.

Configurare PhpMyAdmin Nella finestra successiva lasciamo l'impostazione <Sì> ed in quella che segue inseriamo una password come amministratore del database che ci servirà ad accedere a PhpMyAdmin.

Configurare PhpMyAdmin

Completata l'installazione, se tutto è andato nel verso giusto, aprendo il nostro browser e digitando l’indirizzo: http://localhost dovrebbe apparire:

test server ubuntu

Completare la configurazione di PhpMyAdmin

Andando all'indirizzo http://localhost/phpmyadmin dovrebbe apparire la finestra di accesso a PhpMyAdmin per la gestione del database. Se questo non avviene è sufficiente fare una semplice modifica al file apache2.conf.

Apriamo il terminale e digitiamo: sudo gedit /etc/apache2/apache2.conf

Inseriamo la nostra password di root e si aprirà il file apache2.conf, in fondo aggiungiamo (o modifichiamo come segue se già la voce è già presente) :

# Enable PHPMyAdmin
Include /etc/phpmyadmin/apache.conf

Modifica apache2.conf

Quando fatto riavviamo apache con il comando: sudo /etc/init.d/apache2 restart

Ora andando all'indirizzo http://localhost/phpmyadmin potremo accedere alla gestione database digitando Root come nome utente e, come password, la password che abbiamo scelto precedentemente.

Accedere a PhpMyAdmin

Attivare il mod rewrite

Il mod rewrite serve per il vostro server apache a far si che le pagine dinamiche (in questo caso in php) cambino totalmente estensione e sembrino pagine html statiche. Questa trasformazione ha lo scopo di far si che la vostra pagina venga assimilata meglio dai motori di ricerca. In locale questa modifica normalmente non serve, però può capitare che moduli aggiuntivi del vostro CMS preferito lo richiedano, quindi è meglio attivarlo.

Prima di tutto lanciamo nel terminale questo comando: sudo a2enmod rewrite
Inseriamo la password di root e, se tutto è andato bene, apparirà un messaggio come segue:

attivare mod rewrite

Ora riavviamo apache con il comando: sudo /etc/init.d/apache2 restart

Continuiamo le modifiche necessarie e digitiamo sulla finestra del terminale il comando: cd /etc/apache2/sites-enabled
Poi il comando: sudo gedit 000-default

Nel file che si aprirà, sostituiamo:

Options FollowSymLinks
AllowOverride None

Con:

Options All
AllowOverride All

Poi sostituiamo:

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

Con:

Options All
AllowOverride All
Order allow,deny
allow from all

Salviamo il file e riavviamo apache con: sudo /etc/init.d/apache2 restart

Ora il rewrite è attivo e funzionante.

Aggiungere host virtuali al server LAMP

Ora il nostro server è completo e funzionante, ma di default la cartella contenente il nostro sito (/var/www) è accessibile in scritta solamente avendo i permessi di root. Questa cosa, mentre è fondamentale per un server in rete, è piuttosto scomoda per lavorare in locale per dei semplici test.

Inoltre potremmo aver bisogno, per diversi motivi, di poter lavorare su di una serie di siti separati. Ognuno raggiungibile digitando su browser non localhost/nomesito ma ad esempio test.nomestito1.it o test.nomestito2.it, quindi esattamente come se il sito si trovasse in un server remoto.

Per fare ciò, come prima cosa apriamo la nostra Cartella Home e creiamo una cartella dove ospitare i mostri siti es. www ed inseriamo una cartella per ogni sito che ci interessa:

cartelle siti

Ora da terminale digitiamo: sudo gedit /etc/hosts
Si aprirà il file hosts in modifica dove inseriremo i nomi dei siti virtuali che vogliamo creare come nell'immagine seguente:

aggiungere dati host

In pratica abbiamo aggiunto un IP 127.0.0.1 più il nome del'host virtuale che volgiamo attivare, per ognuno dei siti che vogliamo gestire.

Ora dobbiamo editare un file di configurazione di Apache, per cui digitiamo in un terminale: sudo gedit /etc/apache2/httpd.conf

Nel file che si aprirà, cambiando nomeutente con il vostro ed i nomi delle cartelle con le vostre (test.sito1.it ecc.), scriviamo:

###cartella www
<VirtualHost *:80>
DocumentRoot /home/nomeutente/www
ServerName homehost
</VirtualHost>

<Directory /home/nomeutente/www>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>

###test.sito1.it
<VirtualHost *:80>
DocumentRoot /home/nomeutente/www/test.sito1.it
ServerName test.sito1.it
</VirtualHost>

<Directory /home/nomeutente/www/test.sito1.it>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>

###sito test.sito2.it
<VirtualHost *:80>
DocumentRoot /home/nomeutente/www/test.sito2.it
ServerName test.sito2.it
</VirtualHost>

<Directory /home/nomeutente/www/test.sito2.it>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>

###sito test.sito3.it
<VirtualHost *:80>
DocumentRoot /home/nomeutente/www/test.sito3.it
ServerName test.sito3.it
</VirtualHost>

<Directory /home/nomeutente/www/test.sito3.it>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Riavviamo Apache da terminale con il comando: sudo /etc/init.d/apache2 restart

Cremiamo un file html con scritto Funziona che inseriremo nelle cartelle che volgiamo testare, poi apriamo il browser e digitiamo l'indirizzo di uno dei siti locali che abbiamo appena attivato, ad esempio test.sito1.it e:

test sito

Modificare il file php.ini

Bene, ora abbiamo tutto quello che ci serve per testare i nostri siti in locale. Potrebbe però essere necessario modificare il file php.ini per cambiare alcuni parametri.

Il comando da terminale per modificare il file php.ini è: sudo gedit /etc/php5/apache2/php.ini

Di seguito alcune impostazioni consigliate:

Upload_max_filesize: la dimensione massima file che si possono importare (es database):
upload_max_filesize = 24M
Questo parametro è dipendente da un'altro parametro: post_max_size, il quale imposta la massima dimensione di dati che può essere spedita tramita il metodo "post", dovete configurarla con la stessa dimesione dell'upload_max_filesize, quindi cambiate questa configurazione in:
post_max_size = 24M

Max_execution_time: se dovete fare upload che impiegano molto tempo o elaborare query importanti impostate queste impostazioni a:
max_execution_time = 300

Memory_limit: se avete errori riguardo la massima memoria da abilitare cambiate questo parametro:
memory_limit = 32M
Utilizzando CMS con impostazioni che hanno forti richieste di memoria è meglio aumentarla ulteriormente. Ad esempio Drupal con Ubercart per lavorare bene richiede almeno 64M di memory limit. Impostando memory_limit = -1 la memoria viene settata ad infinito ovvero tutta la ram disponibile.