Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,075 of 9,075 pages
About the help in other languages
All help pages

PHP-Auswahl und FPM-Pools

Wie Sie einer Exponential-Website auf einem Server mit Panel das richtige PHP geben - das Web-PHP und das PHP der Kommandozeile müssen übereinstimmen, ein PHP-FPM-Pool pro Website, der als Benutzer der Website läuft…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/hosting/panels/php-selection-and-fpm-pools.md

On this page

This page is a translation. Read the English original

PHP-Auswahl und FPM-Pools

Diese Seite ist für Systemadministratoren und Support-Mitarbeitende bei Hosting-Anbietern, die PHP für Exponential-Websites auf Servern mit Panel auswählen und konfigurieren. Sie beantwortet, welche PHP-Versionen Sie anbieten, warum das PHP der Kommandozeile genauso zählt wie das Web-PHP, wie ein PHP-FPM-Pool für eine Exponential-Website aussehen sollte und wie Sie nach einer Änderung das richtige PHP neu laden, was auf Servern mit mehreren PHP-Versionen der häufigste Fehler ist.

Inhalt

  1. Welche PHP-Versionen Sie anbieten
  2. Web-PHP und PHP der Kommandozeile
  3. Ein Pool pro Website
  4. Pool-Einstellungen für Exponential
  5. OPcache
  6. Das richtige PHP-FPM neu laden
  7. Einschränkungen, die Panels oft setzen
  8. Checkliste

Welche PHP-Versionen Sie anbieten

Aus 2.2 PHP:

PHPStand
8.0unterstützt; läuft unter Apache mit mod_php oder PHP-FPM und ab dem Release 0.0.4.54 auch unter Velocity
8.1 bis 8.4unterstützt, einschließlich Velocity
8.5unterstützt; die neueste getestete Version
7.4ab 6.0.15 ohne Support nutzbar (keine Zusage für Fehler- oder Sicherheitskorrekturen, ohne die Funktionen, die PHP 8 brauchen); nicht von 6.0.8 bis 6.0.14

Nutzen Sie das neueste PHP, das Ihr System anbietet: Jede Version bringt Geschwindigkeit, und die älteren verlieren zuerst die Sicherheitsunterstützung. 64-Bit-PHP wird für die Unterstützung von mehr als 30 Sprachen empfohlen.

Hinweis Die Unterstützung für PHP 8.0 ist neu in 6.0.15; die Releases v6.0.8 bis v6.0.14 verlangen PHP 8.1. Eine Kunden-Website auf einem älteren Release 6.0.x braucht mindestens 8.1 (2.2).

Web-PHP und PHP der Kommandozeile

Exponential nutzt PHP zweimal: Das PHP des Webservers (PHP-FPM, mod_php oder die Worker von Velocity) liefert Seiten aus, und das PHP der Kommandozeile (php) führt Composer, die Installer, die Konsole, die Cronjobs und Velocity selbst aus. Beide müssen eine unterstützte Version sein und dieselben Erweiterungen haben. Auf Maschinen mit mehreren PHP-Versionen (Plesk, Remi) ist das php im PATH oft nicht das, das der Webserver nutzt (Kommandozeile und Web-PHP).

Was schiefgeht, wenn sie sich unterscheiden: Composer wählt Paketversionen, die das Web-PHP nicht ausführen kann, oder eine Installation gelingt auf der Kommandozeile, und der Browser zeigt eine weiße Seite.

php -v; php -m                       # the PATH's PHP
/opt/plesk/php/8.5/bin/php -v        # a Plesk PHP by its path
php --ini                            # the files the command line PHP reads

Vergleichen Sie mit der Webseite auf Setup > Systeminformationen, die zuerst sagt, welcher Server geantwortet hat und wie er PHP ausführt (Systeminformationen).

Tipp Wenn ein Panel die PHP-Version einer Website ändert, ändern Sie im selben Schritt das PHP der Kommandozeile in den Cron-Zeilen dieser Website und in cronjob.ini [AdminSettings] PhpCliPath (Cron und Shell-Zugang).

Ein Pool pro Website

  • Der Pool führt PHP als Benutzer der Website aus (8.5.2).
  • Wenn mehrere Kunden auf einer Maschine voneinander auf Ebene des Betriebssystems abgeschottet sein müssen, nutzen Sie einen klassischen Server mit einem PHP-FPM-Pool pro Website (8.1).
  • Alles, was var/ schreibt (Pool, Cron, Konsole, Velocity-Worker), läuft als dieser eine Benutzer (8.7.2).

Wo Pools liegen, laut den Quellen:

SystemVerzeichnis der PoolsDienst
Plesk/opt/plesk/php/<version>/etc/php-fpm.d/<domain>.confplesk-php<XY>-fpm
Red-Hat-Familie, mitgeliefertes PHP/etc/php-fpm.dphp-fpm
Parallele Installationen von Remi/etc/opt/remi/php*/php-fpm.dphp<XY>-php-fpm
Debian und Ubuntu/etc/php/<version>/fpm/pool.d/php<version>-fpm

Quellen: Kapitel 2, Plesk und Debian, Engines von Velocity, welches PHP-FPM.

Pool-Einstellungen für Exponential

Einstellungen, die für Exponential zählen (in der Pool-Datei oder in php.ini): memory_limit (mindestens 256M; mehr für große Importe), max_execution_time, upload_max_filesize und post_max_size (Ihr größter Upload), OPcache an (8.5.2).

Kapitel 2 nennt einen minimalen Satz für eine produktive php.ini (oder die php_admin_value-Zeilen eines PHP-FPM-Pools):

memory_limit = 256M
max_execution_time = 60
date.timezone = Europe/Berlin
file_uploads = On
upload_max_filesize = 64M
post_max_size = 64M
allow_url_fopen = On
variables_order = "EGPCS"

Die Werte über den Mindestwerten sind Vorschläge, keine Anforderungen. Die Untergrenzen des Setup-Assistenten sind memory_limit 64M und max_execution_time 30 (2.5).

Zeitgrenzen für Anfragen. Neben max_execution_time kann ein Pool eine Anfrage nach einer Grenze in Echtzeit beenden (request_terminate_timeout), die set_time_limit() von PHP nicht überschreiben kann. Die Notizen zur MongoDB-Portierung beschreiben, wie der Setup-Assistent dadurch abgebrochen wird und die Grenze nur für die Installation erhöht wird (MongoDB-Unterstützung im Kernel). Unter Velocity ist das Gegenstück das requestTimeout der Engine (30 Sekunden; der Client erhält 504); halten Sie SQLiteTransactionWait von SQLite (Standard 25) unter dem Zeitlimit der Anfrage (9.2).

OPcache

Unter PHP-FPM schalten Sie OPcache in der php.ini des Pools ein und lassen die Zeitstempelprüfungen an: Setzen Sie auf einer Exponential-Website nie opcache.validate_timestamps=0; eine Cache-Datei, die nach dem Leeren neu geschrieben wird, würde bis zum Neustart von PHP in ihrer alten Form ausgeliefert (10.12 OPcache).

opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.interned_strings_buffer=32
opcache.validate_timestamps=1
opcache.revalidate_freq=2

Velocity setzt seine eigenen OPcache-Optionen in settings/velocity.ini [PHPSettings] IniOptions[]; siehe OPcache.

Das richtige PHP-FPM neu laden

Nach einer Änderung an einer PHP-Klasse, einem Operator oder einer INI-Datei laden Sie den FPM-Master neu, der die Website ausliefert (8.5.2). Auf Maschinen mit mehreren PHP-Versionen ist der Master, der die Website ausliefert, oft nicht der mit dem Namen php-fpm. Finden Sie ihn über seine Pool-Datei.

exp:velocity deploy erledigt das für Sie. [DeploySettings] PhpFpmService=auto (der Standard in settings/velocity.ini) findet in den vier Pool-Verzeichnissen oben die Pool-Konfiguration, die nach der Hosting-Domain der Installation benannt ist (/var/www/vhosts/<domain>/..., wie Plesk Pools benennt), oder eine, die das Verzeichnis der Installation nennt. Der Schritt ist ein Neuladen, sodass keine Anfrage verloren geht. Er braucht root (Engines von Velocity).

php bin/php/console exp:velocity deploy --dry-run --allow-root-user                # shows which service it found
php bin/php/console exp:velocity deploy --no-velocity --allow-root-user            # Apache/nginx site: caches + FPM reload

Setzen Sie PhpFpmService auf den Namen des Dienstes, um ihn festzulegen, oder auf disabled, wenn Velocity die Website allein ausliefert.

Einschränkungen, die Panels oft setzen

EinschränkungWirkung auf ExponentialQuelle
open_basedirder Setup-Assistent warnt; ezupdate sucht Composer zuerst innerhalb der Installation2.4, ezupdate
disable_functions mit proc_open, exec oder posix_killdie Seite Cronjobs kann keinen Job starten, die Crontab nicht lesen oder einen Job nicht anhalten; sie sagt, welches davonCronjobs
disable_functions mit opcache_get_statusSysteminformationen kann keine OPcache-Kennzahlen zeigen; der Cache funktioniert weiterSysteminformationen
variables_order ohne Eder optionale Test meldet, dass PHP keine Umgebungsvariablen registriertKapitel 12

Checkliste

  • To do: PHP 8.0 oder später angeboten (8.0 nur für Websites, die 6.0.15 oder später betreiben; Velocity braucht darauf 0.0.4.54 oder später).
  • To do: Dieselbe Version und dieselben Erweiterungen für Web und Kommandozeile; Cron und PhpCliPath folgen Änderungen der PHP-Version.
  • To do: Ein Pool pro Website, der als Benutzer der Website läuft.
  • To do: Pool-Einstellungen und OPcache wie oben; validate_timestamps an.
  • To do: exp:velocity deploy --dry-run nennt den richtigen PHP-FPM-Dienst.
  • To do: Die Einschränkungen des Panels sind mit ihren Wirkungen dokumentiert.

Demomodus in einem Pool. Eine öffentliche Demo kann ihre Umgebungsvariable aus ihrem eigenen Pool bekommen: env[EXP_DEMO_MODE] = 1 (funktioniert mit clear_env = yes), dann den Master dieser Version neu laden. Nie in einem Pool, den andere Websites teilen. Demomodus für Hoster, php-fpm-pool-demo.conf.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x