domenica 25 dicembre 2011

Installare Nginx con PHP 5.3 su Ubuntu Lucid Lynx (10.04)

ginx si sta configurando sempre più chiaramente come una valida alternativa ad Apache: sembra infatti che, benchmark alla mano, Nginx risulti molto più leggero e performante del famoso rivale che spesso e volentieri soffre di memory leak i quali possono causare un consumo di memoria piuttosto “imbarazzate”. Se poi Nginx viene utilizzato in abbinamento con PHP FPM (FastCGI Process Manager), una versione di PHP ottimizzata per siti a traffico elevato, allora la differenza con la classica configurazione Apache+PHP diventa sensibile!

Mentre tempo fa l’installazione di Nginx era piuttosto articolata in quanto richiedeva anche la compilazione di alcuni moduli, è ora finalmente possibile installare questo potente http server in abbinamento con PHP FPM in maniera molto veloce utilizzando il classico comando apt-get.

In particolare vedremo di seguito i passi necessari per installare Nginx e PHP FPM su Ubuntu Lucid Lynx:

1. Partiamo subito con l’installazione di Nginx:

sudo apt-get install nginx

2. Quindi modifichiamo il file di configurazione di default:

sudo vim /etc/nginx/sites-available/default

inserendo il seguente contenuto:

server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
## Default location
location / {
root /var/www;
index index.php;
}
## Images and static content is treated different
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
access_log off;
expires 30d;
root /var/www;
}
## Parse all .php file in the /var/www directory
location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
## Disable viewing .htaccess & .htpassword
location ~ /\.ht {
deny all;
}
}
upstream backend {
server 127.0.0.1:9000;
}

3. Prima di installare PHP effettuate l’update:

sudo apt-get update

4. Quindi procedete con il seguente comando per installare PHP:

sudo apt-get install php5-cli php5-common php5-suhosin

5. Per installare PHP-FPM è necessario aggiungere prima un repository esterno. Lanciate in sequenza i seguenti comandi:

add-apt-repository ppa:brianmercer/php

sudo apt-get update && sudo apt-get install php5-fpm php5-cgi

6. Ora riavviate Nginx per assicurarvi che tutte le nuove configurazioni vengano ricaricate:

sudo /etc/init.d/nginx restart

7. Se doveste modificare il php.ini ricordatevi di riavviare sempre anche PHP-FPM:

sudo /etc/init.d/php5-fpm restart

8. Per testare il funzionamento della configurazione create in /var/www il file index.php con il seguente contenuto:



Quindi utilizzando un browser provate ad accedere alla root del nuovo web server: se la procedura è andata a buon fine vedrete la classica pagina informativa di PHP