Website-Suche

So installieren Sie PHP 7 für Apache oder Nginx unter Ubuntu 14.04 und 14.10


Monate nach der Veröffentlichung der stabilen Version von PHP 7.0 könnte jetzt der richtige Zeitpunkt für Sie sein, über ein Upgrade von den alten Versionen nachzudenken.

Bei Upgrades ist immer Vorsicht geboten, insbesondere in einer Produktionsumgebung. Es ist jedoch eine gute Idee, jetzt ein Upgrade durchzuführen, um Geschwindigkeitsverbesserungen sowie Funktionen wie Skalartyphinweise und vieles mehr zu nutzen.

Sie können zwei Versionen von PHP auf Ihrem System installieren und eine zu Testzwecken verwenden. Denken Sie jedoch daran, dass Sie zu einem bestimmten Zeitpunkt nur ein PHP-Apache-Modul aktivieren.

Dieser Leitfaden konzentriert sich auf das Upgrade von PHP 5.X unter Verwendung von mod_php in Verbindung mit dem Apache-Webserver oder PHP-FPM > in Verbindung mit dem Nginx-Webserver.

  1. Installieren Sie PHP 7 in Ubuntu 14.04 und 14.10
  2. Upgrade auf PHP 7.0 unter Apache Web Server
  3. Upgrade auf PHP 7.0 unter Nginx Web Server

Lassen Sie uns nun untersuchen, wie Sie auf die neueste PHP-Version aktualisieren und Ihr System für die Verwendung konfigurieren können.

So installieren Sie PHP 7 in Ubuntu 14.04 und 14.10

Zuerst müssen Sie das von Ondřej Surý für Debian und seine Derivate wie Ubuntu verwaltete PPA hinzufügen, indem Sie den folgenden Befehl ausführen:

sudo add-apt-repository ppa:ondrej/php

Als nächstes aktualisieren Sie Ihr System wie folgt:

sudo apt-get update

Jetzt ist alles vorbereitet und Sie können PHP 7.0 installieren, aber wir werden uns in verschiedenen Abschnitten mit dem Upgrade für Apache und Nginx befassen.

Upgrade auf PHP 7.0 unter Apache Web Server

Dieser Abschnitt ist für Systeme gedacht, auf denen Apache ausgeführt wird, wobei PHP-Code mit dem Modul mod_php ausgeführt wird. Installieren Sie die neueste PHP-Version, indem Sie den folgenden Befehl ausführen:

sudo apt-get install php7.0
Beispielausgabe

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libapache2-mod-php7.0 libssl1.0.2 php-common php7.0-cli php7.0-common
  php7.0-json php7.0-opcache php7.0-readline
Suggested packages:
  php-pear
The following NEW packages will be installed:
  libapache2-mod-php7.0 libssl1.0.2 php-common php7.0 php7.0-cli php7.0-common
  php7.0-json php7.0-opcache php7.0-readline
0 upgraded, 9 newly installed, 0 to remove and 80 not upgraded.
Need to get 4,371 kB of archives.
After this operation, 17.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

PHP wurde jetzt auf Ihrem System aktualisiert. Wenn Sie jedoch ein MySQL-Datenbankverwaltungssystem verwenden, müssen Sie den folgenden Befehl ausführen, um die PHP-MySQL-Bindung zu aktualisieren Außerdem müssen Sie einige nützliche Module wie Curl, GD, Cli, JSON usw. installieren.

sudo apt-get install php7.0-mysql php7.0-cli php7.0-gd php7.0-json 

Wenn Sie zusätzliche PHP7.0-Module installieren möchten, können Sie den Befehl apt-cache verwenden, um alle PHP7.0-Module aufzulisten und zu installieren.

sudo apt-cache search php7
Beispielausgabe

php-radius - radius client library for PHP
php-http - PECL HTTP module for PHP Extended HTTP Support
php-uploadprogress - file upload progress tracking extension for PHP
php-mongodb - MongoDB driver for PHP
php7.0-common - documentation, examples and common module for PHP
libapache2-mod-php7.0 - server-side, HTML-embedded scripting language (Apache 2 module)
php7.0-cgi - server-side, HTML-embedded scripting language (CGI binary)
php7.0-cli - command-line interpreter for the PHP scripting language
php7.0-phpdbg - server-side, HTML-embedded scripting language (PHPDBG binary)
php7.0-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
libphp7.0-embed - HTML-embedded scripting language (Embedded SAPI library)
php7.0-dev - Files for PHP7.0 module development
php7.0-curl - CURL module for PHP
php7.0-enchant - Enchant module for PHP
php7.0-gd - GD module for PHP
php7.0-gmp - GMP module for PHP
php7.0-imap - IMAP module for PHP
php7.0-interbase - Interbase module for PHP
php7.0-intl - Internationalisation module for PHP
php7.0-ldap - LDAP module for PHP
php7.0-mcrypt - libmcrypt module for PHP
php7.0-readline - readline module for PHP
php7.0-odbc - ODBC module for PHP
php7.0-pgsql - PostgreSQL module for PHP
php7.0-pspell - pspell module for PHP
php7.0-recode - recode module for PHP
php7.0-snmp - SNMP module for PHP
php7.0-tidy - tidy module for PHP
php7.0-xmlrpc - XMLRPC-EPI module for PHP
php7.0-xsl - XSL module for PHP (dummy)
php7.0 - server-side, HTML-embedded scripting language (metapackage)
php7.0-json - JSON module for PHP
php-all-dev - package depending on all supported PHP development packages
php7.0-sybase - Sybase module for PHP
php7.0-sqlite3 - SQLite3 module for PHP
php7.0-mysql - MySQL module for PHP
php7.0-opcache - Zend OpCache module for PHP
php-apcu - APC User Cache for PHP
php-xdebug - Xdebug Module for PHP
php-imagick - Provides a wrapper to the ImageMagick library
php-ssh2 - Bindings for the libssh2 library
php-redis - PHP extension for interfacing with Redis
php-memcached - memcached extension module for PHP, uses libmemcached
php-apcu-bc - APCu Backwards Compatibility Module
php-amqp - AMQP extension for PHP
php7.0-bz2 - bzip2 module for PHP
php-rrd - PHP bindings to rrd tool system
php-uuid - PHP UUID extension
php-memcache - memcache extension module for PHP
php-gmagick - Provides a wrapper to the GraphicsMagick library
php-smbclient - PHP wrapper for libsmbclient
php-zmq - ZeroMQ messaging bindings for PHP
php-igbinary - igbinary PHP serializer
php-msgpack - PHP extension for interfacing with MessagePack
php-geoip - GeoIP module for PHP
php7.0-bcmath - Bcmath module for PHP
php7.0-mbstring - MBSTRING module for PHP
php7.0-soap - SOAP module for PHP
php7.0-xml - DOM, SimpleXML, WDDX, XML, and XSL module for PHP
php7.0-zip - Zip module for PHP
php-tideways - Tideways PHP Profiler Extension
php-yac - YAC (Yet Another Cache) for PHP
php-mailparse - Email message manipulation for PHP
php-oauth - OAuth 1.0 consumer and provider extension
php-propro - propro module for PHP
php-raphf - raphf module for PHP
php-solr - PHP extension for communicating with Apache Solr server
php-stomp - Streaming Text Oriented Messaging Protocol (STOMP) client module for PHP
php-gearman - PHP wrapper to libgearman
php7.0-dba - DBA module for PHP

Sobald PHP7.0 und seine Module installiert sind, können Sie Ihren Apache-Webserver neu starten und die PHP-Version wie gezeigt überprüfen:

sudo service apache2 restart
php -v
Beispielausgabe

PHP 7.0.7-1+donate.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

Sie können PHP7-Informationen auch überprüfen, indem Sie eine info.php-Datei im Verzeichnis /var/www/html erstellen.


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

Platzieren Sie den folgenden Code und rufen Sie die Seite über http://server_IP-address/info.php auf.


<?php
phpinfo();
?>

Upgrade auf PHP 7.0 unter Nginx Web Server

Dieser Abschnitt führt Sie durch den Prozess des Upgrades auf PHP7.0 und der Aktualisierung von PHP-FPM mit dem Nginx-Webserver, wobei PHP-Code mit PHP-FPM< ausgeführt wird.

Führen Sie den folgenden Befehl aus, um die neuesten PHP-FPM-Pakete zu installieren:

sudo apt-get install php7.0
sudo apt-get install php7.0-fpm

PHP wurde jetzt aktualisiert, aber wenn Sie MySQL verwenden, müssen Sie den folgenden Befehl ausführen, um die PHP-MySQL-Bindung und einige zusätzliche Module wie gezeigt zu aktualisieren:

sudo apt-get install php7.0-mysql php7.0-cli php7.0-gd php7.0-json 

Als Nächstes müssen Sie die Anweisung fastcgi_pass in die Datei /etc/nginx/sites-enabled/default oder alle Dateien für Ihre virtuellen Sites einfügen, die PHP verwenden und unterstützen müssen , da sich der Pfad der PHP-FPM-Socket-Datei, die PHP zur Kommunikation mit Nginx verwendet, geändert hat.

Verwenden Sie Ihren bevorzugten Editor und öffnen Sie die Datei wie folgt zur Bearbeitung:


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

Ändern oder ergänzen Sie es wie folgt:


location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
                return 404;
        }
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
}

Starten Sie dann Nginx und php-fpm wie folgt neu:


sudo service nginx restart
sudo service php7.0-fpm restart

Abschließend können Sie testen, ob PHP funktioniert oder nicht, indem Sie zunächst Ihre PHP-Version überprüfen und sie dann mit dem Webserver testen.

php -v

Sie erhalten Informationen zu Ihren PHP-Paketen, indem Sie eine kleine info.php-Datei im Verzeichnis /usr/share/nginx/html/ schreiben:

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

Fügen Sie diesen Code in Ihre info.php-Datei ein:

<?php
phpinfo();
?>

Speichern und beenden Sie die Datei.

Öffnen Sie Ihren Webbrowser, geben Sie http://server_IP-address/info.php ein und Sie sollten die Seite unten sehen können, die Ihnen Details zu Ihrem PHP-Paket zeigt.

Sie können PHP 7.0 jetzt problemlos auf Ihrem Ubuntu 14.04/14.10-System verwenden, und ich hoffe, dass Sie diesen Leitfaden hilfreich finden.

Für weitere Informationen zum Upgrade von PHP oder Fragen sind Ihre Kommentare im Kommentarbereich unten willkommen.