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.
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
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
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
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 mitapt-get update
aktualisieren und viaapt-get remove php5*
PHP 5.4 entfernen und mittelsapt-get install php5
die normale PHP 5.3-Version installieren.Grüße
Stimmt nicht ganz. Zwei Funktionen sind veraltet und wurden entfernt 😉
http://php.net/manual/en/migration54.deprecated.php
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 😉
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
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
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 🙁
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
Hi Pascale,
leider wird das heute nichts mehr, aber wenn du magst kann ich dir ja vorher Bescheid geben wenn es bei mir passt.
Liebe grüße Mario
Der Beitrag wurde im Rahmen des … nun ja, nicht gerade Frühjahrsputzes – aktualisiert.