Entspricht dem Skript von "Growling Flea", verwendet jedoch neue Versionen.
Fügen Sie das PPA hinzu
Die Pakete PHP 5.6 und PHP 7.0 stammen von einem Drittanbieter-PPA, der nicht von den offiziellen Ubuntu-Repositories von Canonical bereitgestellt wird. Die PPAs, die ich hier empfehle, stammen von Ondřej Surý, der PHP für Debian (das dann von Ubuntu verwendet wird) paket. Obwohl es kein offizielles Repository ist, ist es nicht zufällig! Die PPA selbst ist
da
So fügen Sie die PPA zu Ihrem Setup hinzu:
sudo add-apt-repository ppa:ondrej/php
Dann möchten wir auch Informationen über das Angebot dieser neuen PPA erhalten. Führen Sie dann Folgendes aus:
sudo apt-get update
Installieren Sie neue PHP-Versionen
Ich hatte bereits einige der php5-Pakete installiert, aber ich habe nichts deinstalliert. Ich habe apt einfach herausfinden lassen, was es tun wollte, als ich darum gebeten habe, die neuen Versionen zu installieren:
sudo apt-get install php5.6 php7.0
Dies führte zu vielen Beschwerden und Konflikten. Die erste vorgeschlagene Lösung bestand darin, alle auf Lager befindlichen PHP5-Pakete zu entfernen, damit PHP 5.6 installiert werden kann - also habe ich nur den ersten Vorschlag angenommen.
Ich benutze Apache, also gab mir dieses Setup Apache mit den verfügbaren Php5.6- und Php7.0-Modulen und dem tatsächlich geladenen Php5.6-Modul.
Neben dem eigentlichen PHP gibt es für beide PHP-Versionen auch alle anderen Erweiterungen und Tools, die Sie von PHP erwarten. Daher ist es sehr einfach, die von Ihnen benötigten Module hinzuzufügen. Ich war sehr, sehr beeindruckt, wie gut das gemacht wird.
Versionen konfigurieren und wechseln
Jetzt haben Sie zwei völlig getrennte Versionen von PHP auf Ihrem System installiert. Schauen wir uns also an, wohin alle Teile gegangen sind!
Die Konfigurationsdateien sind alle in /etc/php/5.6
und /etc/php/7.0
jeweils - innerhalb von hier, wo Sie konfigurieren können , die Erweiterungen geladen sind, stellen Sie die INI - Einstellungen, und alles andere für jede Version in der Isolation.
Ich bin ein Apache-Benutzer, und wie ich bereits erwähnte, sind beide Module verfügbar. Um also von einem zum anderen zu wechseln, muss ich Folgendes tun:
sudo a2dismod php5.6
sudo a2enmod php7.0
sudo service apache2 restart
Für nginx Benutzer sind die Änderungen fast so einfach, Digital Ozean hat eine gute Dokumentation auf diese so ihre Führung Check - out (sie großen docs tun haben!):
Https://www.digitalocean.com/community/tutorials/how-to- upgrade-to-php-7-on-ubuntu-14-04
enthält einen Abschnitt zur Neukonfiguration von nginx für die Verwendung einer anderen PHP-Version.
Von der Kommandozeile aus habe ich sowohl php5.6 als auch php7.0 als Kommandos zur Verfügung. Ich habe auch noch einen PHP-Befehl - schauen Sie in / etc / alternatives nach, um zu sehen, dass dieser mit einer bestimmten Version von PHP cli * verknüpft ist. Sie können auch schnell überprüfen, welche von Ihnen verwendet wird, indem Sie ausführen php -v
.
* Genauer gesagt, starten Sie welche PHP-Version, um zu sehen, welche PHP-Version verwendet wird - aber dies weist wahrscheinlich darauf hin /usr/bin/php
, was für mich selbst ein Symlink zum /etc/alternatives/php
Befehl ist.
Mit Erweiterungen arbeiten
Diese PPA wird mit dem üblichen php-pear-Paket geliefert, das den Befehl pecl für beide PHP-Versionen bietet, sodass alle über PECL verfügbaren Erweiterungen auf die übliche Weise installiert werden können. Sie benötigen auch die entsprechenden Header, sodass entweder php5.6-dev oder php7.0-dev installiert sein sollte.
Nach Abschluss der PECL-Installation erhalten Sie eine Notiz, in der Sie die * .so-Datei zu Ihrer php.ini hinzufügen müssen. Tatsächlich ist es das Beste, hier nachzuschauen, was drin ist /etc/php/mods-available
. Es werden bereits einige Module vorhanden sein, jedes in einer eigenen Datei, die nach der Erweiterung benannt ist und auf .ini endet. Sie können eine Vorlage kopieren, um sie als Vorlage zu verwenden, oder eine eigene erstellen und alle relevanten Konfigurationen für die Erweiterung darin ablegen (mindestens die erforderliche extension=[extensionName].so
).
Sobald die neue Erweiterung in Mods verfügbar ist, aktiviere und überprüfe sie wie folgt:
sudo phpenmod extension
php -m
Dadurch werden die Symlinks an den richtigen Stellen für Ihre aktuelle PHP-Version erstellt, um dieses Modul zu laden. Sie sollten sie in der Liste der Module sehen, die von ausgegeben werden php -m
. Tipp: Wenn Sie es in der Ausgabe nicht sehen, scrollen Sie ganz nach oben und prüfen Sie, ob dort nützliche Fehlermeldungen angezeigt werden.