All Inkl schmeisst zur Zeit nach langer Ankündigung via E-Mail und via rotem Kasten im Kundenbereich die alten PHP-Versionen heraus. Das ist auch richtig so, denn die alten PHP-Versionen werden nicht mehr gepflegt, das bedeutet, dass da offene Sicherheitslücken enthalten sind.
Viele technisch nicht so versierte Kunden stehen nun also vor dem Problem, dass Sie Ihr PHP aktualisieren müssen, und nicht wissen, wie das geht. Manche haben auch zu spät gehandelt und kriegen nur noch „PHP version not supported“ statt ihrer gewohnten Website zu sehen. Daher hier eine kleine Anleitung.
Als allererstes: Backup erstellen
Als allererstes müssen wir ein komplettes Backup erstellen. Das Backup besteht aus Dateien und Datenbank. Wir nehmen also einen FTP-Client wie z.B. Filezilla, tragen dort die FTP Daten ein, die im KAS unter FTP -> Hauptnutzer zu finden sind, und laden sämtliche Dateien auf unseren lokalen Rechner. Außerdem gehen wir auf Datenbanken, suchen die verwendete Datenbank heraus, klicken auf phpMyAdmin (das Symbol mit den doppelten Computern), bestätigen Version 3, klicken auf Exportieren und auf ok, worauf phpMyAdmin ein komplettes Backup der Datenbank zum Download anbietet.
Voraussetzungen prüfen
Bevor man auf eine neue PHP-Version wechselt, sollte man schauen, ob das eingesetzte WordPress und alle Themes und Plugins kompatibel zu einer aktuellen PHP-Version sind. Insbesondere bei dem neuen, sehr schnellen PHP 7 kommt es bei veralteter Software zu Inkompatibilitäten.
Das WordPress muss für PHP 7 mindestens Version 4.3.1 haben. Allerdings ist es aus Sicherheitsgründen schon nicht zu empfehlen, derart veraltete WordPress-Versionen einzusetzen. Das gilt auch für Themes und Plugins: wenn diese seit Jahren kein Update mehr bekommen haben, sollten sie rausfliegen.
Wichtiges Detail: kommerzielle Themes z.B. von Themeforest werden oft nicht als Update angezeigt. Ebenso werden in Themes enthaltene kommerzielle Plugins oft nicht als Update angezeigt. Ein typisches Beispiel dafür ist der Visual Composer. Diese Themes und Plugins muss man also per Hand (also via FTP) updaten.
Wenn bereits die Website gesperrt ist, muss man das Update im Nachgang machen. Es lohnt sich, dann zunächst PHP 5.6 auszuwählen, da die meisten Themes und Plugins mit der älteren PHP 5.6 Version kompatibel sind.
Umstellen der PHP-Version im Kundenbereich
Die PHP-Version kann man recht einfach im Kundenbereich umstellen. Hierzu müssen wir im KAS auf Domain klicken. In der Domain-Liste wird die PHP-Version gleich mit angezeigt. Wenn wir auf bearbeiten klicken, kommen wir zu den Einstellungen der Domain. Dort können wir dann die neue PHP-Version auswählen.
Wenn man auf Nummer Sicher gehen will, sollte man PHP 5.6 einsetzen. PHP 7 bietet eine Menge Vorteile, u.a. eine deutliche Verbesserung der Geschwindigkeit. Es gibt jedoch eine Reihe an veralteter Software, die nicht zu PHP 7 kompatibel ist, darunter auch populäre Plugins wie z.B. der W3 Total Cache. Wenn man solche Themes und Plugins einsetzt, sollte man PHP 5.6 wählen und die Software ohne Updates schrittweise ersetzen.
PHP-Versionen in der .htaccess
Neben der Möglichkeit über den Kundenbereich konnte man auch in der .htaccess die PHP-Version umstellen. Dies war früher die einzige Möglichkeit, so dass viele Altinstallationen noch PHP-Versionen in der .htaccess gesteuert haben. Motivation waren dabei nicht selten das Abschalten der Dateirechte: die CGI-Versionen schalten die Dateirechte ab, worauf das in vielen Fällen in Anleitungen als Problemlöser für Dateirechte-Probleme auftaucht.
An die .htaccess kommt man ebenfalls via FTP dran. Wir verbinden uns also wie in Schritt 1 (Backup) z.B. mit FileZilla. Dann laden wir die htaccess herunter. Anschließend öffnen wir sie mit einem guten Editor. Achtung! Der Standard-Windows-Editor ebenso wie der Standard-Mac-Editor neigt dazu, Dateien mit Sonderzeichen auszustatten und so quasi zu zerstören! Nehmt für Windows Notepad++ und für den Mac sowas wie TextWrangler. Wenn ihr die Datei geöffnet habt, sucht nach folgender Zeile:
AddHandler phpXX-cgi .php
Löscht eine solche Zeile am Besten einfach raus und steuert die PHP-Version in Zukunft über das KAS. Das gilt ganz besonders dann, wenn XX 52, 53 oder 54 ist – dann wird nämlich eine veraltete PHP-Version eingesetzt.
CGI oder Apache Modul?
Wer bei der Auswahl der PHP-Version genau hingeschaut hat, hat bemerkt, dass es eine CGI- und eine Apache-Modul-Variante von PHP gibt. Der größte Unterschied ist, dass beim Apache Modul sichere Dateirechte möglich sind, bei der CGI-Variante dagegen nicht. Ich kann sichere Dateirechte nur empfehlen, da dies einer der wichtigsten Komponenten zur Abwehr von Angreifern ist (und strukturelle Sicherheit bietet – im Gegensatz zu den Sicherheitsplugins, welche viel versprechen und wenig halten). Viele eher nicht so versierte Kunden sind jedoch von sicheren Dateirechten überfordert, so dass das nicht für alle eine Option ist. Ich habe das Thema Dateirechte in einem eigenen Artikel ausführlich behandelt.
Kleiner Hinweis in diesem Zusammenhang: Um Ordnern wie wp-content/uploads oder wp-content/cache bei Verwendung des Apache Moduls Schreibrechte zu geben, ist chmod 777 für Ordner und chmod 666 für Dateien erforderlich. Das ist keine Sicherheitslücke wie bei anderen Hostern, da All Inkl Kundeninstallationen sauber von einander trennt (jailed). Andere Dateien wie Theme- und Plugin-Dateien dürften natürlich aber nicht chmod 777 / 66 haben, sondern ganz normal 755 / 644.
Wenn man als Apache Modul eine veraltete Version angeboten bekommt, so kann man diese ändern, indem man den All Inkl Support anschreibt. Dieser zieht einen dann über Nacht auf einen neuen Server mit einer neuen Apache-Modul-PHP-Version um.
Fehlerbehebungen
Nach dem Ändern einer PHP Version lohnt es sich, einmal in die Logs zu schauen, welche Fehler (neuerdings) auftreten. Das gilt natürlich ganz besonders dann, wenn offensichtliche Fehler in der Anzeige der Website sichtbar sind. Das erste Mittel der Wahl ist hier das error.log, dorthin protokolliert PHP alle auftretenden Fehler.
Das error.log wird bei PHP nicht automatisch angelegt; Man muss es durch eine eigene htaccess Regel ergänzen. Die passenden zwei Zeilen für die .htaccess kann man sich mit dem All Inkl .htaccess Generator erzeugen lassen. Das Ergebnis sieht dann etwa so aus:
php_flag log_errors on
php_value error_log "/www/htdocs/XXXXXXXX/YYYYYY/ZZZZZZ.txt"
XXXXXXXX ist dabei der Ordner, in dem sich der eigene Webspace befindet. Man findet ihn z.B. bei Domain -> Bearbeiten -> Stammverzeichnis. YYYYYYY ist der Ordner, in dem man die Logs ablegt. Den muss man via FTP erstellen und die Rechte chmod 777 geben. ZZZZZ ist die Datei, da lohnt es sich, einen Namen zu geben, den man auch wiedererkennen kann – z.B. den eigenen Domain-Namen.
Die beiden Zeilen kopiert man dann ganz an den Anfang der .htaccess und lädt die so aktualisierte .htaccess wieder hoch. Wie das im Detail geht, steht bereits unter der Überschrift „PHP-Versionen in der .htaccess“.
Hallo Ernesto,
glasklare Beschreibung, für Laien gut verständlich und leicht umsetzbar. Danke.
Gruß ins östliche Ruhrgebiet
Peter Oeste
Vielen Dank für den Artikel.
Ich hatte auf eine neuere PHP-Version umgestellt und mich gewundert, warum es nicht ging.
Der AddHandler in der .htaccess war Schuld!
Die Info hat mir das Wochenende gerettet!
1000 Dank
Arne
Deine Beiträge sind gold wert! Besten Dank für deine Mühe, auch Laien die kompliziertesten Sachen zu erlären!
Ich wollte gerade die PHP-Version wechseln, bin aber etwas verunsichert da die neusten PHP-Versionen bei All Inkl. alle nur CGI/FPM sind. Und du meintest ja bei der CGI-Variante sind keine Dateirechte möglich.
Was mach ich denn nun, wenn ich die neuste PHP-Version, aber nicht auf die Dateirechte verzichten möchte?
Beste Grüße,
Marco
Ganz einfach: den Support anhauen, ob du auf einen neueren Server mit einer höheren PHP-Version umziehen kannst. Das machen die recht fix über nacht. Es lohnt sich dabei, erst die Seite mit PHP 7.0 zu testen, dann kannst du nämlich gleich auf einen PHP 7 Server umziehen. Steht im Übrigen auch im Artikel 😉
Schuldig im Sinne der Anklage! Ich habe den Abschnitt tatsächlich übersehen. Umso mehr danke ich dir für den Hinweis 🙂
Vielen Dank für Deine einfach und verständliche Anleitung!!! Jetzt läuft alles wieder. 🙂
Hallo,
ich bin am Ende! Ich verstehe das alles nicht mit dem PhP, nur eines meine Website ist weg 🙁
Kann mir bitte jemand weiterhelfen, ich bin nicht so versiert am PC. Bitte um Hilfe!
Danke!
herzliche Grüße
Georgia
An welchem Punkt scheiterst Du denn?
Nachdem ich wie beschrieben die Zeile aus der .htaccess gelöscht hatte, war die Seite wieder online. Viele lieben Dank für diesen Tipp, der war Gold wert!
Wollte nur mal danke sagen für die super Anleitung! Wenn ich könnte, würde ich „liken“.
Gruß aus Wien
Danke für die Anleitung. Das hat mir enorm geholfen, denn eine einzige .htaccess hat in einem All Inkl. Account von 2013 den ganzen Quatsch verursacht.
Hätte nie danach gesucht wenn ich nicht deine Anleitung gefunden hätte.
Danke dafür.