Wie installiere ich PHP 7?

116

PHP 7 ist gestern herausgekommen und ich würde es gerne ausprobieren.

PHP 7.0.0 enthält eine neue Version der Zend Engine, zahlreiche Verbesserungen und neue Funktionen wie

  • Verbesserte Leistung: PHP 7 ist bis zu doppelt so schnell wie PHP 5.6
  • Deutlich reduzierter Speicherbedarf
  • Abstrakter Syntaxbaum
  • Konsistente 64-Bit-Unterstützung
  • Verbesserte Ausnahmehierarchie
  • Viele schwerwiegende Fehler wurden in Ausnahmen konvertiert
  • Sicherer Zufallsgenerator
  • Alte und nicht unterstützte SAPIs und Erweiterungen wurden entfernt
  • Der Nullkoaleszenzoperator (??)
  • Rückgabe- und Skalartypdeklarationen
  • Anonyme Klassen
  • Kostenfrei behauptet

php.net


Ist es möglich, es auf der aktuellen Ubuntu-Version zu installieren?

Gibt es derzeit Einschränkungen oder bekannte Kompatibilitätsprobleme?

hg8
quelle
1
PHP 7 ist Standard unter Ubuntu 16, Xenial.
Buttle Butkus

Antworten:

180

Sie können Folgendes tun:

sudo apt-get install python-software-properties software-properties-common
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt-get update

Optionales Löschen von PHP 5:

sudo apt-get remove php5-common -y

Oder löschen Sie es direkt einschließlich der Konfigurationsdateien:

sudo apt-get purge php5-common -y

Und schließlich installieren Sie PHP 7:

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

Bereinigen Sie nicht benötigte Pakete anschließend optional:

sudo apt-get --purge autoremove -y

Alternativ können Sie PHP 7.0 von Quellen mithilfe dieses Skripts oder anhand der Anweisungen in diesem Blog installieren .

BEARBEITEN:

PHP5 wurde jetzt durch PHP7 als Standard-PHP in Ubuntu 16.4 ersetzt, um PHP7 unter Ubuntu 16.04 zu installieren:

sudo apt-get install php7.0 

Oder

sudo apt-get install php
Tshilidzi Mudau
quelle
12
Wer ist für den ppa verantwortlich? Wird es offiziell von zend unterstützt?
k0pernikus
19
@ k0pernikus Zend unterstützt offiziell nichts anderes als den Zend-Server :-) Offizielle Ubuntu-Pakete werden von den Ubuntu-Betreuern unterstützt. Diese PPA ist eine persönliche Leistung von Ondřej Surý. Ondrey ist der offizielle Eigentümer des PHP-Baums in Debian, der Ubuntu vorgeschaltet ist. Siehe hier: qa.debian.org/developer.php?login=ondrej%40debian.org
Palantir
4
Wie auch immer, seine PHP-PPAs sind sehr beliebt, bis zu dem Punkt, an dem die offizielle Magento-Distribution die Versionen 5.5 und 5.6 bewirbt
Palantir
3
JFTR memcached ist noch nicht bereit für PHP 7.0. Ich habe mir Memcache noch nicht angesehen und kleinere Bugs nach einer umfassenden Überarbeitung der Paketskripte ausgebügelt.
oerdnj
4
@Xeridea Versuchen Sie sudo apt-get install libapache2-mod-php7.0, dann sudo a2enmod php7.0starten Sie Apache neu
andrewtweber
21

Sie haben zwei Möglichkeiten:

  • Warten Sie, bis es eine neue Ubuntu-Version gibt, die PHP7 enthält

    Ubuntu wird keine neuen Hauptversionen der meisten Software für bestehende Ubuntu-Versionen veröffentlichen. Um eine neue Hauptversion zu erhalten, müssten Sie warten, bis eine neuere Version von Ubuntu verfügbar ist.

  • Installieren Sie eine Version eines Drittanbieters, z. B. von einem PPA

    PPAs sind nicht an die Veröffentlichungspläne oder -richtlinien von Ubuntu gebunden, so dass sie unter anderem häufiger Versionen ändern können. Das in der Antwort von Tshilidzi Mudau erwähnte PPA ist eine beliebte Methode, um mit PHP auf dem Laufenden zu bleiben.

    sudo add-apt-repository ppa:ondrej/php
    

    PPAs bieten nicht die gleiche offizielle Ubuntu-Unterstützung wie die von Ubuntu bereitgestellten Versionen und können aufgrund unterschiedlicher Zeitpläne und Richtlinien einen anderen Qualitäts- oder Sicherheitsstandard aufweisen. In diesem Fall ist der Entwickler, der diese PPA zur Verfügung stellt, der Community hier bekannt.

thomasrutter
quelle
1
Und die Option, von der Quelle zu installieren.
8.
18

Hier ist meine Liste von Befehlen zum vollständigen Aktualisieren von PHP mit seinen Abhängigkeiten, einschließlich phpMyAdmin (vollständiger LAMP-Stack):

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php-7.0
sudo apt-get update
sudo apt-get purge php5-fpm
sudo apt-get install php7.0-cli php7.0-common libapache2-mod-php7.0 php7.0 php7.0-mysql php7.0-fpm php7.0-curl php7.0-gd php7.0-bz2

Jetzt hast du PHP7. Los geht's mit phpMyAdmin: (hier starten, wenn Sie bereits PHP7 installiert haben)

cd /var/www/html/
sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.5.3.1/phpMyAdmin-4.5.3.1-all-languages.zip
sudo unzip phpMyAdmin-4.5.3.1-all-languages.zip
sudo mv phpMyAdmin-4.5.3.1-all-languages/ phpmyadmin/
sudo mkdir -m 777 phpmyadmin/config/
sudo /etc/init.d/apache2 restart
Jarek Jakubowski
quelle
3
libapache2-mod-php7.0ist genau das, was ich brauchte, danke!
Jacer Omri
7

Der obige Prozess hat auf meinem Ubuntu 15.10-Server nicht funktioniert, sodass ich dachte, ich würde teilen, was funktioniert, falls andere es hilfreich finden.

Zuerst musste ich einige wichtige PHP 5-Module entfernen:

sudo apt-get -y purge php5 libapache2-mod-php5 php5 php5-cli php5-common php5-curl php5-gd php5-imap php5-intl php5-json php5-mcrypt php5-mysql php5-pspell php5-readline php5-sqlite

Dann entfernen Sie ein paar zusätzliche Dinge, die zurückgelassen wurden:

sudo apt-get autoremove

Dann installiere PHP 7.0:

sudo apt-get install php7.0

Da dann PHPMyAdmin entfernt wurde, konnte Apache2 nicht gestartet werden und ich musste die Konfigurationsdatei entfernen (ich hätte sie stattdessen verschieben können):

sudo rm /etc/apache2/conf-enabled/phpmyadmin.conf

Dann musste ich Apache2 neu starten:

sudo service apache2 restart

PHP 7.0 lief dann (bestätigt mit PHPINFO();)

Allerdings habe ich die einzige Möglichkeit gefunden, PHPMyAdmin zum Laufen zu bringen, indem ich es manuell installiere / aktualisiere, da die neueste Version, die in den Quellen verfügbar ist, PHP 7 noch nicht unterstützt.

** BEARBEITEN: Ich habe jetzt eine Möglichkeit gefunden, PHPMyAdmin auf eine kompatible Version zu aktualisieren, ohne von GIT klonen oder manuell aus Quellen kompilieren zu müssen. Deshalb füge ich Folgendes hinzu:

Fügen Sie zuerst dieses Repository hinzu, aktualisieren Sie die Quellenliste und führen Sie ein Upgrade durch (Hinweis: Wenn es während des Upgrades auf PHP7 entfernt wurde, müssen Sie es installieren, anstatt es zu aktualisieren):

sudo add-apt-repository ppa:nijel/phpmyadmin
sudo apt-get update
sudo apt-get dist-upgrade

Während der Installation (auf meinem Server) musste jedoch ein Datenbank-Upgrade-Skript ausgeführt werden upgrade_column_info_4_3_0+.sql, was jedoch mit dem folgenden Fehler fehlschlug:

mysql said: ERROR 1060 (42S21) at line 28: Duplicate column name 'input_transformation'

Ich habe beschlossen, den Fehler zu ignorieren und das Upgrade abzuschließen. Nach der Installation öffnete ich das .sql-Upgrade-Skript unter/usr/share/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql

Ich habe das Skript manuell ausgeführt und dabei die beiden beleidigenden Zeilen entfernt, um zwei bereits vorhandene Spalten zu erstellen (zu entfernender Code):

ALTER TABLE `pma__column_info`
ADD `input_transformation` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
ADD `input_transformation_options` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';

Schließlich musste ich die Konfigurationsdatei unter bearbeiten /etc/phpmyadmin/config.inc.phpund die folgenden zwei Zeilen hinzufügen:

$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

Danach wird PHPMyAdmin erfolgreich aktualisiert und die erweiterten Funktionen aktiviert. Hoffe das hilft anderen.

Robin Wilson
quelle
4

Zum Zeitpunkt dieser Antwort (Februar 2017) ist es unter Ubuntu 16.04 LTS nun möglich, PHP 7.0. * Mit dem einfachen Befehl zu installieren:

apt-get install php

Es müssen keine Repositorys von Drittanbietern hinzugefügt werden.

Leo Galleguillos
quelle
3

Ich denke das ppawurde in 16.04 LTS aufgenommen.

  1. Einfach machen sudo apt-get install php7.0und fertig.
  2. Überprüfen Sie, ob es installiert ist, indem Sie es ausführen php --version
  3. Sie können die info.phpDatei auch im Dokumentenstamm von Apache erstellen .
  4. Das ist im /var/www/html/Verzeichnis
  5. Lauf sudo gedit /var/www/html/info.php
  6. Fügen Sie den folgenden in die Datei: <?php phpinfo(); ?>. Hinweis: Die Datei ist leer, da Sie sie selbst erstellt haben.
  7. Starten Sie nun Apache neu sudo service apache2 restart
  8. In Ihrem Webbrowser erhalten http://localhost/info.phpSie alle Informationen zu PHP.

Hoffe das hilft :)

Collin
quelle
1
Muss ich es nicht zu Apache2 hinzufügen?
Arlen Beiler
Es ist kein ppa, es ist das offizielle Ubuntu-Build.
Jeff Puckett
2

Ich habe einige verschiedene Ressourcen gesammelt und viele Probleme behoben, um einen Build von PHP 7 unter Ubuntu 15.04 und 15.10 vollständig einzurichten. Obwohl es kein Debian-Paketskript ist, werden Ubuntu-Abhängigkeiten und -Konfiguration eingerichtet. Die Ressourcen finden Sie hier .

Möglicherweise müssen Sie einen Release-Zweig nur über master auswählen und das Skript erneut ausführen.

m1st0
quelle
2

Ich weiß, dass dies eine schlechte Idee sein kann, aber so habe ich PHP7 für meine Installation von Ubuntu Server 12.04.5 (i386) zum Laufen gebracht:

sudo nano /etc/apt/sources.list

Fügen Sie am Ende Folgendes hinzu:
 

deb http://us.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
deb http://archive.canonical.com/ubuntu Vertrauenswürdiger Partner

Aktualisieren Sie dann wie gewohnt:

sudo apt-get update

Sobald Sie PHP 7 auf Ihrem Apache-Server installiert haben, müssen Sie möglicherweise Ihre Dateien in ein neues Verzeichnis verschieben, um zu funktionieren:

sudo mv / var / www / * / var / www / html /
KimChoJapFan
quelle