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 Controlpanel 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-gui | opcache-status |
---|---|
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 Controlpanel 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 Typo3) ü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 Kontaktformular 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 limePRO resp. Inhaber eines Dedicated-Webservers limeDEDICATED gewähren. Bitte beachte auch folgende Anleitung:
Option FollowSymlinks not allowed here
Folgendes Problem tritt insbesondere bei Neuinstallationen folgender CMS auf:
Achtung
Problem: Beim Aufruf deiner Website via Browser erhältst du einen HTTP error 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) 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 Joomla 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