FAQ zu PHP

PHP Version & Upgrade Tipps

Die aktuell installierten PHP-Versionen mit Angaben zur Support-Laufzeit findest du unter hier.

OPcache Status

Zend OPcache ist für alle Kunden standardmässig aktiviert. Um den PHP OPcache zu analysieren, hast du als Kunde jederzeit Zugriff auf folgende zwei Tools:

Diese Tools brauchst du nicht selbst zu installieren! Ruf diese einfach innerhalb deiner eigenen Domain resp. Subdomain auf, z.B.:

  • <KUNDENDOMAIN>/opcache-gui z.B. https://www.deine-domain.ch/opcache-gui
  • <KUNDENDOMAIN>/opcache-status z.B. https://www.deine-domain.ch/opcache-status

Diese Tools sind Passwort-geschützt. Du kannst dir dazu Zugang verschaffen, indem du in unserem Controlpanelopen in new window unter "Verzeichnisschutz" eine Passwort-Liste mit Name status (muss exakt so heissen! Gross/Kleinschreibung beachten!) anlegst. Melde dich dann für die OPcache status tools mit dem von dir definierten Benutzer/Passwort an.

opcache-guiopen in new windowopcache-statusopen in new window
php-opcache-guiphp-opcache-gui

ACHTUNG

Bei einem Symlink-Deployment (z.B. current Symlink, der auf den aktuellen Release zeigt), musst du immer am Ende des Deployments den OPcache der entsprechenden PHP-Version mittels opcache-reset (oder via unser Controlpanel) leeren! Beachte dazu bitte unsere Anleitung: Shell-Tricks > PHP > Reset OPcache

FPM-Pool Status

Jedes Hosting-Abo verwendet seine eigenen PHP FPM-Pools, einerseits aus Sicherheitsgründen und anderseits um die Ressourcen (insb. Anzahl aktive PHP-Prozesse) zu verwalten und optimal zu verteilen. Pro Hosting und pro PHP-Version läuft jeweils ein FPM-Pool, d.h. jeweils ein Pool für PHP 8.0 / 8.1 / 8.2. Ein FPM-Pool ist üblicherweise auf max. 50 aktive PHP-Prozesse limitiert.

Verwendest du SSH (siehe unsere Anleitungen unter Shell Tipps & Tricks), kannst du aus der Console den Status eines PHP FPM-Pools so anzeigen, am Beispiel web999 – dein Username, mit welchem du dich auch via SSH am Webserver anmeldest:

# PHP 8.0
$ systemctl status fpm-pool-php80@web999
# PHP 8.1
$ systemctl status fpm-pool-php81@web999
# PHP 8.2
$ systemctl status fpm-pool-php82@web999
● fpm-pool-php82@web999.service
     Loaded: loaded (/etc/systemd/system/fpm-pool-php82@.service; static)
     Active: active (running) since Fri 2023-03-17 07:01:08 CET; 3h 10min ago
TriggeredBy: ● fpm-pool-php82@web999.socket
   Main PID: 872763 (php-fpm8.2)
     Status: "Processes active: 0, idle: 0, Requests: 956, slow: 0, Traffic: 0req/sec"
      Tasks: 1 (limit: 618681)
     Memory: 49.9M
        CPU: 16.924s

Alternativ dazu kannst du aber auch die wichtigsten Werte (insb. active processes) via Browser einsehen, indem du innerhalb deiner eigenen Domain resp. Subdomain /fpm-status aufrufst, z.B.:

  • <KUNDENDOMAIN>/fpm-status z.B. https://www.deine-domain.ch/fpm-status

Diese Status-Seite ist Passwort-geschützt. Du kannst dir dazu Zugang verschaffen, indem du in unserem Controlpanelopen in new window unter "Verzeichnisschutz" eine Passwort-Liste mit Name status (muss exakt so heissen! Gross/Kleinschreibung beachten!) anlegst.

Eine solche Status-Seite für oben stehenden PHP FPM-pool sieht so aus:

pool:                 web999-php82
process manager:      ondemand
start time:           17/Mar/2023:07:01:08 +0100
start since:          11752
accepted conn:        986
listen queue:         0
max listen queue:     0
listen queue len:     0
idle processes:       0
active processes:     1
total processes:      1
max active processes: 1
max children reached: 0
slow requests:        0

Erhöhung max_execution_time

Evtl. bist du in deiner Webapplikation oder CMS (hier am Beispiel Typo3open in new window) über folgende Warnung gestolpert:

Low PHP script execution time

Your max_execution_time is low. While TYPO3 often runs without problems with 30 seconds, it may still happen that script execution is stopped before finishing calculations. You should monitor the system for messages in this area and maybe raise the limit to 240 seconds: max_execution_time=240

Aus Sicherheitsgründen gewähren wir nicht allen Kunden standardmässig eine solch hohe max_execution_time in PHP. Auch erlauben wir den Kunden nicht, die php.ini selbst zu editieren. Unsere Vorgabe für die max_execution_time ist aktuell 60 Sekunden.

Die Lösung ist jedoch einfach: Beantrage via unser Kontaktformularopen in new window eine Erhöhung dieses Wertes unter Angabe des betroffenen Webabos und wir richten dir dies ein - ohne Zusatzkosten!

TIP

Solche Fine-Tunings der PHP-Konfiguration können wir aktuell nur Kunden eines limePROopen in new window resp. Inhaber eines Dedicated-Webservers limeDEDICATEDopen in new window gewähren. Bitte beachte auch folgende Anleitung:

Folgendes Problem tritt insbesondere bei Neuinstallationen folgender CMS auf:

Achtung

Problem: Beim Aufruf deiner Website via Browser erhältst du einen HTTP erroropen in new window 500 Internal Server Error. Die letzte Zeile Ihres Error-logs (/logs/error.log) wird dabei ausgegeben:

Aus Sicherheitsgründen erlauben wir unseren Kunden nicht, gewisse Einstellungen via Options in .htaccess abzuändern. Folgende Zeile sollte also in deinem.htaccess auskommentiert werden:

#Options +FollowSymlinks

Danach tritt der Fehler Option FollowSymlinks not allowed here nicht mehr auf und du bist in der Funktionalität deiner Webapplikation keineswegs eingeschränkt.

INFO

Es ist bereits standardmässig Options +SymLinksIfOwnerMatch gesetzt. Symlinks (Symbolic links)open in new window sind also erlaubt, sofern sie durch den Kunden selbst angelegt wurden. Dies reicht in allen Fällen aus und Options +FollowSymlinks wird gar nicht erst benötigt, da sämtliche Dateien innerhalb eines Webabos immer demselben Webabo-spezifischen Systembenutzer gehören.

ACHTUNG

Dieser Fehler tritt insbesondere bei der Standard-Installation von Joomlaopen in new window auf. Hier wird im .htaccess jedoch vor der Options-Zeile explizit auf das Problem aufmerksam gemacht:

##
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE!
#
# The line 'Options +FollowSymLinks' may cause problems with some server configurations.
# It is required for the use of Apache mod_rewrite, but it may have already been set by
# your server administrator in a way that disallows changing it in this .htaccess file.
# If using it causes your site to produce an error, comment it out (add # to the
# beginning of the line), reload your site in your browser and test your sef urls. If
# they work, then it has been set by your server administrator and you do not need to
# set it here.
##

## Can be commented out if causes errors, see notes above.
Options +FollowSymlinks
Zuletzt aktualisiert: