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].