WordPress: Lokaler Server mit Laragon und PHP 8 … läuft [Update]
Wozu eigentlich eine lokale Version der Website ? – Immer dann, wenn ein Update von Plugins oder eines Themes ansteht, ist es besser, wenn man das Update erst mal testen kann. Das gilt natürlich auch für die Umstellungen auf eine andere PHP-Version.
In dem Zusammenhang gibt es einige Möglichkeiten: Nachdem wir seit Jahren XAMPP als lokalen Server für WordPress – Webseiten eingesetzt haben, sind wir vor mehr als einem Jahr auf Laragon umgestiegen.
Alternativ kann man auch mit Bitnami oder Local by Flywheel einen lokalen Webserver einrichten.
In unserem ersten Beitrag hier auf haurand.com im Oktober 2019 hatten wir Laragon als lokalen Server für WordPress-Instanzen vorgestellt. Seitdem läuft das System problemlos und stabil. Außerdem kann man den lokalen Server auch relativ leicht erweitern. Das wollen wir nachfolgend am Beispiel der PHP-Version 7.4.8 zeigen:
Eine andere PHP-Version auf Laragon zusätzlich einrichten
In der Regel ist es bei Verwendung von Laragon sehr einfach, eine weitere PHP-Version zu installieren. Man braucht lediglich das entsprechende Paket auf der folgenden Seite runterzuladen. Nehmen wir als Beispiel PHP 7.4. In diesem Fall laden wir die Version auf den lokalen Rechner runter. Anschließend entpacken wir die PHP-Version wie hier am Beispiel auf Laufwerk D in dem folgenden Ordner: D:\laragon\bin\php\php-7.4.8-Win32-vc15-x64
Wenn man anschließend Laragon startet, kann man alternativ diese PHP-Version auswählen. Der Vorteil verschiedener PHP-Versionen auf der lokalen Entwicklungsumgebung besteht darin, dass ich jeweils mit der gewählten Version sehen kann, ob die lokale Webseite gut funktioniert. Je nach Version kann es da durchaus schon einige Probleme mit dem einen oder anderen Plugin geben. Aber dazu später noch ein paar Anmerkungen bezogen auf PHP 8. Das war auch der Anlass für diesen Beitrag.
Die Lösung für Laragon und PHP 8
Das lief auch bis zur PHP-Version 8, die im November veröffentlicht wurde, absolut problemlos. Also habe ich wieder die entsprechende Version von php-8.0.0-Win32-vs16-x64 runtergeladen. Anschließend wie gewohnt im entsprechenden Ordner entpackt und dann kam die erste Fehlermeldung.
Update, 5.6.2021: Mit der neuen Version Laragon 5 ist das Problem behoben, so dass die Umstellung von PHP 7.x auf PHP 8.x jetzt genauso problemlos läuft wie bei den anderen Versionen vorher. Die nachfolgenden Infos betreffen daher nur noch die Version Laragon 4.x.
Glücklicherweise hatte sich das bereits im Laragon-Forum rumgesprochen. Die Lösung war nicht so ganz einfach, wie es da beschrieben war.
Der erste Fehler konnte über die Einstellungen in der Datei mod_php.conf
im Ordner \laragon\etc\apache2
korrigiert werden (im Beispiel wurde Laragon auf D: installiert):
# This file is auto-generated, so please keep it intact.
LoadModule php8_module "D:/laragon/bin/php/php-8/php8apache2_4.dll"
PHPIniDir "D:/laragon/bin/php/php-8"
<IfModule mime_module>
AddType application/x-httpd-php .php
</IfModule>
Hier muss php8_module
durch php_module
ersetzt werden.
Die Hintergründe für das Problem können in dem o. g. Foren-Beitrag nachgelesen werden. Nur kurz: Bis dato war in der genannten Datei immer die PHP-Version (also php7_module
, etc. ) genannt. Das hat sich mit der neuen Version PHP 8 geändert.
Das war es (fast)
Damit war es aber nicht getan. Apache startet zwar jetzt korrekt, aber beim Aufruf haben wir massive Fehler. Das konnten wir übrigens beim Schreiben dieses Beitrags nicht mehr reproduzieren. Sollte das Problem auftauchen, dann muss auch der folgende Punkt mit der php.ini noch bearbeitet werden:
Grund für diese massiven Fehler ist die php.ini im Ordner \laragon\bin\php\php-8
. Hier waren offensichtlich sämtliche extensions deaktiviert. Wenn man sich das genauer ansehen möchte, findet man auch dazu weitere Hintergrundinfos im Laragon-Forum. In den Einstellungen ist das gut zu sehen:
Wenn man die php.ini aus dem Ordner der Version 7.4.8 mit denen der php.ini aus dem Ordner der Version 8.0 vergleicht, dann sucht man am besten nach bz2
. In der php.ini der Version 8 löscht man die Kommentarzeichen (;
) vor den entsprechend aufgelisteten Zeilen.
Bei uns hat das mit den folgenden Einstellungen in der php.ini funktioniert:
;extension=bz2
extension=curl
;extension=ffi
;extension=ftp
extension=fileinfo
extension=gd
;extension=gettext
;extension=gmp
extension=intl
;extension=imap
;extension=ldap
extension=mbstring
;extension=exif ; Must be after mbstring as it depends on it
extension=mysqli
;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
;extension=odbc
extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
extension=pdo_sqlite
;extension=pgsql
;extension=shmop
; The MIBS data available in the PHP distribution must be installed.
; See http://www.php.net/manual/en/snmp.installation.php
;extension=snmp
;extension=soap
;extension=sockets
;extension=sodium
extension=sqlite3
extension=tidy
extension=xsl
WordPress und PHP 8
Beim Aufruf einiger WordPress-Seiten erhalten wir Fehlermeldungen. Dies betrifft hauptsächlich Plugins, bei denen Funktionen verwendet werden, die in PHP 8 veraltet (deprecated) sind und dadurch diese Fehlermeldungen verursachen. In einem Fall wurde ein „Fatal Error“ ausgeworfen. Bei anderen Plugins erhalten wir Warnungen. Insofern gibt es für manchen Entwickler von Plugins und Themes jetzt Handlungsbedarf.
Einige WordPress-Instanzen hatten allerdings keinerlei Probleme mit der neuen Version. In dem Zusammenhang möchte ich einen Beitrag von raidboxes nennen, der zu dem folgenden Schluss kommt:
Kompatibilitätsprobleme sind auch ein Grund, warum PHP 8 nicht sofort im RAIDBOXES Dashboard für unsere Kund:innen verfügbar ist. Denn besonders nach Major Updates ist es immer sinnvoll, den Plugin Entwickler:innen ausreichend Zeit für eventuelle Anpassungen zu geben und vorerst abzuwarten.
Quelle: https://raidboxes.io/blog/webdesign-development/php-8/
Fazit
Mit Laragon 5 ist dieses Problem behoben. Die genannten Umstellungen auf PHP 8 beim lokalen Server, den wir mit Laragon 4 eingerichtet haben, betrifft als nur diese Version. Leider ist das keine dauerhafte Lösung. Zumindest die Änderung an der mod_php.conf
mussten wir nach Umstellung auf PHP 7.4 und erneuter Umstellung auf PHP 8 wiederholen.
Wir werden zur Zeit eher nicht auf die Version 8 umstellen, sondern warten erst mal ab, ob und wann die eingesetzten Plugins überarbeitet worden sind. Aber alleine, um einen Einblick zu erhalten, wo es „klemmt“, hat sich die Arbeit in und an Laragon auf jeden Fall gelohnt.
Links und Quellen
- Laragon Simplicity Series‘ Articles:
https://dev.to/dendihandian/series/13731 - Website Laragon:
https://laragon.org/ - Gute Dokumentation:
https://laragon.org/docs/ - Ausführliche Anleitungen in Englisch:
https://www.kreaweb.be/laragon/
Mehr erfahren auf dieser Webseite
Schreibe einen Kommentar