GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie PHP 7.2 auf Ubuntu 16.04

Die Verwendung von PHP 7.2 auf einem dedizierten Ubuntu-Server wird gegenüber früheren PHP-Versionen aus mehreren Gründen dringend empfohlen, erstens aus Sicherheitsgründen. Der aktive Support für PHP 7.2 läuft bis zum 30. November 2019 und der Sicherheitssupport bis zum 30. November 2020. Ältere Versionen wie 7.0 und alle 5.6 und darunter erhalten keinen Support mehr und können offene Sicherheitslücken auf einem Server hinterlassen, wenn sie nicht ersetzt werden . Ein weiterer Hauptgrund für ein Upgrade ist die große Leistungssteigerung gegenüber früheren Versionen, wenn PHP 7.2 installiert ist und das OPcache-Modul verwendet . Dies kann die Ladezeit Ihrer Webseite erheblich verkürzen! Wenn Sie eine Website lokal entwickeln oder auf einem der Ubuntu VPS oder dedizierten Server von Liquid Web starten, ist die Verwendung von PHP 7.2 oder neuer der richtige Weg.

Preflight:Überprüfen Sie die Serverumgebung
  • Richtige Berechtigungen: Stellen Sie zunächst sicher, dass Sie über die erforderlichen Root- oder Sudo-Berechtigungen verfügen, um das System und die Anwendungen auf dem Server verwalten zu können. Wenn Sie nur Zugriff auf einen Nicht-Root-Benutzer auf dem System haben, müssen Sie möglicherweise weitere Berechtigungen vom Serveradministrator erhalten.
  • Vorhandene PHP-Versionen: Suchen Sie nach einer vorhandenen PHP-Version. Wenn Sie bei der ersten Installation des Ubuntu-Images auf dem Server den Standard-LAMP-Stack ausgewählt haben, ist es standardmäßig PHP 7.0. Wenn Sie ein anderes Image verwendet oder eine einfache Installation durchgeführt haben, haben Sie möglicherweise keine Version von PHP auf dem Server. Um die PHP-Version zu überprüfen, greifen Sie auf das Terminal zu und führen Sie Folgendes aus:
user@test:~# php -v
 PHP 7.0.30-0ubuntu0.16.04.1 (cli) ( NTS )

Wenn Sie eine ältere PHP-Version sehen, müssen Sie die neue Version installieren und später auf die Version wechseln, zu der Apache eine Verbindung herstellt. Wenn „Command php not found“ angezeigt wird, ist derzeit keine PHP-Version installiert .

  • Erstellen einer Schnellsicherung: Wenn Sie eine vorhandene PHP-Version haben, sollten Sie vor dem Upgrade möglicherweise eine Sicherungskopie aller Konfigurationen erstellen, falls es Probleme gibt (z. B. wenn Ihr Site-Code nicht kompatibel ist) und Sie ein erneutes Downgrade durchführen müssen. Sie können das aktuelle Konfigurationsverzeichnis überprüfen, indem Sie Folgendes ausführen:
user@test:~# php --ini
 Configuration File (php.ini) Path: /etc/php/7.0/cli
 Loaded Configuration File:         /etc/php/7.0/cli/php.ini
 Scan for additional .ini files in: /etc/php/7.0/cli/conf.d

Dies zeigt, dass sich die Konfigurationen alle in /etc/php/7.0/ befinden Verzeichnis. Wenn Sie also ein schnelles Backup erstellen möchten, können Sie einen Befehl wie den folgenden ausführen:

user@test:~# sudo cp -a /etc/php/7.0/ /etc/php/7.0.backup

Außerdem können Sie eine Liste vorhandener PHP-Module speichern, indem Sie Folgendes ausführen:

user@test:~# sudo cp -a /etc/php/7.0/ /etc/php/7.0.backup

Dies kann beim Vergleich der vorhandenen Module mit den Modulen in PHP 7.2 hilfreich sein.

Installation von PHP 7.2

Das offizielle Repository für PHP auf Ubuntu stammt von Ondřej Surý auf dem Launchpad. Um es Ihrem System hinzuzufügen, müssen Sie den folgenden Befehl ausführen:

user@test:~# sudo add-apt-repository ppa:ondrej/php

Drücken Sie Eingabe wenn es Sie dazu auffordert. Dadurch kann Ihr System das Repository als Quelle für neue Software verwenden. Der nächste Befehl ruft die Liste der verfügbaren Softwarepakete für Ihr System ab:

user@test:~# sudo apt-get update

Danach können Sie mit der Installation fortfahren:

user@test:~# sudo apt-get install php7.2

Es sollte mehrere verschiedene Pakete anzeigen, die installiert werden, und wie viel Speicherplatz sie insgesamt belegen. Wenn Sie dazu aufgefordert werden, geben Sie "Y" ein “ und schicke es ab. Nach ein paar Augenblicken sollte die Installation abgeschlossen sein, überprüfen Sie die PHP-Version mit:

user@test:~# php -v
 PHP 7.2.13-1+ubuntu16.04.1+deb.sury.org+1

Es sollte jetzt PHP 7.2 anzeigen, aber jetzt müssen wir Apache konfigurieren, um die neuere Version zu verwenden.

Konfigurieren von Apache zur Verwendung von PHP 7.2

Ubuntu 16.04 verwendet einige verschiedene Befehle, um Apache-Module zu verwalten, sodass die Art und Weise, wie eine bestimmte PHP-Version verwendet wird, davon abhängt, welches Modul geladen ist. Sie können die Liste der verfügbaren Module anzeigen, indem Sie Folgendes ausführen:

user@test:~# ls /etc/apache2/mods-available/php*
 /etc/apache2/mods-available/php7.0.conf
 /etc/apache2/mods-available/php7.0.load
 /etc/apache2/mods-available/php7.2.conf
 /etc/apache2/mods-available/php7.2.load

Möglicherweise haben Sie auch andere Module, die standardmäßige LAMP-Stack-Installation hätte 7.0 und die neue 7.2-Installation, die wir gerade erstellt haben, aber das Ausführen des nächsten Befehls zeigt, dass 7.0 noch aktiv ist:

user@test:~# ls /etc/apache2/mods-enabled/php*
/etc/apache2/mods-enabled/php7.0.conf
/etc/apache2/mods-enabled/php7.0.load

Um das auf die neuere Version 7.2 umzustellen, deaktivieren Sie zuerst die ältere PHP-Version:

user@test:~# sudo a2dismod php7.0

Aktivieren Sie dann PHP 7.2:

user@test:~# sudo a2enmod php7.2

Überprüfen Sie vor dem Neustart von Apache die Apache-Konfigurationssyntax, indem Sie Folgendes ausführen:

user@test:~# apachectl -t
Syntax OK

Wenn es sagt, dass die Syntax OK ist, starten Sie Apache neu:

user@test:~# sudo service apache2 restart

Überprüfen der PHP-Version von Apache

Um Ihre Arbeit zu überprüfen, führen Sie den vorherigen Befehl erneut aus, um zu sehen, welches Modul geladen ist, und es sollte die PHP 7.2-Version anzeigen:

user@test:~# ls /etc/apache2/mods-enabled/php*
/etc/apache2/mods-enabled/php7.2.conf
/etc/apache2/mods-enabled/php7.2.load

Wenn Sie nicht dieselben Ergebnisse wie in den letzten paar Befehlen sehen, überprüfen Sie die Rechtschreibung und Syntax der letzten paar Befehle erneut und stellen Sie sicher, dass sudo wurde eingegeben, wenn Sie nicht als Root-Benutzer ausgeführt werden.

Um es dann auf Ihrer Website zu testen, empfehlen wir, eine phpinfo-Datei zu erstellen, die Sie auf Ihrer Domain anzeigen können. Diese zeigt die PHP-Version sowie Informationen über aktuelle Konfigurationen, Variablen und alle hinzugefügten Module. Erstellen Sie eine neue .php Datei im Home-Ordner Ihrer Website oder im Dokumentenstammverzeichnis von Apache (/var/www/html standardmäßig) und fügen Sie diesen Code ein:

<?php phpinfo(); ?>

Wenn Sie dann die Seite im Browser aufrufen, sollte sie in etwa so aussehen:

Wenn Sie bereits eine Website mit der vorherigen PHP-Version hatten, testen Sie sie jetzt und prüfen Sie, ob es Probleme gibt. Wenn Ihr Code nicht kompatibel ist oder Fehler anzeigt, können Sie versuchen, weitere Diagnosen zu stellen, oder wenn Sie die Website sofort sichern müssen, können Sie die PHP-Version erneut herunterstufen, indem Sie a2dismod ausführen und a2enmod Befehle, um PHP 7.2 zu deaktivieren und dann 7.0 oder eine andere frühere Version, die Sie auf dem Server hatten, zu aktivieren, und dann Apache erneut zu starten.

Einige Sites zeigen jetzt möglicherweise einen Fehler an, der besagt, dass ein Modul fehlt und nicht ausgeführt werden kann, oder wenn Sie eine neue Site entwickeln und eine Liste der benötigten Module haben, kann Ihnen der nächste Abschnitt helfen, neue Module hinzuzufügen.

Hinzufügen von Modulen zu PHP 7.2

Die Umstellung auf PHP 7.2 behält nicht automatisch alle gleichen Module aus früheren PHP-Versionen bei. Wenn Sie die Liste nicht mit einer früheren PHP-Version vergleichen müssen, geben Sie zum Installieren von Grundmodulen, die Sie benötigen, zuerst den folgenden Befehl ein. Aber drücken Sie nicht die Eingabetaste, wenn Sie die TAB-Taste drücken zweimal drücken, sollten Sie eine Liste der verfügbaren Module speziell für 7.2::

erhalten

@test:~# sudo apt-get install php7.2[tab][tab]

Beispielausgabe:
php7.2 php7.2-enchant php7.2-mbstring php7.2-snmp
php7.2-bcmath php7.2-fpm php7.2-mysql php7.2-soap
php7.2-bz2 php7.2-gd php7.2-odbc php7.2-sqlite3
php7.2-cgi php7.2-gmp php7.2-opcache php7.2-sybase
php7.2-cli php7.2-imap php7.2-pgsql php7.2-tidy
php7.2-common php7.2-interbase php7.2-phpdbg php7.2-xml
php7.2-curl php7.2-intl php7.2-pspell php7.2-xmlrpc
php7.2-dba php7.2-json php7.2-readline php7.2-xsl
php7.2-dev php7.2-ldap php7.2-recode php7.2-zip

Dies ist keine vollständige Liste, daher müssen Sie möglicherweise nachschlagen, wie Sie andere Module installieren können, die Sie möglicherweise benötigen. Sie können die gewünschten Module eingeben und mehrere mit demselben Installationsbefehl hinzufügen, wie zum Beispiel:

user@test:~# sudo apt-get install php7.2-opcache php7.2-mbstring php-memcached

Wenn Sie die Liste der Module aus einer früheren PHP-Version mit dem Befehl weiter oben in der Anleitung gespeichert haben, können Sie eine Liste der Module in PHP 7.2 speichern und sie mit der vorherigen Version vergleichen. Ausführen:

php -m > /tmp/7.2.modulelist.txt

Um sie dann mit der zuvor erstellten Liste zu vergleichen, führen Sie Folgendes aus:

user@test:~# diff  /tmp/7.0.modulelist.txt /tmp/7.2.modulelist.txt
15,16d14
< mysqli
< mysqlnd
21d18
< pdo_mysql
28d24
< soap
29a26
> sodium

Oder wenn Sie die beiden Listen visueller vergleichen möchten, führen Sie Folgendes aus:

user@test:~# vimdiff  /tmp/7.0.modulelist.txt /tmp/7.2.modulelist.txt

Dadurch wird eine Seite wie diese im Terminal angezeigt:

In diesem Beispiel werden die verschiedenen MySQL-Module und Soaps in der Liste der 7.0-Module auf der linken Seite angezeigt, fehlen aber in der 7.2-Version auf der rechten Seite, und das Natriummodul befindet sich auf 7.2, war aber nicht in 7.0.

Für dieses Beispiel können wir also die fehlenden Module installieren mit:

user@test:~# sudo apt-get install php7.2-mysql php7.2-soap

Nach der Installation können wir eine aktualisierte Liste der Module speichern und erneut vergleichen:

user@test:~# php -m > /tmp/7.2.modulelist.updated.txt
diff /tmp/7.0.modulelist.txt /tmp/7.2.modulelist.updated.txt
29a30
> sodium

Nur das Natriummodul unterscheidet sich zwischen den Modullisten und ist jetzt bereit für die Entwicklung! Hoffentlich hat Ihnen diese Anleitung bei Ihrem Upgrade auf PHP 7.2 geholfen! Wenn Sie Probleme hatten oder weitere Hilfe mit Ihrem Liquid Web Ubuntu Server benötigen, teilen Sie dies bitte unserem Linux-Support-Team mit!


Ubuntu
  1. So installieren Sie PHP 7.4 / 7.3 / 7.2 unter Ubuntu 18.04 / Ubuntu 16.04

  2. So installieren Sie PHP 8.0 unter Ubuntu 20.04 / Ubuntu 18.04

  3. So installieren Sie Composer unter Ubuntu 20.04

  4. So installieren Sie XCache unter Ubuntu 15.04

  5. So installieren Sie PHP 7.3 auf Ubuntu 16.04

So installieren Sie PHP 8.0 auf Ubuntu 20.04

So installieren Sie PHP 8 auf Ubuntu 20.04

So installieren Sie Memcached auf Ubuntu 15.04

So installieren Sie PHP 8.0 unter Ubuntu 20.04 / 18.04

So installieren Sie PHP unter Ubuntu 22.04

So installieren Sie PHP unter Ubuntu 22.04