Zum Inhalt springen
Inhalt
Fehlerbehebung

PHP-Erweiterungen und Einstellungen

Maschinelle Übersetzung. Das englische Original ist verfügbar.

PHP Versionen und Einstellungen, die KapsuleHost Webhosting für WordPress, WooCommerce und PHP-Seiten bereitstellt, welche Einstellungen Sie selbst ändern können, und warum eine Änderung bis zu fünf Minuten brauchen kann, um sichtbar zu werden.

Statische, Node.js- und Python-Seiten führen kein PHP aus. Alles rund um PHP für eine Seite befindet sich an einem Ort: Websites, klicken Sie auf die Seite, Einstellungen, dann PHP. Diese Seite enthält die Versionsauswahl, die Einstellungen, die Sie ändern können, einen Composer-Runner und das PHP-Fehlerprotokoll.

Die PHP-Seite für eine Website in KPanel, mit der Versionsauswahl und den änderbaren Einstellungen

Eine PHP-Version auswählen

Vier Versionen stehen zur Auswahl: 8.4, 8.3, 8.2 und 8.1. Neue Seiten verwenden standardmäßig 8.3.

Wählen Sie die neueste Version, die Ihre Software tatsächlich unterstützt. Neueres PHP ist spürbar schneller und wird länger mit Sicherheitsupdates versorgt. Der Grund, nicht sofort auf die neueste Version umzusteigen, ist die Kompatibilität: Ein altes Plugin oder ein vor Jahren geschriebener benutzerdefinierter Code kann auf einer Version, gegen die er nie getestet wurde, vollständig versagen.

Um sie zu ändern, wählen Sie die Version aus und klicken Sie auf Version anwenden. Die Änderung wird sofort wirksam, ohne dass Sie etwas neu starten müssen, und ohne Ausfallzeit.

Ändern Sie die PHP-Version zuerst auf der Staging-Umgebung, klicken Sie sich durch die Seite, und ändern Sie sie erst danach auf der Produktivumgebung. Wenn Sie es live tun müssen, tun Sie es, wenn Sie zusehen können, und wissen Sie, dass die Rückänderung nur einen Klick entfernt ist. Siehe Staging-Umgebungen.

Wenn eine Versionsänderung die Seite kaputt macht, wechseln Sie zurück zur vorherigen Version und lesen Sie das Protokoll. Der Fehler nennt die Datei, die nicht ausgeführt werden konnte. Siehe PHP-Version ändern und Fehlerprotokolle.

Einstellungen, die Sie ändern können

Die PHP-Seite zeigt fünf Einstellungen als Dropdown-Menüs. Dies sind diejenigen, die in der Praxis tatsächlich Probleme verursachen, weshalb sie hervorgehoben werden.

EinstellungStandardVerfügbare WerteWas sie steuert
memory_limit256M128M, 256M, 512M, 1024M, 2048MWie viel Speicher eine Anfrage nutzen darf
max_execution_time3030, 60, 120, 300, 600Wie viele Sekunden eine Anfrage laufen darf
upload_max_filesize64M16M, 32M, 64M, 128M, 256MDie größte einzelne Datei, die hochgeladen werden kann
post_max_size65M17M, 33M, 65M, 129M, 257MDie größte gesamte Formularübermittlung
max_input_vars30001000, 3000, 5000, 10000Wie viele Felder eine Übermittlung enthalten darf

Welche Sie brauchen:

  • Uploads schlagen oberhalb einer bestimmten Größe fehl: Erhöhen Sie upload_max_filesize und zusammen damit post_max_size.
  • Ein großes Formular oder ein Page-Builder verliert beim Speichern Felder: Erhöhen Sie max_input_vars. Das ist besonders ärgerlich, weil es unsichtbar ist, denn nichts gibt einen Fehler aus. Die zusätzlichen Felder werden stillschweigend verworfen.
  • Eine Seite bricht mitten im Laden ohne Fehlermeldung ab: Erhöhen Sie memory_limit. Siehe WordPress-Speicherlimit.
  • Ein langer Import oder Export läuft in ein Timeout: Erhöhen Sie max_execution_time und erwägen Sie, den Vorgang stattdessen über die Befehlszeile auszuführen. Siehe WP-CLI.

post_max_size muss größer sein als upload_max_filesize, weil der Upload innerhalb des Beitrags übertragen wird. Wenn Sie eine Kombination wählen, bei der das nicht zutrifft, korrigiert die Plattform post_max_size automatisch nach oben. Deshalb sehen Sie unter Umständen einen Wert, den Sie nicht gewählt haben.

Warum eine Änderung bis zu fünf Minuten dauert

Dies ist die häufigste Verwirrung auf dieser Seite, daher lohnt es sich, hier genau zu sein.

Ihre Einstellungen werden in eine .user.ini-Datei im Document-Root Ihrer Seite geschrieben. PHP liest diese Datei und speichert sie dann 300 Sekunden lang zwischen, also fünf Minuten. Bis dieser Zwischenspeicher abläuft, verwendet PHP weiterhin die vorherigen Werte.

Nach dem Speichern einer Änderung gilt also:

  • Die Seite meldet bis zu fünf Minuten lang weiterhin das alte Limit.
  • phpinfo() meldet bis zu fünf Minuten lang weiterhin das alte Limit.
  • Ein harter Neuladevorgang hilft nicht. Das Leeren des Browser-Caches auch nicht.
  • Sie müssen nichts neu starten, und Sie können es auch nicht. Warten Sie einfach.

Wenn mehr als fünf Minuten vergangen sind und sich der Wert nicht geändert hat, stimmt tatsächlich etwas nicht, und ein Ticket ist angebracht.

.user.ini selbst bearbeiten

Sie können .user.ini bei Bedarf direkt über SFTP oder SSH bearbeiten, oder wenn Sie eine Direktive benötigen, die das Panel nicht bereitstellt. Sie befindet sich im Document-Root Ihrer Seite. Siehe SFTP-Zugriff.

Das Format ist eine Direktive pro Zeile:

memory_limit = 512M
max_execution_time = 120

Zwei wichtige Einschränkungen dessen, was .user.ini kann:

Es funktioniert nur für Direktiven, die PHP pro Verzeichnis oder pro Benutzer erlaubt. Die fünf oben genannten erfüllen das alle. Direktiven, die nur auf Systemebene gesetzt werden können, wie etwa disable_functions oder das Laden einer Erweiterung mit extension=, werden in einer .user.ini-Datei ignoriert. Sie erzeugen keinen Fehler, sie bewirken schlicht nichts, weshalb Leute damit einen ganzen Nachmittag verbringen.

Das Panel liest nur einfache Schlüssel zurück. Direktiven, die einen Punkt enthalten, wie opcache.enable oder date.timezone, werden von PHP berücksichtigt, erscheinen aber nicht im Panel-Formular. Wenn Sie eine davon manuell setzen und später etwas über das Panel ändern, prüfen Sie danach die Datei.

KapsuleHost Webhosting läuft mit nginx, nicht mit Apache. .htaccess-Dateien liest niemand. PHP-Direktiven, die in einer .htaccess-Datei platziert werden, wie php_value memory_limit, bewirken hier überhaupt nichts. Verwenden Sie stattdessen .user.ini oder das Panel. Siehe WordPress und .htaccess.

Welche Erweiterungen verfügbar sind

Das Standard-Build ist breit angelegt und enthält alles, was WordPress, WooCommerce und die meisten PHP-Anwendungen benötigen.

Datenbanken: mysqli, pdo_mysql, sqlite3, pdo_sqlite Bilder: gd, imagick, exif Caching: Zend OPcache, redis, memcached Text und Gebietsschema: mbstring, iconv, intl, gettext, ctype XML und Daten: dom, simplexml, xml, xmlreader, xmlwriter, xsl, json Netzwerk: curl, soap, sockets, ftp, openssl Mathematik und Kryptographie: bcmath, sodium, hash, random Dateien und System: fileinfo, zip, zlib, phar, posix, pcntl, shmop, calendar, tokenizer

Ein versionsabhängiger Unterschied, den man kennen sollte: Die Erweiterung imap ist in 8.3 und früheren Versionen vorhanden, aber nicht in 8.4, da sie in dieser Version aus PHP selbst entfernt wurde. Wenn Sie eine Anwendung haben, die sie noch benötigt, bleiben Sie bei 8.3 oder migrieren Sie diese Anwendung auf eine moderne Mail-Bibliothek.

Nicht installiert: PostgreSQL-Treiber, MongoDB, Xdebug, mcrypt und kommerzielle Code-Loader wie ionCube und SourceGuardian.

Sie können Erweiterungen nicht selbst über das Panel aktivieren oder deaktivieren. Wenn Ihre Anwendung etwas benötigt, das nicht in der Liste steht, eröffnen Sie ein Ticket und beschreiben Sie, was Sie betreiben. Ob es hinzugefügt werden kann, hängt von der jeweiligen Erweiterung ab. Siehe Ein Support-Ticket eröffnen.

Prüfen, was tatsächlich geladen ist

Statt zu raten:

  • Auf WordPress: Werkzeuge, dann Website-Zustand, dann Info, dann Server. Dort werden die PHP-Version und die relevanten Limits aufgeführt.
  • Über SSH: php -v für die Version und php -m für die geladenen Erweiterungen. Siehe SSH-Schlüssel hinzufügen.

Lassen Sie keine phpinfo()-Datei in Ihrem Web-Root liegen. Sie veröffentlicht Ihre Pfade, Ihre Erweiterungen und Ihre Konfiguration an jeden, der sie findet, und automatisierte Scanner suchen genau nach diesem Dateinamen. Wenn Sie eine erstellen, um etwas zu prüfen, löschen Sie sie danach sofort.

Verwandte Anleitungen

War das hilfreich?

Sind Sie eine KI? Diese Seite als Markdown lesen

Verwandte Artikel

Meine Website lädt nicht: Diagnose-ChecklisteArbeiten Sie diese Schritte der Reihe nach durch. Jeder Schritt identifiziert entweder die Ursache oder schließt sie aus.…Website nicht erreichbar: Was Sie sehen, der Ursache zuordnenDies ist der produktübergreifende Entscheidungsbaum für eine Website, die nicht lädt. KapsuleHost betreibt mehrere Produkte, und der schnellste Weg zur Ursache…Cloudflare oder einen anderen Proxy mit KapsuleHost verwendenWie man einen Proxy oder ein CDN eines Drittanbieters vor einer KapsuleHost-Site einsetzt, einschließlich der zwei Einstellungen, die Sites unterbrechen, der…Langsame Website und RessourcenlimitsWas Ihr Hosting-Plan tatsächlich begrenzt, was passiert, wenn Sie eine Grenze erreichen, und wie Sie herausfinden, ob eine langsame Website ein…

Kommen Sie nicht weiter?

Fragen Sie Kora, die Ihr Konto kennt, oder wenden Sie sich an unser Team.

KontaktSupport kontaktieren