Frage Wie installiere ich PHP 7?


PHP 7 kam heraus gestern und ich würde es gerne versuchen.

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

  • Verbesserte Performance: PHP 7 ist doppelt so schnell wie PHP 5.6
  • Deutlich reduzierte Speicherauslastung
  • Abstrakter Syntaxbaum
  • Konsistente 64-Bit-Unterstützung
  • Verbesserte Ausnahmehierarchie
  • Viele schwerwiegende Fehler wurden in Ausnahmen konvertiert
  • Sichere Zufallszahlengenerator
  • Alte und nicht unterstützte SAPIs und Erweiterungen wurden entfernt
  • Der Nullkoaleszenzoperator (??)
  • Rückgabe- und Skalarart-Deklarationen
  • Anonyme Klassen
  • Nullkosten behauptet

php.net 


Kann das auf der aktuellen Ubuntu-Version installiert werden?

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


107
2017-12-04 14:13


Ursprung


Mögliches Duplikat von Wie installiere ich verschiedene (Upgrade oder Downgrade) PHP Version in noch unterstützter Ubuntu Version? - muru
PHP 7 ist standardmäßig auf Ubuntu 16, Xenial. - Buttle Butkus


Antworten:


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

Optional lösche 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 installiere PHP 7:

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

Optional können Sie anschließend nicht benötigte Pakete bereinigen:

sudo apt-get --purge autoremove -y

Alternativ können Sie PHP 7.0 aus Quellen mit diesem Skript installieren Skript oder befolgen Sie die Anweisungen dazu Blog.

BEARBEITEN:

PHP5 ist jetzt gewesen ersetzt mit PHP7 als Standard-PHP in Ubuntu 16.4, also um PHP7 unter Ubuntu 16.04 zu installieren:

sudo apt-get install php7.0 

Oder

sudo apt-get install php

172
2017-12-04 14:52



Wer ist verantwortlich für die PPA? Wird es offiziell von zend unterstützt? - k0pernikus
@ k0pernikus Zend unterstützt offiziell nichts über seinen Zend Server hinaus :-) Offizielle Ubuntu-Pakete werden von Ubuntu-Betreuern unterstützt. Diese PPA ist eine persönliche Anstrengung von Ondřej Surý. Ondrey ist der offizielle Besitzer des PHP-Baums in Debian, der vor Ubuntu liegt. Siehe hier: qa.debian.org/developer.php?login=ondrej%40debian.org - Palantir
Wie auch immer, seine PHP-PPAs sind sehr beliebt, bis zu dem Punkt, an dem die offizielle Magento-Distribution die Version 5.5 und 5.6 ankündigt: devdocs.magento.com/guides/v2.0/install-de/prereq/... - Palantir
JFTR memcached ist noch nicht für PHP 7.0 bereit. Ich habe Memcache nicht angeschaut und kleinere Bugs ausgebügelt, nachdem ich die Packageskripte neu geschrieben habe. - oerdnj
@Xeridea Versuchen sudo apt-get install libapache2-mod-php7.0, dann sudo a2enmod php7.0 dann starte Apache neu - andrewtweber


Sie haben zwei Möglichkeiten:

  • Warten Sie, bis ein neues Ubuntu-Release mit PHP7 verfügbar ist

    Ubuntu wird keine großen neuen Versionen der meisten Software für bestehende Ubuntu-Versionen veröffentlichen. Um eine neue Version zu erhalten, müssen Sie auf eine neuere Version von Ubuntu warten.

  • Installieren Sie eine Drittanbieterversion, z. B. von einem PPA

    PPAs sind nicht an die Veröffentlichungspläne oder Richtlinien von Ubuntu gebunden, so dass sie unter anderem die Möglichkeit haben, Versionen häufiger zu ändern. Die PPA, die in Tsilidzi Mudaus Antwort erwähnt wird, ist eine beliebte Art, mit PHP auf dem neuesten Stand zu bleiben.

    sudo add-apt-repository ppa:ondrej/php
    

    PPAs sind nicht mit der gleichen offiziellen Ubuntu-Unterstützung wie die von Ubuntu gelieferten Versionen ausgestattet und können aufgrund unterschiedlicher Zeitpläne und Richtlinien unterschiedliche Qualitäts- oder Sicherheitsstandards aufweisen. In diesem Fall ist der Entwickler, der diese PPA verfügbar macht, der Community hier bekannt.


20
2017-12-06 13:00



Und die Option, von der Quelle zu installieren. - j0h


Hier ist meine Liste von Befehlen, PHP komplett mit seinen Abhängigkeiten zu aktualisieren, einschließlich phpMyAdmin (voller 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 haben Sie PHP7. Lass uns nach phpMyAdmin gehen: (starte hier wenn du schon PHP7 installiert hast)

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

17
2018-01-25 11:22



libapache2-mod-php7.0 ist genau das, was ich brauchte, danke! - Jacer Omri


Für Ubuntu 16.04 ist PHP7 nun die offizielle offizielle Upstream-Version.

sudo apt install php

Hier ist eine praktische Anleitung zum Einrichten eines LAMP-Stacks am 16.04.


10
2017-07-12 23:13





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

Zuerst musste ich bestimmte PHP 5 Schlüsselmodule 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

Dann, als PHPMyAdmin entfernt wurde, würde Apache2 nicht starten, also musste ich 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();)

Wie auch immer, ich habe herausgefunden, dass PHPMyAdmin nur funktioniert, wenn man es manuell installiert / aktualisiert, da ansonsten die neueste Version, die in den Quellen verfügbar ist, PHP 7 noch nicht unterstützt.

** BEARBEITEN: Ich habe jetzt einen Weg gefunden, PHPMyAdmin auf eine kompatible Version zu bringen, ohne von GIT zu klonen oder manuell aus Quellen zu kompilieren, daher 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 aber dies ist mit folgendem Fehler fehlgeschlagen:

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

Ich entschied mich, den Fehler zu ignorieren und das Upgrade abzuschließen. Nach der Installation habe ich das .sql upgrade script unter geöffnet /usr/share/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql

Ich habe das Skript manuell ausgeführt, indem ich die zwei fehlerhaften Zeilen entfernt habe, die versuchten, zwei bereits existierende 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.php und füge folgende zwei Zeilen hinzu:

$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 sind aktiviert. Hoffe das hilft anderen.


6
2017-12-23 18:08





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

apt-get install php

Sie müssen keine Repositorys von Drittanbietern hinzufügen.


4
2018-02-02 02:07





Ich denke der ppa wurde in 16.04 LTS hinzugefügt.

  1. Mach es einfach sudo apt-get install php7.0 und das ist es.
  2. Überprüfen Sie, ob es durch Ausführen installiert wurde php --version
  3. Außerdem können Sie das erstellen info.php Datei im Apache-Dokumentenstammverzeichnis.
  4. Das ist in /var/www/html/ Verzeichnis
  5. Lauf sudo gedit /var/www/html/info.php
  6. Fügen Sie der Datei Folgendes hinzu: <?php phpinfo(); ?>. Hinweis: Die Datei ist eine leere Datei, da Sie sie selbst erstellt haben.
  7. Starten Sie nun den Apache neu sudo service apache2 restart 
  8. In Ihrem Webbrowser http://localhost/info.php Das gibt dir vollständige Informationen über PHP.

Hoffe das hilft :)


3
2017-08-11 08:35



Muss ich es nicht zu Apache2 hinzufügen? - Arlen Beiler
Es ist kein PPA, es ist der offizielle Ubuntu-Build. - Jeff Puckett


Ich habe ein paar verschiedene Ressourcen gesammelt und viele Probleme gelöst, um einen Build von PHP 7 unter Ubuntu 15.04 und 15.10 zu erstellen. Obwohl es kein Debian-Paketskript ist, werden Ubuntu-Abhängigkeiten und die Konfiguration eingerichtet. Die Ressourcen können gefunden werden hier drüben.

Möglicherweise müssen Sie einen Freigabezweig nur über Master auswählen und das Skript erneut ausführen.


2
2018-01-20 20:29





Ich weiß, dass dies eine schlechte Idee ist, aber so habe ich php7 mit meiner Installation von Ubuntu Server 12.04.5 (i386) arbeiten lassen:

sudo nano /etc/apt/sources.list

Fügen Sie dann am Ende Folgendes hinzu:

deb http://us.archive.ubuntu.com/ubuntu/ trusty main eingeschränktes universum multiverse
Deb http://archive.canonical.com/ubuntu trusty Partner

Aktualisieren Sie dann wie gewohnt:

sudo apt-get Aktualisierung

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

sudo mv / var / www / * / var / www / html /

2
2018-01-19 05:12