Home / WebServer / Apache / PHP 5.4 Installation unter Debian Squeeze und Upgrade von PHP 5.3
PHP Logo

PHP 5.4 Installation unter Debian Squeeze und Upgrade von PHP 5.3

Da PHP 5.4 mittlerweile seit fast einem Jahr auf dem Markt ist und erhebliche Performance und Security bringt, sollte man sich mit einem Update von älteren PHP Versionen auseinandersetzen. So funktioniert die Installation bzw. ein Upgrade unter Debian Squeeze.

Update: Mittlerweile ist PHP 5.5 in der stable Verison erschienen. Hier gehts zur Anleitung: PHP5.5 unter Debian Wheezy installieren.

Warum sollte ich PHP 5.4 installieren?

PHP 5.3.0 erschien am 30 Juni 2009, was schon ziemlich lange her ist. Allerdings wird 5.3 nach wie vor supported und es werden weiterhin Bugfixes und Securityupdates zur Verfügung gestellt.

PHP 5.4.0 erschien am 1. März 2012, und ist mittlerweile bei Version 5.4.23 angekommen. Die Technik wurde allerdings sehr stark weiterentwickelt wodurch die Geschwindigkeit und die Sicherheit verbessert wurde. Ein Upgrade von Version 5.3 auf 5.4, soll unoptimiert einen Gschwindigkeitsboost von 5-10% bringen. Ein Benchmark bei einer WordPress Installation ohne Caching Plugin und ohne Optcache ergab einen Boost von 40%, was ich doch sehr beeindruckend finde. Es spricht also so einiges dafür, auf die neueste PHP Version upzudaten, was ich mittlerweile auch nur wärmstens empfehlen kann, da wir bereits gute Erfahrungen mit der 5.4er Version gemacht haben. Also worauf wartest du? So gehts…

Installation von PHP 5.4 unter Debian Squeeze

Da ich normalerweise kein Fan von Drittrepositories bin und somit mein System immer recht sauber halte, muss ich hier aber über meinen Schatten springen. Ich habe zuerst überlegt die Wheezy Repositories anzuzapfen, aber selbst dort ist die PHP Version von 5.4 schon wieder sehr veraltet (5.4.4).

Die Jungs von Dotdeb sind da sehr viel aktiver und bieten bereits PHP 5.4.11 an und sind im Bereich Webhosting um Jahre schneller als die Debian Maintainer. Dotdeb ist auch der einzige Mirror, welchen ich ausser den Debian Mirrors verwende. Natürlich gäbe es noch den alten Weg, sodass man PHP selbst kompiliert. Aber das ist für Anfänger absolut ungeeignet, deshalb zeige ich hier den Weg über die dotdeb mirrors.

Um den dotdeb Mirror hinzuzufügen wird die /etc/sources.list…

[bash]vi /etc/apt/sources.list[/bash]

…und um folgende zwei Einträge erweitert:

[bash]deb http://packages.dotdeb.org squeeze-php54 all
deb-src http://packages.dotdeb.org squeeze-php54 all[/bash]

Anschließend wird noch der GnuPG key heruntergeladen und importiert.

[bash]wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add -[/bash]

Ein apt-get update aktualisiert nun die Paketlisten (in diesem Schritt wird noch nicht installiert, keine Sorge)

[bash]apt-get update[/bash]

Nun wird die eigentliche PHP 5.4 Installation durchgeführt

[bash]apt-get install php5[/bash]

Upgrade von PHP 5.3 auf 5.4 unter Debian Squeeze

Ein Upgrade beinhaltet natürlich immer Risiken, ihr solltet daher euer System auf jeden Fall sichern und vielleicht zusätzlich die Anwendungen vorab mit PHP 5.4 testen, da einige Funktionen deprecated sind. Im ersten Schritt sollten wir uns die derzeitige installierte PHP Version anzeigen lassen:

[bash]php -v[/bash]

Ausgabe:

[bash]PHP 5.3.3-7+squeeze14 with Suhosin-Patch (cli) (built: Aug 6 2012 14:18:06)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH[/bash]

Bei einem aktuellen Debian Squeeze System (Stand: Feb 2013) sollte dabei obige Ausgabe erscheinen. Die verwendete PHP Version ist also 5.3.3-7 Wollt ihr nun direkt ein Upgrade von PHP 5.3 auf 5.4  durchführen, so reicht es ebenfalls, oben genannte Schritte (Siehe installation), auszuführen. Paketabhängigkeiten werden natürlich sauber aufgelöst und somit werden auch alle verwendeten PHP Extensions auf den neuesten Stand gebracht bzw. mit installiert. Ein einfaches apt-get install php5 reicht zum Upgrade:

[bash]apt-get install php5[/bash]

Neue Version anzeigen lassen:

[bash]php -v[/bash]

Ausgabe:

[bash]PHP 5.4.11-1~dotdeb.0 (cli) (built: Jan 24 2013 15:04:58)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
[/bash]

Tipp: Wenn ihr die php5-dev Libraries verwendet bzw. benötig, so solltet ihr diese ebenfalls installieren (apt-get install php5-dev)

Es empfiehlt sich nach dem Update die Apache Erros Logs durchzusehen, ob irgendwelche Probleme auftreten. [sam id=“2″ codes=“true“]

Downgrade von PHP 5.4 auf PHP 5.3

Falls Probleme auftreten ist es ratsam wieder auf die alte PHP 5.3 Version zu gehen. Dazu werden zuerst die dotdeb mirros aus /etc/apt/sources.list wieder entfernt oder auskommentiert. Anschließend müssen die installierten dotdeb Pakete entfernt werden. Mit folgendem Befehl werden alle dotdeb Pakete aufgelistet:

[bash]dpkg -l |grep dotdeb[/bash]

Die Ausgabe zeigt in meinem Fall folgendes an:

[bash]ii libapache2-mod-php5 5.4.11-1~dotdeb.0 server-side, HTML-embedded scripting language (Apache 2 module)
ii php5 5.4.11-1~dotdeb.0 server-side, HTML-embedded scripting language (metapackage)
ii php5-cli 5.4.11-1~dotdeb.0 command-line interpreter for the php5 scripting language
ii php5-common 5.4.11-1~dotdeb.0 Common files for packages built from the php5 source
ii php5-curl 5.4.11-1~dotdeb.0 CURL module for php5
ii php5-gd 5.4.11-1~dotdeb.0 GD module for php5
ii php5-mysql 5.4.11-1~dotdeb.0 MySQL module for php5[/bash]

Diese Module werden nun alle entfernt:

[bash]apt-get remove libapache2-mod-php5 php5 php5-cli php5-common php5-curl php5-gd php5-mysql[/bash]

Jetzt werden die entsprechenden Pakete (welche ihr benötigt) wieder von den Debian Standard Mirrors installiert:

[bash]apt-get update
apt-get install libapache2-mod-php5 php5 php5-cli php5-common php5-curl php5-gd php5-mysql[/bash]

Mögliche Probleme, die auftreten können:

PHP Warning:  PHP Startup: Unable to load dynamic library ‚/usr/lib/php5/20100525/suhosin.so‘ – /usr/lib/php5/20100525/suhosin.so: cannot open shared object file: No such file or directory in Unknown on line 0 Das Suhosin Patch Package kann nicht immer automatisch entfernt werden und sollte daher manuell entfernt werden:

[bash]apt-get remove –purge php5-suhosin[/bash]
4.1/5 - (19 votes)

Auch cool

Linux richtig anwenden: Tipps und Tricks für eine optimale Erfahrung

Die Kombination aus Spiele-Plattformen, und dem Betriebssystem Linux mag auf den ersten Blick ungewöhnlich erscheinen. …

28 Kommentare

  1. Hat super funktioniert. Vielen Dank für den Tip und die Anleitung!

  2. Danke,

    auch wenn ich kein PHP verwende, so ist es doch interessant einen Ablauf zu kennen und was es zu beachten gibt.

    Ich bin ja auch gerade von CentOS auf Debian 6 umgestiegen. Die ersten 8h laeuft es schon mal sehr gut 🙂

    Muss mich aber noch ein wenig an die neue Verzeichnisstruktur gewoehnen.

    • Und ich gratulieren somit zum Umstieg 😉
      Ich verwende Debian Linux einfach schon sehr lange und kann es in Sachen Stabilität und Sicherheit nur empfehlen!

      Die Aktualität der Pakete lässt halt teilweise ein wenig zu wünschen übrig.
      Aber lieber sicher als aktuelle *g*

      Gruß
      Patrick

  3. Hallo,

    bei mir findet er folgende Datei nicht:

    PHP Warning: PHP Startup: Unable to load dynamic library ‚/usr/lib/php5/20100525/idn.so‘ – /usr/lib/php5/20100525/idn.so: cannot open shared object file: No such file or directory in Unknown on line 0
    PHP 5.4.12-1~dotdeb.1 (cli) (built: Mar 1 2013 09:44:40)

    Wie kann ich diesen Fehler beseitigen?

    Grüße
    Andreas~

    • Hallo Andreas,

      mir sagt das Modul idn.so jetzt nichts. Benötigst du das Modul für etwas? Wenn es selber kompiliert wurde, dann muss es ebenfalls mit der neuen PHP Version kompiliert werden. Die gängigsten PHP Module wurden allerdings von dotdeb sauber kompiliert.

      Wenn du es nicht benötigst, so kannst du das Modul in jedem Fall deaktivieren.
      Das Modul sollte unter /etc/php5/conf.d/ als ini File verlinkt sein und du kannst es dort deaktivieren, bzw. löschen.

      Gruß
      Patrick

      • Also ich habe das php zum laufen gebracht indem ich die Datei idn.so gelöscht habe, hatte was mit internationalen Domains zu tun und war aber alt – danach habe ich aber keinen Connect mit den mysql DBs mehr gehabt… bin wieder zurück:( Und muss einfach nur höher als 5.3.8–> heisst ich werde zu diesen Testzwecken ein Wheezy aufsetzen.
        Danke für die schnelle Hilfe!
        Andreas~

        • Hallo Andreas,

          php5-mysql ist als Package aber auch im Dotdep repo vorhanden. Probleme mit der MySQL habe ich keine

          Gruß
          Patrick

  4. Die Anleitung ist super verständlich. Gibt es sowas auch für das Update auf einem 1und1 Server mit openSuSe 11.4?

  5. Klasse, endlich mal eine funktionierende Squeeze gefunden, leider lässt sich das Ding auf meinem V-Server nicht upgraden. ich lande bei upgrade und auch dist-upgrade immer wieder auf php 5.2 auf Debian. Zudem werden auch immer wieder Pakete zurück gehalten. Hast Du ’ne Idee, wie ich das upgrade trotz allem bewerkstellige, ohne es neben 5.2 daher laufen zu lassen? Hab mich jetzt Tage durch gelesen woran es liegen kann. Auch ’n Grub update gemacht, danach ging nix mehr. Einizige Möglichkeit die ich noch sehe, wäre es selber zu compilieren, aber davon möchte ich jetzt erst einmal ab, denn das upgrade muss ja irgendwie drauf gehen, oder ?
    gruß Torsten

    • Hallo Sandel,

      PHP5.2 erscheint mir als sehr alt… bist du sicher dass du ein Squeeze installiert hast und nicht ein älteres Debian? lenny oder gar etch?

      cat /etc/debian_version

      Gruß
      Patrick

  6. Vielen Dank für diese schöne Anleitung Patrick.
    Einen Punkt finde ich jedoch seeehr gewagt 😉

    „Installation von Debian 5.4 unter Debian Squeez“

    Das sollte man sich vielleicht doch nochmal überlegen.

  7. Hi zusammen,

    schon als kleine „Vorwarnung“. Stefan Esser hat vor ein paar Tagen ne kurze Info veröffentlicht, dass er ab Mai wieder Zeit für die Entwicklung von Suhosin hat:

    https://github.com/stefanesser/suhosin/issues/27

    und es wohl in ein paar Wochen Bugfixes für PHP 5.4 und 5.5 geben wird.

  8. Hallo,
    ich habe gerade diese Update durchgeführt, da nach einem Paketupdate auf meinem Debiansystem keine PHP Seiten mehr laufen.
    Kannst Du mir einen Tip geben wie ich da weiter komme.

    Danke

    Torsten

  9. Hallo Leute

    Ich habe das Update gemacht Lief auch gut soweit meine Seiten Laufen auch nur das Problem ist jetzt ich komme nicht mehr in meine PLESK oberfläche…Er zeigt die mir nicht mehr an…

    So dann habe ich das ganze rückgängig gemacht aber trozdem komme ich da nicht mehr drauf…

    Jetzt ist die Frage wo ist der Fehler warum das nicht mehr geht…

    Kann mir da einer weiter helfen

  10. Upgrade hat wunderbar funktioniert.
    Nach dem Downgrade gibts jetzt nur noch Probleme:
    ein paar Beispiele:
    – phpmyadmin hat gefehlt (Sollte doch eigentlich bei diesen Vorgängen nicht verloren gehen?!)
    – apc hat gefehlt
    – php.ini war verloren (logisch)

    Keine CakePHP-App funktioniert mehr, das Routing geht schon gar nicht mehr…

  11. Vielen dank für die Ausführung.

    Gibt es eine Möglichkeit zusätzlich Modules für PHP-CLI zu installieren?

    Danke
    Willy

    • Hallo Willy,

      klar! Einfach via apt-get:

      apt-get install php5-cli

      Gruß
      Patrick

      • Danke Patrick,

        ich habe das gerade installiert. Es funktioniert auch. Mit PHP -m habe ich eine Liste von Modulen. Aber ich wollte auch PDO als Module für CLI haben. Hast du dafür eine Ahnung? 🙁

        Grüß,
        Willy

        • Hi Willy,

          sehr komisch. Ich hab PDO und pdo_mysql in der Liste stehen.
          Sollte meines Wisssens schon im PHP5 metapackage enthalten sein.

          Ansonsten wäre noch möglich die php5-dev zu installieren und dann via „pecl install pdo“ das PDO Modul zu laden.

          Gruß
          Patrick

          • Hallo Patrick,

            Danke für den Tipp ich werde einfach in der Richtung machen.

            Grüß,
            Willy

  12. Super Anleitung, owncloud wird sich freuen! Danke! 😉

  13. Danke für die Anleitung. Habe mein Debian Squeeze jetzt auch erstmal mit Php5.4 ausgestattet. Wie sieht es mit den anderen dotdeb Paketen aus? Sollte man diese auch einbinden?

    • Hallo Felix,

      das kommt halt drauf an, was man benötigt.
      Dotdeb beinhaltet noch einige weiter Pakete:

      Zabbix
      Nginx
      MySQL
      Memcached

      Wenn man welche davon benötigt, kann man gerne die gesamten Dotdeb Mirrors verwenden.
      Wer nur PHP benötigt, ist gut damit beraten nur den PHP Mirror zu verwenden.

      Gruß
      Patrick

  14. Torben Dannhauer

    Solltet ihr PHP5.3 mittels mod_fcgi (das gleiche vermutlich bei mod_fastcgi) betreiben, so kann es sein, dass Apache euch nach dem Upgrade die PHP Dateien zum Download anbietet anstatt sie zu parsen. Bei mir lag es daran dass der Installer unerlaubt ein Apache Modul „php5-cgi“ aktiviert hat.

    Bei mir hat ein Deaktivieren dieses mod und Neustarten des Apache gereicht um wieder wie erwartet zu funktionieren.

    Des weiteren natürlich dran denken alle PECL extensions zu aktualisieren.

  15. falls jemand immer noch versuchen sollte debian LENNY auf php5.3 upzugraden, der user nenad unter folgendem link in den kommentaren hatte für mich die lösung:

    http://mtehrani30.blogspot.de/2011/07/debian-lenny-update-php-52-to-53.html