# PHP-Erweiterungen und Einstellungen

Source: https://support.kapsulehost.com/de-de/php-extensions-and-ini

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](https://support.kapsulehost.com/help/screenshots/php-extensions-and-ini.2214ab47.webp)

## 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.

> **Tip:** Ä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](https://support.kapsulehost.com/de-de/staging-environments).

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](https://support.kapsulehost.com/de-de/changing-php-version) und [Fehlerprotokolle](https://support.kapsulehost.com/de-de/error-logs).

## 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.

| Einstellung | Standard | Verfügbare Werte | Was sie steuert |
|---|---|---|---|
| `memory_limit` | 256M | 128M, 256M, 512M, 1024M, 2048M | Wie viel Speicher eine Anfrage nutzen darf |
| `max_execution_time` | 30 | 30, 60, 120, 300, 600 | Wie viele Sekunden eine Anfrage laufen darf |
| `upload_max_filesize` | 64M | 16M, 32M, 64M, 128M, 256M | Die größte einzelne Datei, die hochgeladen werden kann |
| `post_max_size` | 65M | 17M, 33M, 65M, 129M, 257M | Die größte gesamte Formularübermittlung |
| `max_input_vars` | 3000 | 1000, 3000, 5000, 10000 | Wie 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](https://support.kapsulehost.com/de-de/wordpress-memory-limit).
- **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](https://support.kapsulehost.com/de-de/wordpress-wp-cli).

> **Note:** `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](https://support.kapsulehost.com/de-de/sftp-access).

Das Format ist eine Direktive pro Zeile:

```ini
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.

> **Warning:** 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](https://support.kapsulehost.com/de-de/wordpress-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](https://support.kapsulehost.com/de-de/opening-a-support-ticket).

## 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](https://support.kapsulehost.com/de-de/adding-ssh-keys).

> **Warning:** 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

- [PHP-Version ändern](https://support.kapsulehost.com/de-de/changing-php-version)
- [WordPress-Speicherlimit](https://support.kapsulehost.com/de-de/wordpress-memory-limit)
- [Fehlerprotokolle](https://support.kapsulehost.com/de-de/error-logs)
- [HTTP-Fehlercodes](https://support.kapsulehost.com/de-de/http-error-codes)
- [Seitenverlangsamung und Ressourcenlimits](https://support.kapsulehost.com/de-de/site-slow-resource-limits)
- [WordPress und .htaccess](https://support.kapsulehost.com/de-de/wordpress-htaccess)
- [Hosting-Glossar](https://support.kapsulehost.com/de-de/glossary)
