PHP 5.4 auf Debian Squeeze installieren

Die PHP-Entwickler raten schon lange dazu, mindestens auf PHP 5.4 zu wechseln. Allerdings ist die neuste Version dieses Zweiges im offiziellen Debian-Squeeze-Verzeichnis nicht verfügbar und man muss PHP 5.4 aus dem dotdeb.org-Verzeichnis installieren.

Natürlich kann nicht jeder den neusten PHP-Zweig verwenden – man sollte allerdings stets die neusten Sicherheitsaktualisierungen und Fehlerbehebungen installieren.

[notification type=“alert-info“ close=“true“ ]Dieser Beitrag wurde am 31.03.2015 aktualisiert![/notification]

Erhöhte Sicherheit und Leistung durch aktuellste PHP 5.4

Ganz abgesehen davon, dass PHP 5.4 schlichtweg sicherer als der ältere PHP 5.3er-Zweig, bietet PHP 5.4 eine durchschnittlich von 5-10% erhöhte Leistung, die sich grade auf Root/vServern bemerkbar macht, auf denen ein eigener PHP-Daemon läuft.

Wer die Möglichkeit hat, frei darüber zu entscheiden, sollte definitiv die aktuellste Version von PHP 5.4 benutzen!

Ganz abgesehen davon, dass PHP 5.3 im Juni 2009 erschien!

[notification type=“alert-warning“ close=“true“ ]Bitte vor der Aktualisierung unbedingt eine Datensicherung durchführen![/notification]

PHP 5.4 auf Debian Squeeze installieren

Um PHP 5.4 einfach per Paketmanager (apt-get) zu installieren und zu verwalten, fügen wir einfach zwei zusätzliche Zeilen in unsere /etc/apt/sources.list hinzu:

nano /etc/apt/sources.list
deb http://packages.dotdeb.org squeeze-php54 all
deb-src http://packages.dotdeb.org squeeze-php54 all

Zusätzlich muss noch der Sicherheitsschlüssel importiert werden, um auf das Verzeichnis zuzugreifen:

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

Nachdem der Schlüssel erfolgreich importiert wurde, müssen wir unser Paketverzeichnis aktualisieren, damit wir nicht aus Versehen doch noch das normale PHP 5.3 installieren. Das geschieht mit

apt-get update

Das war es schon! Jetzt können PHP-Pakete einfach über die Paketverwaltung installiert werden. Wollen wir beispielsweise den PHP-FPM Daemon installieren, würde das via apt-get install php5-fpm funktionieren. Brauche ich die PHP-MySQL-Schnittstelle, führe ich apt-get install php5-mysql aus.

Wartung und Pflege

Auf dotdeb.org kann man nachlesen, wenn es Aktualisierungen gibt. In der Regel sind neue Version innerhalb von 1-2 Tagen verfügbar. Man kann sich darauf verlassen, dass das Team von dotdeb Ihre Sache gut macht, ich hatte noch nie Probleme, die durch Ihre Veröffentlichungen verursacht wurden.

Falls eine neue Version verfügbar ist, reicht einfach folgendes:

apt-get update
apt-get upgrade

Bitte bedenke, dass hierbei nur der 5.4.X-Zweig der PHP-Bestandteile aktualisiert wird.

Ausblick

Die meisten Web-Anwendungen sind zum Zeitpunkt der Aktualisierung des Beitrags am 31.03.15 mit PHP 5.6 kompatibel. Wichtig vor allem ist der in PHP 5.6 integrierte Objekt-Cache, der aufwändige oder komplizierte Caching-Module wie APC, xCache, WinCache […] überflüssig macht.

Ich habe einen Beitrag dazu verfasst, wie Ihr PHP 5.6 auf Debian installiert.

12 Antworten auf „PHP 5.4 auf Debian Squeeze installieren“

  1. Hi Pascale,
    danke für deine Anleitung. Hat mir geholfen php auf 5.4 upzudaten auf meinem debian-server. Ich überlege, ob debian überhaupt noch die richtige Wahl ist, wenn das PHP 5.4 Paket nicht „von Haus aus“ über apt ausgeliefert wird.
    Bei phpMyAdmin habe ich auch festgestellt, dass eine völlig veraltete Version ausgeliefert wird. Weißt du, warum das so ist?

    Gruß
    Roman

    1. Hallo Roman,

      Ja, das ist wirklich ein Problem bei Debian. Aber ich muss dazu sagen, dass du deswegen Debian nicht schlecht machen kannst, weil andere, selbst neuere Distributionen, nicht anders sind. Es ist eben schon rein logistisch gesehen ein riesiger Aufwand, alle Pakete aktuell zu halten – und es widerspricht eben auch der Philosophie von Debian.

      Es hat nämlich einen Grund, warum Debian die weitverbreiteste Server-Distribution überhaupt ist, nämlich dass es extrem stabil und ausgereift ist. Falls du aktuelle Software und Kernel willst, solltest du vielleicht zu einer Rolling-Release-Distribution wie ArchLinux wechseln. Interessanterweise überlegen die Macher von Ubuntu auch gerade, ein Rolling-Release Modell anzubieten.

      Aber ganz ehrlich: Da bevorzuge ich doch lieber die Popularität und Stabilität Debians, ich meine, du bekommst im Netz wirklich immer Hilfe, wenn du nicht weiterkommst, und es gibt genug Experten, die sich damit auskennen. Das ist zwar irgendwie ein Selbstläufer, aber auf der anderen Seite findet man eben mehr im Netz als zu neueren, unbekannteren und vielleicht technisch gesehen viel besseren Distributionen.

      Zum Glück aber gibt es eben noch externe Paketanbieter wie dotdeb!

      Ich habe wirklich letzte Woche noch phpMyAdmin installiert, lustig, dass du das ansprichst. Klar, auch hier bietet Debian auch eine total veraltete Version an, aber mal ehrlich: Du brauchst ja wirklich nur ein Unterverzeichnis auf deinem Webserver erstellen und das Programm dorthin einfügen und das /setup/-Verzeichnis im Browser aufrufen, das ist ein Aufwand von 5 Minuten.

      Ich hoffe, ich konnte dir ansatzweise helfen 😉

      Grüße,
      Pascale

  2. Hallo Pascale,

    Erst mal vielen Dank für diese anfängertaugliche Anleitung.
    Da ich jedoch kein Linux-Profi, sondern eigentlich ein M$-Admin bin, hätte ich noch ein paar Fragen dazu.
    Ich habe auf meinem Server schon einiges laufen, wie z.B. mysql, apache2, postfix, dovecot u.s.w.
    Inwieweit muss ich befürchten, dass ich mir mit dem neuen php Probleme einfange? Leider hat es sich nämlich als außerordentlich schwierig bis unmöglich herausgestellt, herauszufinden, wie die Kompatibilitätsverhältnisse sind.
    Wie kann ich im Zweifelsfall php 5.4 wieder entfernen und auf 5.3 „downgraden“.
    Kann ich 5.4 parallel zu 5.3 benutzen?
    Eigentlich brauche ich 5.4 nämlich nur für typo3 6.0, der Rest kann durchaus auch auf 5.3 bleiben.

    Liebe Grüße aus dem schönen Österreich
    Rainer

    1. Hallo Rainer,

      Du brauchst dir wegen Kompatiblitätsproblemen keine Sorgen zu machen. Du kannst dich darauf verlassen, dass vorhandene Software nahtlos funktioniert.

      Falls du widererwartend Probleme haben solltest, kannst du einfach die hinzugefügten Zeilen aus der /etc/apt/sources.list entfernen, die Paketliste mit apt-get update aktualisieren und via apt-get remove php5* PHP 5.4 entfernen und mittels apt-get install php5 die normale PHP 5.3-Version installieren.

      Grüße

        1. Hallo Kai,

          Vielen Dank für deinen Kommentar.

          Du hast nicht ganz recht, denn die mysql_list_dbs Funktion ist in PHP 5.4 veraltet und wird erst mit PHP 5.5 entfernt. Falls Rainer denn überhaupt diese Funktionen nutzt, machen die erst mit 5.5 Probleme 😉

  3. Hallo Pascale,

    ich habe folgende Frage zum Update auf php5.4

    Ich nutze einen Debian Server mit der PHP Version 5.3.3-7+squeeze17

    Ich habe alles wie beschrieben gemacht und es erscheint dann folgendes wenn ich mit dem Befehl “ apt-get install php5″ php5.4 installieren möchte.

    +++++++++++++++++++++++++++++++++++++++++++++
    puck435:~# apt-get install php5
    Paketlisten werden gelesen… Fertig
    Abhängigkeitsbaum wird aufgebaut
    Statusinformationen werden eingelesen… Fertig
    Die folgenden zusätzlichen Pakete werden installiert:
    libapache2-mod-php5 php5-cgi php5-cli php5-common php5-curl php5-gd php5-imap php5-mysql php5-sqlite php5-xsl
    Vorgeschlagene Pakete:
    php-pear
    Die folgenden Pakete werden ENTFERNT:
    php5-suhosin
    Die folgenden Pakete werden aktualisiert (Upgrade):
    libapache2-mod-php5 php5 php5-cgi php5-cli php5-common php5-curl php5-gd php5-imap php5-mysql php5-sqlite php5-xsl
    11 aktualisiert, 0 neu installiert, 1 zu entfernen und 2 nicht aktualisiert.
    Es müssen noch 0 B von 11,9 MB an Archiven heruntergeladen werden.
    Nach dieser Operation werden 3.770 kB Plattenplatz zusätzlich benutzt.
    Möchten Sie fortfahren [J/n]? j
    Lese Changelogs… Fertig
    php5 (5.4.4-7) unstable; urgency=low

    * As a side effect of the MIME-Type changes in the mime-support package,
    the default Apache 2 configuration will no longer perform HTTP content
    negotiation on the PHP file extensions, which was very questionable
    anyway. If you really want to re-enable this support then please read
    /usr/share/doc/php5-common/README.Debian file for further
    instructions.

    — Ondřej Surý Wed, 29 Aug 2012 09:18:41 +0200

    php5 (5.4.4-5) unstable; urgency=low

    * As a security measure the default configuration for Apache 2 has been
    changed to a stricter model. Only files which have the correct
    rightmost extension, and at least one character in the filename before
    that extension, are now interpreted by PHP. For a full list of
    handled extensions please see the Apache 2 configuration. At the time
    of writing this paragraph, the list includes the following regular
    expressions:

    1. .+.ph(p[345]?|t|tml)$ for PHP files (application/x-httpd-php)
    2. .+.phps$ for PHP source files (application/x-httpd-php-source)

    Previously, as a side effect of system MIME type definitions, the
    default configuration would allow the interpreting of files with a
    double extension, where the second extension was either unrecognised
    or a language or content encoding to be interpreted; e.g. an uploaded
    file named blackhat.php.foobar or index.php.cs would be interpreted by
    PHP. These non-standard definitions have been removed from the
    mime-support packages and all configuration of PHP handlers is now
    defined in the Apache 2 configuration files.

    The standard configuration now also denies access to files with names
    which consist of an extension and nothing more; e.g. accessing ‚/.php‘
    will now return Access Denied instead of the output of the PHP script.

    You can use the following command to find whether there are any files
    on your system which would be affected by this change (change
    to the directory name where you store PHP files on your system):

    # find -name ‚*.ph[pt].*‘ -o -name ‚*.php[345s].*‘ -o
    -name ‚*.phtml.*‘ -o -name ‚.ph[pt]‘ -o
    -name ‚.php[345s]‘ -o -name ‚.phtml‘

    — Ondřej Surý Tue, 21 Aug 2012 09:14:47 +0200

    php5 (5.4.0~rc8-1) unstable; urgency=low

    php5-fpm default www spool now listens on unix socket located
    in /var/run/php5-fpm.sock instead of localhost:9000. If you
    have configured your webserver to use localhost:9000, you will
    have to change your settings.

    — Ondřej Surý Wed, 08 Feb 2012 08:25:30 +0100

    php5 (5.4.0~rc6-2) unstable; urgency=low

    t1lib support was removed from PHP 5.4. t1lib has many security
    issues and is unmaintained by upstream for a very long time (3 years).

    For more information see:
    /tmp/tmpMYnYWS
    +++++++++++++++++++++++++++++++++++++++++++++

    Was kann da das Problem sein?

    Ich danke dir schon mal für dein Hilfe….

    lg Mario

    1. Ich würde dir empfehlen, deinen Server frisch aufzusetzen und mit der Installation von PHP anzufangen.

      Bei dir ist ja definitiv Apache drauf, der wirft da einiges durcheinander.

      Dann kannst du das Problem besser nachvollziehen 😉

      Grüße,
      Pascale

      1. Hallo Pascale,

        das System frisch aufsetzen ist für mich persönlich nur zu viel Aufwand. Ich habe ziemlich wichtige Pages und Teamspeak Server auf dem Root laufen. Und von daher ist es ein riesen Aufwand 🙁

        1. Alles klar – Wenn du magst, kannst du mir mal eine Mail mit deinen TS-Daten schicken, dann können wir uns das wenn du willst noch heute Abend anschauen.

          Grüße,
          Pascale

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.