LNMP: Nginx con PHP e MySQL su Ubuntu

In questo articolo vedremo come installare il web server Nginx col supporto al database MySQL e a PHP. In un articolo precedente è stato descritto come installare Nginx dai sorgenti, mentre in questo verrà esposto il modo più semplice e più sicuro, almeno per i meno esperti, di installare il web server assieme a MySQL e PHP.

La distribuzione scelta è Ubuntu 10.04 Server. Essa mette a disposizione una versione molto aggiornata di Nginx e soprattutto permette di non dover installare compilatori o strumenti di configurazione come make sul sistema.

La prima cosa da fare è aggiornare il sistema operativo utilizzando il classico comando:

sudo apt-get update && apt-get upgrade

Poi si può passare all’installazione di MySQL:

sudo apt-get install mysql-server

Verranno mostrati dei pacchetti aggiuntivi da installare. Ad un certo punto viene chiesto di inserire la password di root per MySQL, inserirne una differente dalla password di root di Debian e annotarla da qualche parte.

Ora installare anche 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

Puntando col browser all’indirizzo del server sarà possibile vedere una semplice pagina che mostra la scritta: Welcome To Nginx!

Tuttavia non è possibile ancora utilizzare PHP, bisogna configurare spawn-fcgi. Aprire il file php-fastcgi

sudo nano /usr/bin/php-fastcgi

e inserire all’interno le due righe:

#!/bin/sh
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 6 -u www-data -f /usr/bin/php5-cgi

Rendere lo script eseguibile mediante il comando:

sudo chmod a+x /usr/bin/php-fastcgi

Creare un file che possa essere eseguito all’avvio del sistema operativo:

sudo nano /etc/init.d/php-fastcgi

Inserire nel file il seguente codice:

#!/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

Il codice serve per permettere di gestire php5. Ora è necessario rendere eseguibile lo script e lanciarlo ad ogni avvio:

chmod 755 /etc/init.d/php-fastcgi
sudo update-rc.d php-fastcgi defaults
sudo /etc/init.d/php-fastcgi start

Fortunatamente MySql non necessita di modifiche ma adesso è possibile creare il proprio sito come normalmente si fa avendo però cura di inserire nel file di configurazione alcune righe che abilitino php:

sudo nano /etc/nginx/site-availables/miosito

e inserire (sostituire misito.xz con il proprio dominio):

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;
}
}

  • Installare Nginx con php-fpm su Debian 7 Wheezy...

  • Gestire un vps...

  • Backup di MySQL...

  • Installare ioncube loader su Wheezy usando Nginx e PHP5 FPM...

  • Nginx...

  • Ripristino da una corruzione dello schema mysql...