PHP 7

Upgrade da PHP 5.x a PHP 7.0 su Ubuntu con Nginx

PHP 7, sin dalla sua presentazione a dicembre del 2015, ha promesso un miglioramento delle velocità e delle performance. Questa guida spiega come passare alla nuova versione del linguaggio di programmazione, passando da una versione 5.x a 7.0.

Questa mini-guida prevede già un ambiente in produzione con Nginx e PHP-FPM su un sistema con Ubuntu (nel nostro caso 14.04, ma funziona anche su sistemi più recenti).

Aggiunta della PPA per PHP 7.0

Un PPA (o Personal Package Archive) altro non è che un APT di terze parti, un repository sviluppato da qualcuno e messo a disposizione di tutti.

Ecco, noi dobbiamo, come primo passo, proprio aggiungere questo PPA alla lista delle sorgenti da cui installare e aggiornare i software attraverso apt-get.

Nella shell di Ubuntu bisogna digitare:

sudo add-apt-repository ppa:ondrej/php

Appena il PPA sarà installato dovremo fare un update per aggiornare i software anche da quest’ultimo. Quindi facciamo:

sudo apt-get update

Upgrade di PHP-FPM con Nginx

Come primo passaggio dovremo installare il nuovo PHP-FPM:

sudo apt-get install php7.0-fpm

Se usiamo, oltre PHP, anche MySQL bisognerà installare anche questo pacchetto:

sudo apt-get install php7.0-mysql

Ora sul nostro sistema sono installati entrambi i PHP, sia il 5 che il 7.

Update dei siti per far usare PHP corretto

Il prossimo passo è quello di modificare le configurazioni dei siti per far puntare verso il nuovo sock, cioè quello di PHP 7.

Per PHP 5 il sock si trova in:

/var/run/php5-fpm.sock

Invece PHP 7 ce l’ha in:

/var/run/php/php7.0-fpm.sock

Per modificare la configurazione dei siti bisogna entrare in modifica nei file di configurazione presenti all’interno della cartella:

/etc/nginx/site-enabled/

Per esempio, per il file di default bisogna fare:

sudo vi /etc/nginx/sites-enabled/default

nella porzione di codice dove è presente la stringa “location ~ \.php$ {” bisogna andare sul parametro “fastcgi_pass unix:” e modificarlo così:

fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

Quindi l’intero blocco dovrebbe essere qualcosa del genere:

location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

Non rimane che salvare il file e nel caso di vim ciò si fa con shift+ZZ.

A questo punto la configurazione è salvata e bisogna riavviare Nginx con questo comando:

sudo service nginx restart

Testare la versione di PHP

Per controllare che tutta la configurazione sia andata a buon fine potete eseguire il comando:

php -v

dovrebbe uscirvi in output qualcosa del genere:

PHP 7.0.0-5+deb.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

Ultima verifica da fare è quella di posizionare un file info.php all’interno di

/var/www/html/info.php

con un comando del genere:

sudo vi /var/www/html/info.php

inserendo come contenuto del file

E salvando come abbiamo fatto prima.

Chiamando

http://server_domain_name_or_IP/info.php

dove “server_domain_name_or_IP” è il parametro server_name del file default, avremo una risposta con tutto ciò che PHP ha in configurazione e a quel punto sulla riga riguardante la versione di PHP vedremo il nuovo PHP 7.

Fatto, ora avete switchato il vostro ambiente a PHP 7. Non vi rimane che capire se questo cambio farà girare ancora bene tutti i vostri applicativi.


Pubblicato

in

Per: