Skip to main content

PHP-Tuning (Custom-INI)

PHP-Tuning per Custom-INI

Die haeufigsten PHP-Werte (Memory, OPcache, APCu) sind pro Hostname konfigurierbar. Manche haben eigene Formularfelder, den Rest setzt du im Custom-INI-Textblock.

Wo?

Admin-Panel → Subscription → Bearbeiten → Tab Hostnames → beim gewuenschten Hostname aufklappen.

Direkte Formularfelder (kein Custom-INI noetig):

  • PHP Memory Limit (memory_limit, z.B. 1024M)
  • Upload Max Filesize (upload_max_filesize)
  • Post Max Size (post_max_size)
  • Max Execution Time (max_execution_time)
  • Max Input Vars (max_input_vars)

Alles andere → Custom-INI-Textblock.

Copy-&-Paste-Snippets

Grosse Symfony/Shopware/Laravel-Anwendung

memory_limit = 1024M
opcache.memory_consumption = 256
opcache.max_accelerated_files = 20000
opcache.revalidate_freq = 0
opcache.validate_timestamps = 1
apcu.shm_size = 128M
realpath_cache_size = 4096K
realpath_cache_ttl = 600

WordPress mit vielen Plugins

memory_limit = 512M
opcache.memory_consumption = 192
opcache.max_accelerated_files = 15000
apcu.shm_size = 64M

Produktion (Deploy-basiert, kein File-Watcher noetig)

opcache.validate_timestamps = 0
opcache.enable_cli = 1

validate_timestamps = 0 heisst: nach Code-Aenderungen musst du PHP neu laden (docker compose exec app apache2ctl graceful — oder wir exponieren dafuer noch einen Button im Admin). Bringt spuerbar Performance.

Sessions in APCu statt Dateien (kleine Latenz, kein Disk-IO)

session.save_handler = files
session.save_path = /tmp
; ODER (schneller, braucht apcu):
; session.save_handler = apcu

Whitelist — was ist erlaubt?

Der Custom-INI-Block wird beim Speichern gefiltert. Erlaubt sind unter anderem:

  • memory_limit, max_execution_time, max_input_time
  • post_max_size, upload_max_filesize, max_input_vars, max_file_uploads
  • date.timezone, default_charset, intl.default_locale
  • display_errors, display_startup_errors, log_errors, error_reporting
  • session.gc_maxlifetime, session.cookie_lifetime, session.cookie_secure, session.cookie_httponly, session.cookie_samesite
  • default_socket_timeout, realpath_cache_size, realpath_cache_ttl
  • output_buffering, output_compression
  • mail.add_x_header
  • opcache.* — alle OPcache-Einstellungen
  • apcu.* — alle APCu-Einstellungen
  • gd.* — GD-Bibliothek

Alles andere wird verworfen (mit Hinweis im Speicher-Feedback).

Was kann ich abfragen?

phpinfo() in einem PHP-File — zeigt alle aktiven Werte. Aber:

Achtung: phpinfo()-Ausgabe niemals oeffentlich stehen lassen (nur kurz aufrufen, dann sofort loeschen oder mit .htaccess blocken). Sie enthaelt viele interne Umgebungs-Details.