Kapitel 14 · 14.5
PHP-Einstellungen pro Verzeichnis und über .htaccess
Manchmal soll ein Verzeichnis anders funktionieren als der Rest Ihrer Website. Zum Beispiel ein Skript, das mehr Arbeitsspeicher oder ein höheres Upload-Limit benötigt. Das geht mit einer Datei .htaccess in diesem Verzeichnis. Unsere Server laufen mit LiteSpeed, und LiteSpeed liest PHP-Regeln in .htaccess.
Hinweis: Ein Fehler in .htaccess kann Ihre gesamte Website (oder das Verzeichnis) mit einem Fehler 500 unerreichbar machen. Erstellen Sie zuerst eine Kopie der Datei und testen Sie direkt nach dem Speichern. Wie Sie .htaccess finden und bearbeiten, lesen Sie in Versteckte Dateien wie .htaccess anzeigen und bearbeiten.
Eine PHP-Option für ein Verzeichnis anpassen
Fügen Sie in die .htaccess dieses Verzeichnisses Zeilen wie diese ein:
php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value memory_limit 384M
php_value max_execution_time 300
Für Optionen, die ein oder aus stehen, verwenden Sie php_flag, zum Beispiel php_flag display_errors off.
Die Regeln gelten für dieses Verzeichnis und alle darunter liegenden Verzeichnisse. Setzen Sie sie in die .htaccess von public_html, gelten sie für Ihre gesamte Website.
Tipp: Möchten Sie eine Option für Ihr gesamtes Paket anpassen? Dann machen Sie das besser in Select PHP version (siehe PHP-Optionen: upload_max_filesize, memory_limit und max_execution_time). So steht alles an einer Stelle, und Sie vergessen später nicht, dass noch Regeln in .htaccess stehen.
Eine andere PHP-Version für ein einzelnes Verzeichnis ist nicht möglich
Ihr gesamtes Paket verwendet die Version, die Sie in Select PHP version gewählt haben (siehe Die PHP-Version auswählen (Select PHP version)). Eine andere Version für ein einzelnes Verzeichnis oder eine Subdomain, zum Beispiel mit einer Zeile SetHandler application/x-lsphp83 in der .htaccess, funktioniert auf unseren Servern nicht. Steht eine solche Zeile noch in einer .htaccess-Datei, entfernen Sie diese bitte.
Muss eine einzelne Website wirklich mit einer anderen Version laufen als der Rest? Dann richten Sie für diese Website ein separates Hostingpaket ein. Läuft eine alte Website nur noch mit einer alten Version, lassen Sie diese aktualisieren (siehe Fehler nach einem PHP-Upgrade und das Fehlerprotokoll finden).
Kontrollieren, ob es funktioniert
- Erstellen Sie im Verzeichnis eine Datei info-test.php mit dieser einen Zeile: <?php echo PHP_VERSION, ' ', ini_get('memory_limit');
- Öffnen Sie sie in Ihrem Browser, zum Beispiel https://www.ihredomain.de/alterladen/info-test.php. Sie sehen die PHP-Version und den Arbeitsspeicher.
- Löschen Sie die Datei danach sofort. Lassen Sie keine Testdateien mit Informationen über Ihren Server auf Ihrer Website stehen.
Was funktioniert nicht?
- Eine eigene php.ini in Ihrem Verzeichnis hat keine Wirkung. Verwenden Sie Select PHP version oder .htaccess.
- disable_functions und open_basedir können Sie nicht über .htaccess anpassen. Diese gehören zur Sicherheit des Servers.
- Werte, die bei PHP-Einstellungen als Überschreibung für die Domain festgelegt sind (siehe PHP-Einstellungen in DirectAdmin oder Select PHP version: was ist der Unterschied?), haben Vorrang vor .htaccess.
