Website-Suche

Installation des neuesten Bleeding Edge PHP 7 auf Debian 8 Jessie Linux


Einleitung

Die serverseitige Skriptsprache PHP ist keine Ausnahme! Zum Zeitpunkt des Schreibens ist die aktuelle PHP-Version von Debian 5.6.29, während die neueste PHP><-Quellversion 7.1.0 ist ( vorausgesetzt, es gibt überhaupt kein PHP 6 ).

Die Behauptungen der aktuellen PHP-Entwickler stellen PHP 7 in Bezug auf die Geschwindigkeit vor PHP 5.6, wobei PHP 7 doppelt so schnell sein soll wie sein Vorgänger:

Dank der neuen Zend Engine 3.0 erzielen Ihre Apps eine bis zu 2x schnellere Leistung und einen 50% besseren Speicherverbrauch als bei PHP 5.6, sodass Sie mehr gleichzeitige Benutzer bedienen können, ohne
Hardware hinzuzufügen. PHP 7 wurde für die heutigen Workloads entwickelt und überarbeitet und ist die ultimative Wahl für Webentwickler von heute.

Artikel-Nr.: zend.com/en/resources/php-7

Objektiv

Eine Geschwindigkeit zwischen PHP 5.6 und dem neuesten PHP 7.1.0 zu vergleichen, ist nicht Ziel dieses Artikels. Das Ziel ist jedoch, die neueste PHP 7-Version auf dem Debian 8-System zu installieren. Zusätzlich wird we
PHP-FPM (FastCGI Process Manager) installieren. In diesem Leitfaden werden zwei mögliche Installationen vorgestellt.

Zuerst wird die Anleitung das auf github.com/linuxconfig/compile-php-debian verfügbare Skript compile-php-debian verwenden, um die Installation von PHP 7 zu automatisieren, und später wird gezeigt, wie man PHP 7 manuell installiert.

Anforderungen

  • Privilegierter Zugriff auf Ihr Debian Linux-System als root oder über den Befehl sudo ist erforderlich

Schwierigkeit

MITTEL

Konventionen

  • # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder mit dem Befehl sudo
  • $ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden

Anweisungen

PHP5-Pakete entfernen

Wenn Sie bereits PHP5 auf Ihrem System installiert haben, müssen Sie diese vor der Neuinstallation von PHP 7 entfernen. Um dies zu tun, listen Sie alle PHP-bezogenen Pakete auf Ihrem System auf:

dpkg -l | grep -E "^ii.*php" | cut -d " " -f3
libapache2-mod-php5
php5
php5-cli
php5-common
php5-json
php5-readline

Der folgende Linux-Befehl entfernt alle Pakete, die in der obigen Befehlsausgabe aufgelistet sind:

REMOVE=$(dpkg -l | grep -E "^ii.*php" | cut -d " " -f3)
dpkg -P $REMOVE

Automatische Installation mit Skript

Die folgende skriptgesteuerte automatische Installation führt alle notwendigen Schritte aus, um die vom Benutzer ausgewählte PHP 7-Version zu kompilieren und zu installieren, und installiert auch den PHP-FPM-Daemon. Beginnen Sie mit dem Klonen des Skripts compile-php-debian:

git clone https://github.com/linuxconfig/compile-php-debian.git

Navigieren Sie als Nächstes zum Verzeichnis compile-php-debian:

cd compile-php-debian

Entscheiden Sie nun einfach, welche PHP 7-Version Sie installieren möchten und geben Sie die von Ihnen gewählte Versionsnummer als Argument für install_php.sh Skript ein. Um beispielsweise die PHP-Version 7.0.8 zu installieren, geben Sie Folgendes ein:

./install_php.sh 7.0.8
FOR PHP VERSION 7.1.0 RUN
./install_php.sh 7.1.0 

Die Installation kann einige Zeit in Anspruch nehmen. Sobald Sie fertig sind, starten Sie den PHP-FPM-Daemon, indem Sie den Service-Befehl ausführen:

service php7-fpm start
service php7-fpm status
[ ok ] php-7.1.0-fpm is running.

Der PHP-FPM-Daemon lauscht nun auf der Portnummer 9000 eines localhosts. Sie können auch versuchen, sich direkt mit dem PHP-FPM-Daemon zu verbinden, indem Sie den Befehl cgi-fcgi verwenden, der sich im libfcgi0ldbl-Paket befindet:

cgi-fcgi -bind -connect 127.0.0.1:9000
X-Powered-By: PHP/7.1.0
Content-type: text/html; charset=UTF-8

Damit ist Ihre PHP 7-Installation auf Ihrem Debain 8 Linux-System abgeschlossen.

Manuelle Installation

Voraussetzungen Installation

Beginnen wir mit der Installation aller Voraussetzungen, um die gängigsten PHP-Kompilierungsoptionen zu erfüllen:

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

PHP-Quellcode herunterladen

Wahrscheinlich der einfachste Weg, den PHP-Quellcode zu erhalten, besteht darin, das PHP-Repository auf GitHub zu klonen. Führen Sie den folgenden Linux-Befehl aus, um das PHP-Quellverzeichnis zu klonen:

git clone https://github.com/php/php-src.git

Sobald der Git-Klonvorgang abgeschlossen ist, haben Sie einen neuen Verzeichnisnamen php-src.

Eine andere Alternative besteht darin, einen Tarball einer bestimmten PHP-Version zu erhalten, die Sie
installieren möchten, indem Sie ihn direkt von http://php.net/downloads.php herunterladen. Der Vorteil in diesem Fall ist eine minimale Download-Größe. Sie sind jedoch nicht in der Lage
selektiv unterschiedliche Versionen für mehrere Bereitstellungen auszuwählen.

Kompilierung von PHP-Quellcode

In dieser Phase sind wir bereit, eine PHP-Quellcode-Kompilierung durchzuführen. Navigieren Sie zu einem zuvor heruntergeladenen php-src-Verzeichnis:

cd php-src

Entscheiden Sie sich als Nächstes, welche PHP-Version Sie kompilieren und installieren möchten. Führen Sie den folgenden git-Befehl aus, um alle verfügbaren PHP 7-Versionen aufzulisten:

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

Verwenden Sie den Befehl git checkout, um zu dem gewünschten PHP-Versionszweig zu wechseln, den Sie für die Kompilierung verwenden möchten. Beispiel:

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'

Erstellen Sie als Nächstes ein Verzeichnis, das als Installationsziel verwendet werden soll. In unserem Fall wird es /usr/local/php-7.1.0 sein:

mkdir /usr/local/php-7.1.0

und geben Sie alle Kompilierungszeichenfolgen an. Achten Sie besonders auf die Konfigurationszeichenfolgen --prefix und --with-config-file-scan-dir, die die Installations- und Konfigurationseinstellungen
definieren. Im Folgenden finden Sie eine Liste der gängigsten PHP-Kompilierungsoptionen.

Fühlen Sie sich frei, die Liste zu aktualisieren, um sie an Ihre Bedürfnisse anzupassen. Abhängig von Ihrer Auswahl müssen Sie möglicherweise die Voraussetzungen für additional
installieren. Kopieren Sie den folgenden Text und fügen Sie ihn in Ihr Terminal ein, gefolgt von ENTER:

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"

Das Obige setzt CONFIGURE_STRINGS Shell-Variable so, dass sie alle Ihre PHP-Kompilierungsoptionen enthält. Als nächstes müssen wir unsere configure- und Makefiles erstellen. Führen Sie dazu Folgendes aus:

./buildconf --force
Forcing buildconf
Removing configure caches
rebuilding aclocal.m4
rebuilding configure
rebuilding main/php_config.h.in

Führen Sie als Nächstes die Kompilierungskonfiguration durch:

./configure $CONFIGURE_STRINGS

Wenn der obige configure-Befehl keine Fehler erzeugt hat, ist es an der Zeit, die Kompilierung durch Ausführen eines make-Befehls durchzuführen:

make
....
Build complete.
Don't forget to run 'make test'.

Sobald die Kompilierung abgeschlossen ist, wenn der PHP-Quellcode abgeschlossen ist, führen Sie optional den Befehl make test oder den Befehl make install aus, um alle zuvor kompilierten Binärdateien in die entsprechenden Verzeichnisse ihre
zu installieren:

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/

Fertig. PHP 7.1.0 ist jetzt installiert. So bestätigen Sie die Ausführung:

/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

FastCGI-Prozessmanager-Installation

In diesem Abschnitt werden wir PHP-FPM installieren, um es als Front für die Installation mit Webservern wie Nginx oder Apache zu verwenden. Erstellen Sie zunächst einen symbolischen Link der neu kompilierten Binärdatei compiled
/usr/local/php-$version/sbin/php-fpm, um unsere Installation aufgeräumt zu gestalten:

ln -s /usr/local/php-7.1.0/sbin/php-fpm /usr/local/php-7.1.0/sbin/php-7.1.0-fpm

Richten Sie immer noch im php-src-Verzeichnis eine Standardkonfiguration für php.ini ein:

cp php.ini-production /usr/local/php-7.1.0/lib/php.ini

Aktivieren Sie die Konfigurationsdatei des PHP-FPM-Daemon:

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

Verwenden Sie den Texteditor und erstellen Sie eine neue Konfigurationsdatei /usr/local/php-7.1.0/etc/php-fpm.conf mit folgendem Inhalt:

[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

Aktivieren Sie zusätzliche PHP-Module

Fügen Sie alle Modulanweisungen, die Sie aktivieren möchten, in Ihre php.ini Konfigurationsdatei ein. Zum Beispiel, um Zends OpCache PHP Modul zu aktivieren, führe Folgendes aus:

echo "zend_extension=opcache.so" >> /usr/local/php-7.1.0/lib/php.ini

PHP7-FPM init.d Skript konfigurieren

Fügen Sie zunächst das folgende modifizierte php7-fpm.init-Skript in das Verzeichnis /etc/init.d/ ein:

wget -qO /etc/init.d/php7-fpm https://linuxconfig.org/images/php7-fpm.init

Falls Sie eine andere PHP-Version als 7.1.0 installiert haben, verwenden Sie Ihren Texteditor und ändern Sie die folgenden Skriptvariablen, um sie an Ihre installierte PHP-Version anzupassen:

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

Erstellen Sie abschließend die ausführbare Datei /etc/init.d/php7-fpm und führen Sie den Befehl udpate-rc.d aus:

chmod +x /etc/init.d/php7-fpm
update-rc.d php7-fpm defaults

PHP-FPM-Daemon starten

Jetzt sollten Sie in der Lage sein, den PHP-FPM-Daemon einfach zu starten, indem Sie den Service-Befehl ausführen:

service php7-fpm start
service php7-fpm status
[ ok ] php-7.1.0-fpm is running.

Der PHP-FPM-Daemon lauscht nun auf der Portnummer 9000 eines localhosts.

Verwandte Artikel: