Introduzione
L'attuale repository di pacchetti stabili di Debian potrebbe non contenere sempre un software aggiornato per essere in linea con
le nostre aspettative. C'è un'ottima ragione per questo, come un sistema stabile come compromesso per l'esecuzione di software all'avanguardia.
Il linguaggio di scripting lato server PHP non è un'esenzione! Al
al momento della scrittura, l'attuale versione PHP di Debian è 5.6.29
mentre l'ultima versione del sorgente PHP è 7.1.0
(dato che non esiste affatto PHP 6).
Le affermazioni dell'attuale sviluppatore PHP mettono PHP 7 davanti a PHP 5.6 in termini di velocità, dove PHP 7 dovrebbe essere due volte più veloce del suo predecessore:
Grazie al nuovo Zend Engine 3.0, le tue app ottengono prestazioni fino a 2 volte più veloci e un consumo di memoria migliore del 50% rispetto a PHP 5.6, consentendoti di servire più utenti simultanei senza aggiungere hardware
. Progettato e rifattorizzato per i carichi di lavoro odierni, PHP 7 è la scelta definitiva per gli sviluppatori web di oggi.
Riferimento:zend.com/en/resources/php-7
Obiettivo
Confrontare una velocità tra PHP 5.6 e l'ultimo PHP 7.1.0 non è un obiettivo di questo articolo. Tuttavia, l'obiettivo è ottenere l'ultima versione di PHP 7 installata sul sistema Debian 8. Inoltre
installeremo PHP-FPM (FastCGI Process Manager). Questa guida offrirà due possibili installazioni.
Per prima cosa, la guida utilizzerà compile-php-debian
script disponibile su github.com/linuxconfig/compile-php-debian
per automatizzare l'installazione di PHP 7 e successivamente mostrerà come installare PHP 7 manualmente.
Requisiti
- Accesso privilegiato al tuo sistema Debian Linux come root o tramite
sudo
il comando è richiesto
Difficoltà
MEDIO
Convenzioni
- # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando
sudo
comando - $ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato
Istruzioni
Rimuovi i pacchetti PHP5
Se hai già installato PHP5 sul tuo sistema, devi rimuoverli prima della nuova installazione di PHP 7. Per farlo, elenca tutti i php
pacchetto correlato sul tuo sistema:
# dpkg -l | grep -E "^ii.*php" | cut -d " " -f3 libapache2-mod-php5 php5 php5-cli php5-common php5-json php5-readline
Il seguente comando linux rimuoverà tutti i pacchetti elencati dall'output del comando precedente:
# REMOVE=$(dpkg -l | grep -E "^ii.*php" | cut -d " " -f3) # dpkg -P $REMOVE
Installazione automatica con script
La seguente installazione automatica tramite script esegue tutti i passaggi necessari per compilare e installare la versione PHP 7 selezionata dall'utente, nonché installare il demone PHP-FPM. Inizia clonando compile-php-debian
sceneggiatura:
$ git clone https://github.com/linuxconfig/compile-php-debian.git
Quindi, vai a compile-php-debian
directory:
$ cd compile-php-debian
Ora decidi semplicemente quale versione di PHP 7 desideri installare e inserisci il numero di versione selezionato come argomento per install_php.sh
sceneggiatura. Ad esempio, per installare PHP versione 7.0.8 immettere:
# ./install_php.sh 7.0.8 FOR PHP VERSION 7.1.0 RUN # ./install_php.sh 7.1.0
L'installazione potrebbe richiedere del tempo. Una volta terminato, avvia il demone PHP-FPM eseguendo service
comando:
# service php7-fpm start # service php7-fpm status [ ok ] php-7.1.0-fpm is running.
Il demone PHP-FPM è ora in ascolto su un localhost
numero di porta 9000
. Puoi anche provare a connetterti al demone PHP-FPM direttamente usando cgi-fcgi
comando trovato all'interno di libfcgi0ldbl
pacchetto:
# cgi-fcgi -bind -connect 127.0.0.1:9000 X-Powered-By: PHP/7.1.0 Content-type: text/html; charset=UTF-8
Questo completa l'installazione di PHP 7 sul tuo sistema Linux Debain 8.
Installazione manuale
Installazione dei prerequisiti
Iniziamo con l'installazione di tutti i prerequisiti per adattarsi alle opzioni di compilazione PHP più comuni:
# apt-get install autoconf bison build-essential git-core libbz2-dev libcurl4-openssl-dev libfreetype6-dev libicu-dev libjpeg-dev libmcrypt-dev libpng-dev libpspell-dev libreadline-dev libssl-dev libxml2-dev pkg-config
Download del codice sorgente PHP
Probabilmente il modo più semplice per ottenere il codice sorgente di PHP è clonare il repository di PHP su GitHub. Esegui il seguente comando linux per clonare la directory sorgente di PHP:
$ git clone https://github.com/php/php-src.git
Una volta che il git clone
l'operazione è terminata ti verrà lasciato con un nuovo nome di directory php-src
.
Un'altra alternativa è ottenere un tarball di una specifica versione di PHP che
desideri installare scaricandola direttamente da http://php.net/downloads.php
. Il vantaggio in questo caso è un requisito minimo di dimensione del download. Tuttavia, non potrai scegliere
versioni selettivamente diverse per distribuzioni multiple.
Compilazione del codice sorgente PHP
A questo punto siamo pronti per eseguire una compilazione del codice sorgente PHP. Passa a un php-src
precedentemente scaricato directory:
$ cd php-src
Quindi, decidi quale versione di PHP desideri compilare e installare. Esegui il seguente git
comando per elencare tutte le versioni di PHP 7 disponibili:
$ git branch -a | grep PHP-7 remotes/origin/PHP-7.0 remotes/origin/PHP-7.0.0 remotes/origin/PHP-7.0.1 remotes/origin/PHP-7.0.10 remotes/origin/PHP-7.0.11 remotes/origin/PHP-7.0.12 remotes/origin/PHP-7.0.13 remotes/origin/PHP-7.0.14 remotes/origin/PHP-7.0.2 remotes/origin/PHP-7.0.3 remotes/origin/PHP-7.0.4 remotes/origin/PHP-7.0.5 remotes/origin/PHP-7.0.6 remotes/origin/PHP-7.0.7 remotes/origin/PHP-7.0.8 remotes/origin/PHP-7.0.9 remotes/origin/PHP-7.1 remotes/origin/PHP-7.1.0 remotes/origin/PHP-7.1.0RC1 remotes/origin/PHP-7.1.0RC2 remotes/origin/PHP-7.1.0RC3 remotes/origin/PHP-7.1.0beta1 remotes/origin/PHP-7.1.0beta2 remotes/origin/PHP-7.1.0beta3
Usa git checkout
comando per passare al ramo della versione PHP che desideri utilizzare per la compilazione. Esempio:
$ git checkout PHP-7.1.0 Branch PHP-7.1.0 set up to track remote branch PHP-7.1.0 from origin. Switched to a new branch 'PHP-7.1.0'
Quindi, crea una directory da utilizzare come destinazione dell'installazione. Nel nostro caso sarà /usr/local/php-7.1.0
:
# mkdir /usr/local/php-7.1.0
e specificare tutte le stringhe di compilazione. Prendi nota del --prefix
e --with-config-file-scan-dir
stringhe di configurazione che definiscono l'installazione e la configurazione
impostazioni. Di seguito è riportato un elenco delle opzioni di compilazione PHP più comuni.
Sentiti libero di aggiornare l'elenco in base alle tue esigenze. A seconda della selezione, potrebbe essere necessario installare ulteriori
prerequisiti. Copia e incolla il testo sotto nel tuo terminale seguito da INVIO:
CONFIGURE_STRINGS="--enable-bcmath \ --enable-calendar \ --enable-dba \ --enable-exif \ --enable-filter \ --enable-fpm \ --enable-ftp \ --enable-gd-native-ttf \ --enable-intl \ --enable-mbstring \ --enable-mysqlnd \ --enable-pcntl \ --enable-shmop \ --enable-simplexml \ --enable-soap \ --enable-sockets \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-wddx \ --enable-xmlreader \ --enable-xmlwriter \ --enable-zip \ --prefix=/usr/local/php-7.1.0 \ --with-bz2 \ --with-config-file-scan-dir=/usr/local/php-7.1.0/etc/conf.d \ --with-curl \ --with-fpm-group=www-data \ --with-fpm-user=www-data \ --with-freetype-dir \ --with-gd \ --with-gettext \ --with-jpeg-dir \ --with-mcrypt \ --with-mhash \ --with-mysqli=mysqlnd \ --with-mysql-sock=/var/run/mysqld/mysqld.sock \ --with-openssl \ --without-pear \ --with-pdo-mysql=mysqlnd \ --with-pdo-sqlite \ --with-png-dir \ --with-pspell \ --with-readline \ --with-sqlite3 \ --with-zlib"
Quanto sopra imposterà CONFIGURE_STRINGS
variabile shell per contenere tutte le opzioni di compilazione PHP. Successivamente, dobbiamo creare il nostro configure e Makefiles. Per farlo, esegui:
$ ./buildconf --force Forcing buildconf Removing configure caches rebuilding aclocal.m4 rebuilding configure rebuilding main/php_config.h.in
Quindi, esegui la configurazione della compilazione:
$ ./configure $CONFIGURE_STRINGS
Se non sono stati prodotti errori da configure
sopra comando, quindi è il momento di eseguire la compilazione eseguendo un make
comando:
$ make .... Build complete. Don't forget to run 'make test'.
Una volta terminata la compilazione, se il codice sorgente PHP è terminato, esegui opzionalmente make test
comando o esegui make install
comando per installare tutti i binari precedentemente compilati nelle loro
directory rilevanti:
# make install Installing shared extensions: /usr/local/php-7.1.0/lib/php/extensions/no-debug-non-zts-20160303/ Installing PHP CLI binary: /usr/local/php-7.1.0/bin/ Installing PHP CLI man page: /usr/local/php-7.1.0/php/man/man1/ Installing PHP FPM binary: /usr/local/php-7.1.0/sbin/ Installing PHP FPM config: /usr/local/php-7.1.0/etc/ Installing PHP FPM man page: /usr/local/php-7.1.0/php/man/man8/ Installing PHP FPM status page: /usr/local/php-7.1.0/php/php/fpm/ Installing phpdbg binary: /usr/local/php-7.1.0/bin/ Installing phpdbg man page: /usr/local/php-7.1.0/php/man/man1/ Installing PHP CGI binary: /usr/local/php-7.1.0/bin/ Installing PHP CGI man page: /usr/local/php-7.1.0/php/man/man1/ Installing build environment: /usr/local/php-7.1.0/lib/php/build/ Installing header files: /usr/local/php-7.1.0/include/php/ Installing helper programs: /usr/local/php-7.1.0/bin/ program: phpize program: php-config Installing man pages: /usr/local/php-7.1.0/php/man/man1/ page: phpize.1 page: php-config.1 /php-src/build/shtool install -c ext/phar/phar.phar /usr/local/php-7.1.0/bin ln -s -f phar.phar /usr/local/php-7.1.0/bin/phar Installing PDO headers: /usr/local/php-7.1.0/include/php/ext/pdo/
Tutto fatto. PHP 7.1.0 è ora installato. Per confermare esegui:
$ /usr/local/php-7.1.0/bin/php -v PHP 7.1.0 (cli) (built: Jan 2 2017 09:09:59) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies
Installazione di FastCGI Process Manager
In questa sezione installeremo PHP-FPM da utilizzare come front per l'installazione con server web come Nginx o Apache. Innanzitutto, crea un collegamento simbolico di/usr/local/php-$version/sbin/php-fpm
appena compilato binario per rendere ordinata la nostra installazione:
# ln -s /usr/local/php-7.1.0/sbin/php-fpm /usr/local/php-7.1.0/sbin/php-7.1.0-fpm
Sempre nel php-src
directory, imposta un php.ini
predefinito configurazione:
# cp php.ini-production /usr/local/php-7.1.0/lib/php.ini
Abilita il file di configurazione del demone PHP-FPM:
# mv /usr/local/php-7.1.0/etc/php-fpm.d/www.conf.default /usr/local/php-7.1.0/etc/php-fpm.d/www.conf
Usa l'editor di testo e crea un nuovo /usr/local/php-7.1.0/etc/php-fpm.conf
config con il seguente contenuto:
[global] pid = /var/run/php7-fpm.pid error_log = /var/log/php7-fpm.log include=/usr/local/php-7.1.0/etc/php-fpm.d/*.conf
Abilita moduli PHP aggiuntivi
Inserisci tutte le direttive del modulo che desideri abilitare nel tuo php.ini
file di configurazione. Ad esempio, per abilitare il modulo PHP OpCache di Zend, esegui:
# echo "zend_extension=opcache.so" >> /usr/local/php-7.1.0/lib/php.ini
Configura lo script PHP7-FPM init.d
Per prima cosa, inserisci un seguente php7-fpm.init
modificato script in /etc/init.d/
directory:
# wget -qO /etc/init.d/php7-fpm https://linuxconfig.org/images/php7-fpm.init
Nel caso in cui tu abbia installato una versione diversa di PHP diversa da 7.1.0
usa il tuo editor di testo e modifica le seguenti variabili di script per adattarle alla VERSION
PHP installata :
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/php-VERSION/sbin NAME=php-VERSION-fpm DAEMON=/usr/local/php-VERSION/sbin/$NAME CONFFILE=/usr/local/php-VERSION/etc/php-fpm.conf
Infine, crea /etc/init.d/php7-fpm
eseguibile ed esegui udpate-rc.d
comando:
# chmod +x /etc/init.d/php7-fpm # update-rc.d php7-fpm defaults
Avvia il demone PHP-FPM
Ora dovresti essere in grado di avviare semplicemente il demone PHP-FPM eseguendo service
comando:
# service php7-fpm start # service php7-fpm status [ ok ] php-7.1.0-fpm is running.
Il demone PHP-FPM è ora in ascolto su un localhost
numero di porta 9000
.