LEMP su Ubuntu Server
LEMP (Linux, nginx, MySQL, and PHP) è uno stack come LAMP (Linux, Apache, MySQL, and PHP)
Il web server nginx (pronunciato come “engine-x” e che prende la lettera E all’interno di LEMP) sostituisce il web server Apache (all’interno di LAMP).
E’ possibile installare nginx seguendo il semplice post descritto qui
Inoltre si possono installare gli altri componenti come PHP, MySQL e phpmyadmin. nginx, a differenza di Apache, richiede qualche configurazione ulteriore.
Dopo aver installato nginx e verificato che tutto funzioni correttamente, procediamo con l’installazione di PHP dando da terminale:
sudo apt-get install php5-cli php5-fpm php5-mysql
Per aprire file PHP dobbiamo effettuare delle modifiche. Da terminale diamo:
sudo nano /etc/nginx/sites-available/default
e aggiungiamo index.php alla riga
index index.html index.htm;
in modo da ottenere questo:
inoltre, prima di salvare il file, lo scorriamo fino ad arrivare al blocco di codice
# location ~ \.php$ { # fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # With php5-cgi alone # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm; # fastcgi_pass unix:/var/run/php5-fpm.sock; # fastcgi_index index.php; # include fastcgi_params; # }
che modifichiamo ottenendo la schermata successiva:
Al termine salviamo il file, usciamo dall’editor nano e riavviamo nginx con
sudo /etc/init.d/nginx restart
A questo punto testiamo se tutto è andato a buon fine, creando un file php_info.php
sudo nano /usr/share/nginx/www/php_info.php
ed all’interno scriviamo:
<?php phpinfo(); ?>
Salviamo il file, usciamo dall’editor e da un browser interno alla LAN, daremo:
http://indirizzo.ip.del.server/php_info.php
ottenendo qualcosa simile alla schermata
Gli ultimi due passaggi risultano essere l’installazione di MySQL e di phpmyadmin (al fine di facilitare l’utilizzo di MySQL).
Da terminale diamo:
sudo apt-get install mysql-server
e durante l’installazione ci verrà richiesta di inserire la password di root
Ultimo passaggio è l’installazione e la configurazione di phpmyadmin; da terminale diamo:
sudo apt-get install phpmyadmin
e nella schermata successiva non selezioniamo nessuna delle voci che ci vengono proposte
Alla fine dell’installazione del pacchetto, bisogna effettuare un’ultima modifica:
sudo nano /etc/nginx/sites-available/default
ed aggiungere il seguente pezzo di codice:
location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; }
Di seguito una schermata di esempio, che mostra la posizione in cui ho inserito il blocco di codice:
Alla fine salvare il file e riavviare nginx con
sudo /etc/init.d/nginx restart
Aprendo un browser all’interno della LAN possiamo digitare
http://indirizzo.ip.del.server/phpmyadmin
in alcuni casi potremmo ottenere una schermata di errore come segue
che possiamo risolvere modificando il file php.ini, togliendo il commento alla riga mysqli.allow_local_infile = On
sudo nano /etc/php5/cli/php.ini