Aktionen

Ubuntu 12.04 LTS - PHP Version auf 5.3.27 updaten

Aus znilwiki

Bei Ubuntu 12.04 LTS ist die PHP Version 5.3.10 dabei (5.3.10-1ubuntu3.8).

Nun brauche ich aber für die neue MediaWiki Version mindestens Version 5.3.2, aktuell wäre die Version 5.3.27.

Nach langen probieren hier nun die "einfache" Variante":


Update / Installationsquellen ergänzen:

nano /etc/apt/sources.list

und am Ende die beiden Zeilen

deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze all

hinzufügen.
Wenn man nun

apt-get update

eingibt wirft er am Ende folgenden Fehler aus:

W: GPG-Fehler: http://packages.dotdeb.org wheezy Release: 
Die folgenden Signaturen konnten nicht überprüft werden, 
weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY E9C74FEEA2098A6E
Important.png
Hinweis:Lösungsmöglichkeit 1 - Von Hand einspielen

Vom Key brauchen wir die letzten 8 Stellen, hier also

A2098A6E

Damit machen wir folgendes:

gpg --keyserver subkeys.pgp.net --recv-keys A2098A6E
gpg --armor --export A2098A6E | apt-key add -

dann noch mal

apt-get update

was nun fehlerfrei durchläuft.

Important.png
Hinweis:Lösungsmöglichkeit 2 - Key herunterladen


Alternative zum vorherigen Key einspielen:

wget http://www.dotdeb.org/dotdeb.gpg
apt-key add dotdeb.gpg

geht auch.


Wenn wir jedoch

apt-get upgrade

eingeben sagt er

root@vag-wiki:~# apt-get upgrade
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Statusinformationen werden eingelesen... Fertig
Die folgenden Pakete sind zurückgehalten worden:
 libapache2-mod-php5 linux-headers-generic-lts-raring linux-image-generic-lts-raring php5-cli php5-common php5-mysql
 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 6 nicht aktualisiert.

Er hat zwar was neueres, nimmt es aber nicht.
Am einfachsten zwingen wir ihn dazu - wir kopieren die Liste oben einfach hinter ein

apt-get install libapache2-mod-php5 linux-headers-generic-lts-raring linux-image-generic-lts-raring php5-cli php5-common

und bestätigen mit J (groß Schreiben!)

nun noch ein

php --version

und wir bekommen:

root@vag-wiki:~# php --version
PHP 5.3.27-1~dotdeb.0 with Suhosin-Patch (cli) (built: Jul 25 2013 19:30:39)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
root@vag-wiki:~#



Important.png
Hinweis:Nachtrag!

nach dem Update bekam ich vom MediaWiki - update.php Skript eine Warnung:

root@h1234567:/var/www/vhosts/h1234567.stratoserver.net/znilwiki/maintenance# php update.php
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/intl.so' - /usr/lib/php5/20090626+lfs/intl.so: cannot open shared objeile: No such file or directory in Unknown on line 0
MediaWiki 1.20.6 Updater

Going to run database updates for znilwiki
Depending on the size of your database this may take a while!
Abort with control-c in the next five seconds (skip this countdown with --quick) ... 5

Es geht um die "intl.so" Warnung ... was tun?
Der Fehler tritt auf wenn die php5-intl Erweiterung fehlt - doch wenn wir diese Nachinstallieren wollen:

root@h2108591:/# apt-get install php5-intl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Statusinformationen werden eingelesen... Fertig
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:

Die folgenden Pakete haben unerfüllte Abhängigkeiten:
 php5-intl : Hängt ab von: libicu44 (>= 4.4.1-1) ist aber nicht installierbar
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.

Fehlergrund:

  • Die libicu44 ist und kann nicht installiert werden weil schon die libicu48 oder höher installiert ist.
  • Eure Quellen haben gerade die Standard-Quellen und die DebDot-Quellen drin - und da ist kein passendes php5-intl' Paket drin.

Scheisse, und nun?

Der entscheidene Tipp fand sich hier: http://ibeblog.com/2013/01/21/installing-pecl-intl-ubuntu-12-04/ Die Lösung holt sich einfach den die Quellen für dir Installation (also den Source-Code) und übersetzt sich das Ganze dann selbst.

Hier hat Ihr die Befehle wie ich diese für meinen Server anpassen musste (so ganz konnte ich es nicht übernehmen):

apt-get install gcc libicu-dev php5 php5-dev php-pear build-essential --no-install-recommends
pecl install intl
service apache2 restart



--Bernhard Linz 17:24, 6. Okt. 2013 (CEST)


Loading comments...