Ubuntu 14.04: Probleme beim Upgrade von PHP auf 5.6 mit ppa: ondrej

7

Ich habe folgendes getan:

sudo add-apt-repository ppa:ondrej/php5-5.6
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5.6
sudo add-apt-repository ppa:ondrej/apache2

Wenn ich versuche, die alte Version von PHP5 zu deaktivieren mit:

sudo phpdismod php5

Ich erhalte die Fehlermeldung: WARNUNG: Die Modul-PHP5-INI-Datei existiert nicht unter /etc/php/5.6/mods-available

Selbst wenn ich die INI-Datei in dieses Verzeichnis verschiebe, wird der gleiche Fehler angezeigt. Ich weiß nicht was ich vermisse?

Kann mir im Allgemeinen jemand erklären, wie ich meine Instanz dazu bringen kann, die neu installierte Version zu verwenden, da ich immer noch beide PHP-Verzeichnisbäume auf meiner Instanz habe. php5 / .. und php / 5.6

Scott
quelle
Ich denke, Ihr Upgrade ist nicht abgeschlossen. Sie können überprüfen, wie Sie devdocs.magento.com/guides/v2.0/install-gde/prereq/…
Mohamed Slama
Danke für den Link! Ich folgte, aber wenn ich phpinfo () aus einer Testdatei in meinem Verzeichnis ausführe, wird immer noch angezeigt, dass ich Version 5.5.9 ausführe. Wenn ich jedoch php -v vom Terminal aus mache, heißt es PHP 5.6.21-9 + dontate.sury.org ~ trusty + 1, also scheint 5.6 korrekt installiert zu sein. Irgendwelche Ideen, wie ich meine Anwendung dazu bringen kann, die richtige Version auszuführen?
Scott
Wenn Terminal 5.6 schreibt, sollte es mit 5.6 funktionieren
Mohamed Slama
Neustart, wenn nicht richtig funktioniert Überprüfen Sie, ob das Problem mit Code
Mohamed Slama
Aus irgendeinem Grund läuft 5.6 nicht. Es ist, als müsste ich etwas in der Apache-Konfigurationsdatei ändern, damit die Anwendung die neue Version verwendet, aber ich weiß nicht wie.
Scott

Antworten:

16

Sie mischen verschiedene PPAs und Versionen und Befehle auf inkompatible Weise. Lassen Sie es uns zusammenfassen:

  1. libapache2-mod-php5.6ist vorhanden in ppa:ondrej/phpund dies ist wirklich die PPA, die Sie verwenden möchten

  2. phpdismodPHP - Erweiterungen ist ein Befehl zum Deaktivieren und nicht Apache2 Module zu verwalten, müssen Sie a2dismodfür die

  3. Das PHP Apache2-Modul in ppa:ondrej/php5-5.6wird benanntlibapache2-mod-php5

Das Richtige wäre also:

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get purge php5-common # remove and purge old PHP 5.x packages
sudo apt-get install libapache2-mod-php5.6

Wenn Sie php5-*Pakete nicht zuerst deinstallieren , müssen Sie das php5Modul deaktivieren und das Modul aktivieren php5.6:

sudo a2dismod php5
sudo a2enmod php5.6

Und optional Apache2-Repository hinzufügen:

sudo add-apt-repository ppa:ondrej/apache2
sudo apt-get update
sudo apt-get dist-upgrade

Für PPA-Pakete steht ein Migrationshandbuch zur Verfügung.

oerdnj
quelle
Stellen Sie sicher, dass Sie auch alle zusätzlichen PHP-Module installieren, die Sie verwendet haben (MySQL), da dieses nur mit den Grundlagen geliefert wird.
Kapitän Hypertext
Möglicherweise benötigen Sie auch:sudo apt-get install libapache2-mod-php sudo apt-get install php-curl php-dev php-gd php-json php-mcrypt php-mysql php-readline php-sqlite3
Amil Waduwawara