Nginx sta crescendo moltissimo come popolarità ed affidabilità e si sta proponendo come alternativa ad Apache: i dati parlano chiaro, da diversi benchmark effettuati, Nginx risulta essere molto più leggero e veloce del famoso concorrente che a volte è afflitto da memory leak, i quali possono determinare un consumo di memoria rilevante. Se poi Nginx lo utilizzate in coppia con PHP FPM (FastCGI Process Manager), una release di PHP specificamente realizzata per siti ad intenso traffico, allora la differenza con la solita configurazione Apache+PHP diventa sostanziale.
Sappiamo tutti come l’installazione di Nginx sia abbastanza complicata poiché richiedeva la compilazione di diversi moduli, ma adesso possiamo installare questo ottimo http server in abbinamento con PHP FPM, molto rapidamente per mezzo del noto comando apt-get.
Nello specifico vediamo gli step per installare Nginx e PHP FPM su Ubuntu Lucid Lynx:
- Iniziamo con l’installazione di Nginx:
sudo apt-get install nginx
- Adesso modifichiamo il file di configurazione di default:
sudo vim /etc/nginx/sites-available/default
inserendo questo 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; }
- Prima di installare PHP effettuiamo l’update:
sudo apt-get update
- Adesso procediamo con questo comando per installare PHP:
sudo apt-get install php5-cli php5-common php5-suhosin
- Per installare PHP-FPM occorre aggiungere prima un repository esterno. Lanciate, nell’ordine, i seguenti comandi:
add-apt-repository ppa:brianmercer/php
sudo apt-get update && sudo apt-get install php5-fpm php5-cgi
- Adesso riavviate Nginx per essere certi che tutte le nuove configurazioni siano ricaricate:
sudo /etc/init.d/nginx restart
- Se dovete modificare il php.ini ricordatevi di riavviare anche PHP-FPM:
sudo /etc/init.d/php5-fpm restart
- Per accertarvi del buon funzionamento della configurazione create in /var/www il file index.php con il seguente contenuto:
<?php phpinfo(); ?>
Adesso effettuate un test, aprite il browser provate ad accedere alla root del nuovo web server: se tutti i passaggi sono stati effettuati correttamente vedrete la mitica pagina informativa di PHP
“BAD GATEWAY”, è il risultato di queste istruzioni.