Einführung
Das aktuelle stabile Paket-Repository von Debian enthält möglicherweise nicht immer eine aktuelle Software, mit der es übereinstimmen muss
unsere Erwartungen. Dafür gibt es einen sehr guten Grund, wie z. B. ein stabiles System als Gegenleistung für die Ausführung modernster Software.
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 (da es überhaupt kein PHP 6 gibt).
Die Behauptungen der aktuellen PHP-Entwickler stellen PHP 7 in Sachen 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 2-mal schnellere Leistung und einen um 50 % besseren Speicherverbrauch als 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.
Referenz:zend.com/en/resources/php-7
Ziel
Ein Geschwindigkeitsvergleich zwischen PHP 5.6 und dem neuesten PHP 7.1.0 ist nicht Ziel dieses Artikels. Das Ziel ist jedoch, die neueste PHP 7-Version auf dem Debian 8-System zu installieren. Zusätzlich werden wir
PHP-FPM (FastCGI Process Manager) installieren. Diese Anleitung bietet zwei mögliche Installationen.
Zuerst wird die Anleitung compile-php-debian
verwenden Skript verfügbar unter github.com/linuxconfig/compile-php-debian
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
sudo
Befehl ist erforderlich
Schwierigkeit
MITTEL
Konventionen
- # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von
sudo
Befehl - $ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden
Anleitung
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
auf zugehöriges Paket auf Ihrem System:
# 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 aufgeführt sind:
# REMOVE=$(dpkg -l | grep -E "^ii.*php" | cut -d " " -f3) # dpkg -P $REMOVE
Skriptgesteuerte automatische Installation
Die folgende automatische Skriptinstallation 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 von compile-php-debian
Skript:
$ git clone https://github.com/linuxconfig/compile-php-debian.git
Navigieren Sie als Nächstes zu compile-php-debian
Verzeichnis:
$ cd compile-php-debian
Entscheiden Sie nun einfach, welche PHP 7-Version Sie installieren möchten und geben Sie Ihre gewählte Versionsnummer als Argument für install_php.sh
ein Skript. Um beispielsweise 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 service
ausführen Befehl:
# service php7-fpm start # service php7-fpm status [ ok ] php-7.1.0-fpm is running.
Der PHP-FPM-Daemon lauscht jetzt auf einem localhost
Portnummer 9000
. Sie können auch versuchen, sich mit cgi-fcgi
direkt mit dem PHP-FPM-Daemon zu verbinden Befehl gefunden in libfcgi0ldbl
Paket:
# 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
Installationsvoraussetzungen
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-Download
Der wahrscheinlich einfachste Weg, um an den PHP-Quellcode zu kommen, besteht darin, das Repository von PHP 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
Einmal der git clone
Der Vorgang ist abgeschlossen, Sie erhalten 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 sie direkt von http://php.net/downloads.php
herunterladen . Der Vorteil in diesem Fall ist eine minimale Anforderung an die Downloadgröße. Sie können jedoch nicht
selektiv verschiedene Versionen für mehrere Bereitstellungen auswählen.
Zusammenstellung des PHP-Quellcodes
In diesem Stadium sind wir bereit, eine PHP-Quellcode-Kompilierung durchzuführen. Navigieren Sie zu einem zuvor heruntergeladenen php-src
Verzeichnis:
$ cd php-src
Als nächstes entscheiden Sie, welche PHP-Version Sie kompilieren und installieren möchten. Führen Sie das folgende git
aus Befehl, 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 git checkout
Befehl, um zu Ihrem 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 das --prefix
und --with-config-file-scan-dir
Konfigurationsstrings, die Installations- und Konfigurationseinstellungen
definieren. Im Folgenden finden Sie eine Liste der gebräuchlichsten PHP-Kompilierungsoptionen.
Fühlen Sie sich frei, die Liste zu aktualisieren, um sie Ihren Bedürfnissen anzupassen. Abhängig von Ihrer Auswahl müssen Sie möglicherweise zusätzliche
Voraussetzungen 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 wird CONFIGURE_STRINGS
setzen Shell-Variable, die alle Ihre PHP-Kompilierungsoptionen enthält. Als nächstes müssen wir unsere Konfigurations- 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
Als nächstes führen Sie die Kompilierungskonfiguration durch:
$ ./configure $CONFIGURE_STRINGS
Wenn durch das obige configure
keine Fehler erzeugt wurden Befehl, dann ist es an der Zeit, die Kompilierung durch Ausführen eines make
durchzuführen Befehl:
$ make .... Build complete. Don't forget to run 'make test'.
Wenn die Kompilierung des PHP-Quellcodes abgeschlossen ist, führen Sie optional make test
aus Befehl oder führen Sie make install
aus Befehl, um alle zuvor kompilierten Binärdateien in ihre
relevanten Verzeichnisse 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/
Alles erledigt. PHP 7.1.0 ist jetzt installiert. Ausführung bestätigen:
$ /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
Installation des FastCGI-Prozessmanagers
In diesem Abschnitt werden wir PHP-FPM installieren, das als Front für die Installation mit Webservern wie Nginx oder Apache verwendet werden soll. Erstellen Sie zuerst einen symbolischen Link von neu kompiliertem/usr/local/php-$version/sbin/php-fpm
Binary, um unsere Installation sauberer zu machen:
# ln -s /usr/local/php-7.1.0/sbin/php-fpm /usr/local/php-7.1.0/sbin/php-7.1.0-fpm
Noch im php-src
Verzeichnis, richten Sie eine Standard-php.ini
ein Konfiguration:
# cp php.ini-production /usr/local/php-7.1.0/lib/php.ini
PHP-FPM-Daemon-Konfigurationsdatei aktivieren:
# 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 /usr/local/php-7.1.0/etc/php-fpm.conf
config-Datei 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
Zusätzliche PHP-Module aktivieren
Fügen Sie alle Modulanweisungen, die Sie aktivieren möchten, in Ihre php.ini
ein Konfigurationsdatei. Um beispielsweise das OpCache-PHP-Modul von Zend zu aktivieren, führen Sie Folgendes aus:
# echo "zend_extension=opcache.so" >> /usr/local/php-7.1.0/lib/php.ini
Konfigurieren Sie das PHP7-FPM-init.d-Skript
Fügen Sie zunächst eine folgende modifizierte php7-fpm.init
ein script in /etc/init.d/
Verzeichnis:
# 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, damit sie zu Ihrer installierten PHP VERSION
passen :
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 zuletzt /etc/init.d/php7-fpm
ausführbar und führen Sie udpate-rc.d
aus Befehl:
# chmod +x /etc/init.d/php7-fpm # update-rc.d php7-fpm defaults
Starten Sie den PHP-FPM-Daemon
Jetzt sollten Sie in der Lage sein, den PHP-FPM-Daemon einfach zu starten, indem Sie service
ausführen Befehl:
# service php7-fpm start # service php7-fpm status [ ok ] php-7.1.0-fpm is running.
Der PHP-FPM-Daemon lauscht jetzt auf einem localhost
Portnummer 9000
.