So führen Sie ein Upgrade auf PHP 7 unter Ubuntu 14.04 durch

Einführung

PHP 7, das am 3. Dezember 2015 veröffentlicht wurde, verspricht erhebliche Geschwindigkeitsverbesserungen gegenüber früheren Sprachversionen sowie neue Funktionen wie Hinweise auf skalare Typen. In diesem Handbuch wird erläutert, wie Sie schnell ein Upgrade eines Apache- oder Nginx-Webservers mit PHP 5.x (jeder Version) auf PHP 7 durchführen.

Voraussetzungen

In diesem Handbuch wird davon ausgegangen, dass Sie PHP 5.x auf einem Ubuntu 14.04-Computer ausführen und entweder + mod_php + in Verbindung mit Apache oder PHP-FPM in Verbindung mit Nginx verwenden. Es wird auch vorausgesetzt, dass Sie einen Nicht-Root-Benutzer haben, der mit den Rechten "+ sudo +" für administrative Aufgaben konfiguriert ist.

Hinzufügen eines PPA für PHP 7.0-Pakete

Ein * Personal Package Archive * oder PPA ist ein Apt-Repository, das auf Launchpad gehostet wird. Mit PPAs können Entwickler von Drittanbietern Pakete für Ubuntu außerhalb der offiziellen Kanäle erstellen und verteilen. Sie sind häufig nützliche Quellen für Beta-Software, geänderte Builds und Backports zu älteren Versionen des Betriebssystems.

Ondřej Surý pflegt die PHP-Pakete für Debian und bietet a PPA für PHP 7.0 unter Ubuntu an. Bevor Sie etwas anderes tun, melden Sie sich bei Ihrem System an und fügen Sie Ondřejs PPA zu den Apt-Quellen des Systems hinzu:

sudo add-apt-repository ppa:ondrej/php

Es wird eine Beschreibung der PPA angezeigt, gefolgt von einer Aufforderung zum Fortfahren. Drücken Sie die Eingabetaste, um fortzufahren.

Aktualisieren Sie nach der Installation des PPA den lokalen Paketcache, um dessen Inhalt einzuschließen:

sudo apt-get update

Da wir nun Zugriff auf Pakete für PHP 7.0 haben, können wir die vorhandene PHP-Installation ersetzen.

Upgrade von + mod_php + mit Apache

In diesem Abschnitt wird der Upgrade-Prozess für ein System beschrieben, das Apache als Webserver und + mod_php + zum Ausführen von PHP-Code verwendet. Wenn Sie stattdessen Nginx und PHP-FPM ausführen, fahren Sie mit dem nächsten Abschnitt fort.

Installieren Sie zuerst die neuen Pakete. Dadurch werden alle wichtigen PHP-Pakete aktualisiert, mit Ausnahme von "+ php5-mysql", das entfernt wird.

sudo apt-get install php7.0

Wenn Sie MySQL verwenden, müssen Sie die aktualisierten PHP-MySQL-Bindungen erneut hinzufügen:

sudo apt-get install php7.0-mysql

Upgrade von PHP-FPM mit Nginx

In diesem Abschnitt wird der Aktualisierungsprozess für ein System beschrieben, das Nginx als Webserver und PHP-FPM zur Ausführung von PHP-Code verwendet.

Installieren Sie zuerst das neue PHP-FPM-Paket und seine Abhängigkeiten:

sudo apt-get install php7.0-fpm

Sie werden aufgefordert, fortzufahren. Drücken Sie die Eingabetaste, um die Installation abzuschließen.

Wenn Sie MySQL verwenden, müssen Sie die PHP-MySQL-Bindungen erneut installieren:

sudo apt-get install php7.0-mysql

Aktualisieren von Nginx-Sites zur Verwendung eines neuen Socket-Pfads

Nginx kommuniziert mit PHP-FPM über einen Unix-Domain-Socket. Sockets werden einem Pfad im Dateisystem zugeordnet, und unsere PHP 7-Installation verwendet standardmäßig einen neuen Pfad:

PHP 5 PHP 7

/var/run/php5-fpm.sock

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

Öffne die "+ default " Site-Konfigurationsdatei mit " nano +" (oder einem Editor deiner Wahl):

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

Ihre Konfiguration kann etwas abweichen. Suchen Sie nach einem Block, der mit "+ location ~ \ .php $ {" beginnt, und einer Zeile, die etwa wie " fastcgi_pass unix: /var/run/php5-fpm.sock; " aussieht. Ändern Sie dies, um " unix: / var / run / php / php7.0-fpm.sock +" zu verwenden.

/ etc / nginx / sites-enabled / default

server {
   listen 80 default_server;
   listen [::]:80 default_server ipv6only=on;

   root /var/www/html;
   index index.php index.html index.htm;

   server_name ;

   location / {
       try_files $uri $uri/ =404;
   }

   error_page 404 /404.html;
   error_page 500 502 503 504 /50x.html;
   location = /50x.html {
       root /usr/share/nginx/html;
   }

   location ~ \.php$ {
       try_files $uri =404;
       fastcgi_split_path_info ^(.+\.php)(/.+)$;

       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       include fastcgi_params;
   }
}

Beenden und speichern Sie die Datei. In + nano + können Sie dies durch Drücken von * Strg-X * zum Beenden, * y * zum Bestätigen und * Eingabetaste * zum Bestätigen des zu überschreibenden Dateinamens erreichen.

Sie sollten diesen Vorgang für alle anderen virtuellen Sites wiederholen, die in "+ / etc / nginx / sites-enabled +" definiert sind und PHP unterstützen müssen.

Jetzt können wir + nginx neu starten:

sudo service nginx restart

PHP testen

Wenn ein Webserver konfiguriert und die neuen Pakete installiert sind, sollten wir überprüfen können, ob PHP funktioniert. Überprüfen Sie zunächst die installierte PHP-Version in der Befehlszeile:

php -v
OutputPHP 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

Sie können auch eine Testdatei im Dokumentenstamm des Webservers erstellen. Abhängig von Ihrem Server und Ihrer Konfiguration kann dies eine der folgenden sein:

  • + / var / www / html

  • + / var / www / +

  • + / usr / share / nginx / html

Öffnen Sie mit + nano + eine neue Datei mit dem Namen + info.php + im Dokumentenstamm. In Apache wäre dies standardmäßig:

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

Unter Nginx können Sie stattdessen Folgendes verwenden:

sudo nano /usr/share/nginx/html/info.php

Fügen Sie den folgenden Code ein:

info.php

<?php
phpinfo();
?>

Verlasse den Editor und speichere "+ info.php". Laden Sie nun folgende Adresse in Ihren Browser:

http:///info.php

Sie sollten Informationen zur PHP-Version und -Konfiguration für PHP 7 sehen. Sobald Sie dies überprüft haben, ist es am sichersten, "+ info.php" zu löschen:

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

Fazit

Sie haben jetzt eine funktionierende PHP 7-Installation. Von hier aus können Sie den Getting Ready for PHP 7 -Blogpost von Erika Heidi lesen und sich den https-Artikel ansehen : //secure.php.net/manual/en/migration70.php [offizieller Migrationsleitfaden].