Un server LAMP (acronimo di Linux Apache My-SQL e PHP) è una piattaforma veloce, affidabile ed economica per creare un server web.
Qui https://help.ubuntu.com/community/ApacheMySQLPHP c'è una bella guida della community...
E qui http://help.ubuntu-it.org/11.04/ubuntu/serverguide/it/httpd.html c'è la configurazione di Apache.
Questi miei appunti permettono di installare un server LAMP a livello locale per effettuare dei test!
Per installazioni più "serie" e con un occhio in più alla sicurezza bisognerà effettuare svariate impostazioni a diversi file di configurazione per rendere l'ambiente più sicuro!
Cominciamo!

1.
Installare Apache

sudo apt-get install apache2


2.
Installare PHP

sudo apt-get install php5


3.
Riavviare Apache

sudo /etc/init.d/apache2 restart


4.
Installare My-SQL

sudo apt-get install mysql-server


Durante l'installazione verrà chiesto di inserire la password My-SQL per l'utente root.

5.
Installare phpMyAdmin

sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin php5-cgi


Durante l'installazione verrà chiesto quale server configurare automaticamente, ovviamente selezionare Apache installato in precedenza.
Poi verrà chiesto se configurare phpmyadmin con dbconfig-common, accettare ed inserire anche qui le password da utilizzare.

6.
Associare l'estensione My-SQL a PHP
Modificare il file /etc/php5/apache2/php.ini e decommentare la riga con:
;    extension=msql.so

Per decommentarla basta togliere il 'punto e virgola'.

7.
Riavviare nuovamente Apache

sudo /etc/init.d/apache2 restart


8. Opzionale
Attivare il mod rewrite
Il mod rewrite serve ad Apache per fare in modo che le pagine dinamiche sembrino pagine html statiche.
Questo per far si che le pagine vengano indicizzate meglio dai motori di ricerca e per altri motivi...
In locale questa modifica normalmente non serve, però può capitare che alcuni moduli aggiuntivi di alcuni CMS lo richiedano.
Per attivare il mod rewrite lanciare innanzitutto il seguente comando:

sudo a2enmod rewrite


Poi modifichiamo il file /etc/apache2/sites-enabled/000-default sostituendo le seguenti righe:

Sostituire

Options FollowSymLinks
AllowOverride None

Con
Options All
AllowOverride All


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

E sempre in questo file è possibile cambiare il percorso predefinito della directory www ad esempio spostandola nella propria home.
Al posto, quindi, delle 2 ripetizioni /var/www potremmo inserire /home/nome-utemte/www.
Ovviamente dobbiamo creare la directory /home/nome-utente/www.

Infine salvare il file e riavviare nuovamente Apache:

sudo /etc/init.d/apache2 restart


Ora il mod rewrite è attivo e funzionante.

9. Opzionale
Modificare il file /etc/php5/apache2/php.ini
Potrebbe essere necessario modificare il file /etc/php5/apache2/php.ini per cambiare alcuni parametri.
Alcune impostazioni normalmente consigliate potrebbero essere:

A.
La dimensione massima dei file che si possono caricare.
upload_max_filesize = 24M

B.
Il precedente parametro è dipendente da un'altro parametro: post_max_size
Quest'ultimo imposta la massima dimensione di dati che può essere spedita tramita il metodo "post".
Normalmente la si configura con la stessa dimesione di upload_max_filesize
post_max_size = 24M

C.
Se vi saranno upload che impiegheranno molto tempo o vi saranno query importanti da elaborare... 300 non sarebbe un brutto valore da dare.
max_execution_time = 300

D.
Se vi sono errori riguardo la massima memoria da abilitare... provare con almeno 32M.
memory_limit = 32M
Se si prevede di utilizzare CMS con impostazioni che hanno forti richieste di memoria è meglio aumentarla ulteriormente.
Impostando memory_limit = -1 la memoria viene impostata ad infinito, cioè tutta la RAM disponibile.

E.
Per abilitare la libreria Zlib, che permette di lavorare direttamente con i file compressi, impostare a ON il seguente parametro:
zlib.output_compression = On

F.
Per disabilitare l'output buffering, che provvede ad inviare l'output immediatamente al browser (OFF) e non farne buffer ed inviarlo tutto in una volta (ON oppure "NUMERO"), impostare ad OFF questo parametro:
output_buffering = OFF

 

Salvare il file e riavviare nuovamente Apache.
sudo /etc/init.d/apache2 restart


Finito!
...si fa per dire! yell
Ora vediamo se tutto funziona...

Alla fine del punto 8 io ho scelto di spostare la directory www sotto la mia home.
Apache opera tramite l'utente www-data (del gruppo www-data) quindi se vogliamo permettere ad Apache di operare nella directory www dobbiamo impostare i permessi nel modo corretto, altrimenti non vederemmo alcun sito funzionare!
Avendo spostato la directory www sotto la mia home, ovviamente balza subito all'occhio la scomodità di dover operare in una directory dando accesso a 2 utenti contemporaneamente, www-data per permettere ad Apache di operare, ed il nostro nome-utente per permetterci di modificare i file del nostro sito!
Si potrebbero brutalmente impostare i permessi alla directory www a 777 ed il gioco sarebbe fatto! laughing
Essendo in locale si potrebbe anche azzardare... Altrimenti, ci dobbiamo impegnare per fare un lavoro più pulito. innocent
Io, per esempio, ho aggiunto l'utente www-data al gruppo del mio nome-utente:

sudo usermod -a -G nome-utente www-data


poi, per ogni directory o file che aggiungo a www, imposto i permessi ad almeno 755, poi per i file particolari che avranno bisogno di permessi in scrittura allora li innalzerò a 775.

Apriamo un browser e andiamo all'indirizzo localhost, oppure 127.0.0.1 e vediamo, richiamando i 2 file appena citati, se il tutto funziona.

Se qualcosa non funziona proviamo a verificare i permessi ed eventualmente verificare bene i punti dell'installazione!
Se invece tutto funziona allora iniziamo a fare i webmaster! cool