Nginx si sta affermando sempre più come alternativa ad Apache. Secondo i benchmark Nginx risulta spesso più performante e sopratutto più leggero di Apache, che soffre spesso di memori leak che portano ad un consumo spropositato di memoria.
E’ stata scelta la distribuzione Ubuntu 10.04 Server perchè offre una delle versioni più aggiornate di Nginx e permette di non installare compilatori e strumenti di configurazione come make.
Di seguito la guida passo passo per l’installazione:
Passo 1: Aggiornare il sistema operativo
- sudo apt-get update && apt-get upgrade
Passo 2: Installare MySQL, ad un certo punto verrà chiesto di inserire una password per MySQL, inseritene una differente e annotatela.
- sudo apt-get install mysql-server
Passo 3: Installare PHP5
- sudo nginx php5-cli php5-cgi spawn-fcgi
- sudo echo “console output” >> /etc/init.d/nginx
- sudo update-rc.d nginx defaults
- sudo /etc/init.d/nginx start
Se si punta il browser all’indirizzo del server apparirà una semplice pagina con scritto Welcome to Nginx, però ancora non è possibile utilizzare PHP perchè bisogna configurare spawn-fcgi.
Passo 4:Aprire il file spawn-fcgi
- sudo nano /etc/init.d/php-fastcgi
Passo 5: Inserire nel file il seguente codice che permette di gestire php5
#!/bin/bash
PHP_SCRIPT=/usr/bin/php-fastcgi
FASTCGI_USER=www-data
RETVAL=0
case "$1" in
start)
su - $FASTCGI_USER -c $PHP_SCRIPT
RETVAL=$?
;;
stop)
killall -9 php5-cgi
RETVAL=$?
;;
restart)
killall -9 php5-cgi
su - $FASTCGI_USER -c $PHP_SCRIPT
RETVAL=$?
;;
*)
echo "Usage: php-fastcgi {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL
console output
Passo 6: Rendere eseguibile il codice e farlo lanciare ad ogni avvio
- chmod 755 /etc/init.d/php-fastcgi
sudo update-rc.d php-fastcgi defaults
sudo /etc/init.d/php-fastcgi start
Passo 7: Creare il proprio sito e abilitare PHP (al posto di miosito.xz va inserito il proprio dominio)
- sudo nano /etc/nginx/site-availables/miosito
server {
listen 80;
server_name www.miosito.xz miosito.xz;
access_log /srv/www/www.miosito.xz/logs/access.log;
error_log /srv/www/www.miosito.xz/logs/error.log;
location / {
root /srv/www/www.miosito.xz/public_html;
index index.html index.htm;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/www.miosito.xz/public_html$fastcgi_script_name;
}
}