Posted by & filed under Debian, Linux, Server.

DMCA.com
debian-nginx-mysql-php

In questo articolo andreamo a vedere come configurare uno stack LEMP (linux, nginx, mysql e php5) su un server Debian 6.

Prima di procedere assicuriamoci di avere un installazione pulita, quindi senza ulteriori pacchetti, e di avere accesso ssh verso il server con i permessi di amministratore.

In questo tutorial io configurerò due domini di esempio:

  1. marano.tk
  2. blog.marano.tk

Cosi facendo vi farò vedere come configurare i serverblock (virtual server) su nginx e come gestire i sottodomini.

Prima di iniziare, ovviamente, assicuratevi che il vostro dominio, in questo caso marano.tk, punti verso l’ip del vostro server.

Installazione dei pacchetti

La prima cosa da fare è aggiornare il sistema:

apt-get update

apt-get upgrade -y

Ora possiamo passare ad aggiungere la repo dotdeb:

echo "deb http://packages.dotdeb.org stable all" >> /etc/apt/sources.list

Scarichiamo ora la chiave GPG:

wget http://www.dotdeb.org/dotdeb.gpg

cat dotdeb.gpg | apt-key add -

rm dotdeb.gpg

Ed aggiorniamo APT:

apt-get update

Installiamo ora nginx:

apt-get install nginx -y

Ora invece installiamo php5 ed alcune librerie spesso utilizzate con esso:

apt-get install php5 php5-fpm php-pear php5-common php5-mcrypt php5-mysql php5-cli php5-gd -y

Installiamo anche vim (vi di default mi da alcuni problemi) che ci servirà per editare alcuni file di configurazione:

apt-get install vim -y

Configurazione

Modifichiamo il nostro php.ini :

vim /etc/php5/fpm/php.ini

Cerchiamo la riga:

;cgi.fix_pathinfo=1

e modifichiamola in :

cgi.fix_pathinfo=0

Salviamo il file ed usciamo da vim. Questa impostazione è importante per la sicurezza del server.

Creiamo la cartella che conterrà il nostro primo sito:

mkdir -p /usr/share/nginx/marano.tk/public_html

Nginx di default salva la configurazione dei siti in /etc/nginx/sites-available/default. Ogni sito, o sottodomino, è racchiuso nel tag server { .. }.

Apriamo questo file e modifichiamo la riga:

listen [::]:80 default_server;

Facendola diventare:

#listen [::]:80 default_server;

Questo disabilita gli ipv6, che spesso non sono necessari.

Modifichiamo la riga :

server_name localhost;

Facendola diventare:

server_name marano.tk www.marano.tk;

Modifichiamo la riga:

root /usr/share/nginx/html;

Facendo puntare la root del sito verso la cartella che abbiamo creato prima:

root /usr/share/nginx/marano.tk/public_html

Ora cercate il blocco di codice racchiuso in location ~ .php$ { .. } e sostituitelo con la seguente configurazione:

location ~ .php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_param SCRIPT_FILENAME /usr/share/nginx/marano.tk/public_html$fastcgi_script_name;

fastcgi_index index.php;

include fastcgi_params;

}

Salviamo il file ed usciamo.

Creiamo un file php di prova:

vim /usr/share/nginx/marano.tk/public_html/info.php

Ed all’interno di esso scriviamo:

<?php phpinfo(); ?>

Salviamo ed usciamo.

Riavviamo nginx e php:

service nginx restart

service php5-fpm restart

Puntiamo il browser verso marano.tk/info.php e dovremmo vedere finalmente la pagina con le informazioni sul php!

Configurazione sottodominii

Una volta configurato il primo dominio, configurare il secondo sarà molto semplice.

Anzi tutto dobbiamo creare la directory che conterrà il sottodominio:

mkdir -p /usr/share/nginx/blog.marano.tk/public_html

Dopodichè apriamo il file di configurazione

vim /etc/nginx/sites-aviable/default

Copiamo tutto la configurazione del primo dominio, tutto quello che è compreso nel tag server{ .. } principale, ed incolliamolo alla fine del documento. Cosi facendo avremo due server virutali.

Come è facile intuire ora dobbiamo modificare alcune cose nella configurazione del secondo dominio. Le modifiche sono abbastanza ovvie.

Andremo a modificare tutti i riferimenti al primo dominio, in questo caso marano.tk, e le adetteremo per il secondo dominio, in questo caso blog.marano.tk.

Una volta fatte le dovute modifiche dobbiamo riavviare nginx e php:

service nginx restart

service php5-fpm restart

Creiamo ora un file d’esempio per vedere se anche il secondo dominio funziona bene.

vim /usr/share/nginx/blog.marano.tk/public_html/index.php

All’interno di questo file inseriamo:

<?php
echo "ciao, sono blog.marano.tk";

?>

Puntiamo ora su blog.marano.tk/index.php per l’ultima verifica. Se appare il messaggio che abbiamo scritto prima significa che tutto è andato bene.

Installazione mysql

L’installazione di mysql è veramente semplice. Basta dare il comando:

apt-get install mysql-server

E seguire le istruzioni ;)

Godetevi il nuovo server :)

Installazione postfix

Per poter inviare le email usando la funzione mail() di php è necessario installare un server mail.

Possiamo risolvere questo problema installando postfix:

apt-get install postfix -y

Aggiungiamo un paio di configurazioini al nostro php.ini:

echo "sendmail_from = [email protected]" >> /etc/php5/fpm/php.ini

echo "sendmail_path = /usr/sbin/sendmail -t -i -f [email protected]" >> /etc/php5/fpm/php.ini

Ovviamente al posto di [email protected] inserite l’indirizzo email da cui volente inviare le email.

Non ci resta ora che riavviare tutto:

service nginx restart

service php5-fpm restart

service postfix restart