Plesk
Diese Seite ist für Hosting-Anbieter und Administratoren, die Exponential auf Servern betreiben, die von Plesk verwaltet werden. Plesk ist das Panel, das das Projekt selbst nutzt: Sein Entwicklungsserver ist AlmaLinux 9 mit Plesk, was Plesk auf AlmaLinux 9 zu Stufe 1 macht, jeden Tag getestet (Stufe 1). Die Seite beantwortet, wie PHP und Pools von Plesk aufgebaut sind, wie Sie eine Domain für Exponential einrichten, was Sie nach einer Änderung neu laden, wie Zertifikate, Logs und Cron dort funktionieren und wie Velocity neben Plesk läuft.
Warnung
.htaccessbremst jede Anfrage. Sind.htaccess-Dateien erlaubt (AllowOverridealles außerNone), geschweige denn genutzt, sucht Apache sie bei jeder Anfrage in jedem Verzeichnis des Pfads und liest und wertet sie aus, und die Ladezeiten der Seiten steigen drastisch (gemessen). Die einzige wirkliche Abhilfe ist, die Funktion für den virtuellen Host abzuschalten:AllowOverride Noneim virtuellen HTTPS-Host, und die Regeln in der Konfiguration des virtuellen Hosts selbst als mod_rewrite-Regeln. Das ist in Geschwindigkeitstests im Produktivbetrieb weit schneller und die Zeit für die Optimierung einer Produktivkonfiguration unbedingt wert. Stellen Sie sofort um: Übernehmen Sie die Regeln des Beispiels für einen virtuellen HTTPS-Host in Ihren virtuellen Host (mit dem statischen Cache auchstaticcache_offload.conf), setzen SieAllowOverride None, führen Sieapachectl configtestaus, laden Sie Apache neu und testen Sie die Website. Dieselben Regeln für andere Server: nginx, LiteSpeed, Caddy, IIS, Velocity (eingebaut); wohin Regeln für virtuelle Hosts in einem Control Panel gehören: Plesk, cPanel, DirectAdmin, ISPConfig. Unter LiteSpeed oder OpenLiteSpeed kann zusätzlich der Seiten-Cache des Servers anonyme Besucher und Crawler ohne PHP bedienen: Seiten-Caching mit LiteSpeed und OpenLiteSpeed.
Jedes Detail zu Plesk auf dieser Seite stammt aus den im Text zitierten Quellen von Exponential. Für alles andere in Plesk lesen Sie in der Dokumentation von Plesk nach.
Inhalt
- Was auf dem Entwicklungsserver läuft
- Das PHP von Plesk: Versionen, Erweiterungen, Kommandozeile
- Eine Domain einrichten
- PHP-FPM-Pools und der richtige Dienst
- nginx vor Apache
- Zertifikate
- Logs
- Cron
- Velocity neben Plesk
- Bekannte Auswirkungen von Plesk-Einstellungen
- Checkliste
Was auf dem Entwicklungsserver läuft
AlmaLinux 9 (x86_64, RHEL-9-Familie): der Entwicklungsserver des Projekts, mit Apache 2.4 und PHP-FPM 8.5 aus dem Plesk-Panel und Exponential Velocity auf derselben Installation; dort laufen Websites mit SQLite, MariaDB, MongoDB und Oracle (in einem Container), und ein PostgreSQL-Server steht zur Verfügung (Stufe 1). Plesk-Hosts auf den anderen Distributionen der Stufe 2 sind Stufe 2 (Stufe 2).
Das PHP von Plesk: Versionen, Erweiterungen, Kommandozeile
Aus Kapitel 2, Plesk:
- Plesk installiert jede PHP-Version unter
/opt/plesk/php/<version>/(zum Beispiel/opt/plesk/php/8.5/bin/php) neben dem PHP des Systems. Eine Domain nutzt die Version, die in ihren Hosting-Einstellungen gewählt ist; dasphpder Kommandozeile ist das des Systems. Führen Sie Composer und die Konsole mit dem PHP der Domain aus. - Die gebündelten Erweiterungen kommen mit dem PHP von Plesk und werden unter Tools & Settings > PHP Settings eingeschaltet;
PECL-Erweiterungen werden mit
/opt/plesk/php/<version>/bin/pecl install <extension>installiert.
/opt/plesk/php/8.5/bin/php -v
/opt/plesk/php/8.5/bin/php -m
/opt/plesk/php/8.5/bin/php bin/php/console exp:velocity ext checkWarnung Das
phpimPATHist das PHP des Systems, nicht das der Domain. Composer, mit dem falschen PHP ausgeführt, wählt Paketversionen, die das Web-PHP nicht ausführen kann, und eine fehlende Erweiterung zeigt sich dann als weiße Seite (Kommandozeile und Web-PHP). Rufen Sie für Composer, die Konsole, die Installer und Cron immer das PHP der Domain über seinen Pfad auf.
Eine Domain einrichten
Aus 8.5.3 Plesk: Plesk erzeugt den virtuellen Host selbst; bearbeiten Sie seine Dateien nicht. In Plesk:
- richten Sie den Document Root der Domain auf das Wurzelverzeichnis der Installation (das Verzeichnis mit
index.php); - wählen Sie in den PHP-Einstellungen „FPM application served by Apache“ und die PHP-Version;
- behalten Sie
.htaccess(aus.htaccess_rootkopiert); das Apache von Plesk liest sie; - installieren Sie das Zertifikat in Plesk (seine Let's-Encrypt-Erweiterung oder Ihr eigenes) und schalten Sie die Umleitung auf HTTPS ein.
cd /var/www/vhosts/<domain>/<docroot>
cp .htaccess_root .htaccessOder lassen Sie die Konsole kopieren und bringen Sie config.php auf dieselbe Weise an ihren Platz. Im SSH-Terminal
von Plesk (oder per SSH-Anmeldung) als Systembenutzer des Abonnements, mit dem PHP der Domain:
cd /var/www/vhosts/<domain>/<docroot>
/opt/plesk/php/<version>/bin/php bin/php/console exp:setup:status
/opt/plesk/php/<version>/bin/php bin/php/console exp:setup:htaccess --apply # .htaccess_root -> .htaccess
/opt/plesk/php/<version>/bin/php bin/php/console exp:setup:config --apply # config.php-RECOMMENDED -> config.phpDie Dateien gehören dann dem Benutzer des Abonnements, wie alles andere im Docroot. Als root braucht jeder Befehl
--allow-root-user; eine neue Datei erhält den Eigentümer der Vorlage (niemals root), und
--owner=<abonnement-benutzer>:psacln setzt ihn ausdrücklich. Ohne --apply wird nichts geschrieben, und eine
vorhandene, abweichende Datei wird als Diff gezeigt und behalten, solange Sie nicht --force angeben (die alte kommt
vorher nach var/backup/setup/<zeit>/). Der Dateimanager von Plesk kann die einfache Kopie ebenfalls anlegen,
übernimmt aber den Modus nicht und zeigt keinen Diff. Alles dazu:
.htaccess und config.php von der Konsole einrichten.
Die PHP-Werte, die der Setup-Assistent prüft (memory_limit 64M oder mehr, max_execution_time 30 oder mehr, date.timezone,
file_uploads, allow_url_fopen), werden in den PHP-Einstellungen der Domain gesetzt
(2.5). Die Notizen zur MongoDB-Portierung setzen FPM-Direktiven wie
request_terminate_timeout in den PHP-Einstellungen der Domain, im Feld Additional configuration directives (Plesk → Domains →
Ihre Domain → PHP Settings) (MongoDB-Unterstützung im Kernel).
PHP-FPM-Pools und der richtige Dienst
- Jede Domain hat ihren eigenen PHP-FPM-Pool in
/opt/plesk/php/<version>/etc/php-fpm.d/<domain>.conf, betrieben vom Dienstplesk-php<XY>-fpm(zum Beispielplesk-php85-fpm), nicht vonphp-fpm. Laden Sie nach einer Änderung an PHP diesen neu (Kapitel 2, Plesk). systemctl restart php-fpmstartet einen anderen Master neu, den keine Plesk-Website nutzt (8.5.3).
ls /opt/plesk/php/*/etc/php-fpm.d/ | grep <domain> # which PHP version serves the domain
systemctl reload plesk-php85-fpm # graceful, no dropped requestsexp:velocity deploy findet den richtigen Dienst selbst: settings/velocity.ini [DeploySettings] PhpFpmService=auto erkennt die
Pool-Konfiguration, die nach der Hosting-Domain der Installation benannt ist (/var/www/vhosts/<domain>/..., wie Plesk Pools benennt);
--dry-run zeigt, was gefunden wurde und warum (Engines von Velocity). Um ihn ausdrücklich
festzulegen:
# settings/override/velocity.ini.append.php
[DeploySettings]
PhpFpmService=plesk-php85-fpmMehr zu Pools: PHP-Auswahl und FPM-Pools.
nginx vor Apache
Plesk stellt nginx vor Apache, und mod_remoteip von Apache (RemoteIPHeader X-Forwarded-For, RemoteIPInternalProxy 127.0.0.1)
setzt REMOTE_ADDR auf den Besucher; nginx spricht über HTTPS mit Apache, sodass Apache HTTPS=on setzt. Der Kernel sieht dann den
Besucher als Gegenstelle und braucht keinen weitergeleiteten Header: nichts zu konfigurieren, und ClientIpByCustomHTTPHeader kann
auf false bleiben (Vertrauenswürdige Proxys).
Zertifikate
- Installieren Sie das Zertifikat der Domain in Plesk (seine Let's-Encrypt-Erweiterung oder Ihr eigenes), und schalten Sie die Umleitung auf HTTPS ein (8.5.3).
- Wenn Velocity oder FrankenPHP dieselbe Domain auf einem anderen Port ausliefert, können sie das Zertifikat nutzen, das Plesk hält:
Die Notizen zu FrankenPHP richten
[HTTPSSettings] CertificateundKeyauf eine Kopie des Let's-Encrypt-Zertifikats, das Plesk für den Host hält, exportiert aus/usr/local/psa/var/certificates/außerhalb des Document Root. - Plesk erneuert das Let's-Encrypt-Zertifikat nach eigenem Zeitplan und schreibt dabei eine neue Datei unter einem neuen Namen; die exportierte Kopie veraltet dann. Der Export muss nach jeder Erneuerung wiederholt werden, gefolgt von einem Neuladen (FrankenPHP, Erneuerung). Velocity prüft seine Zertifikatsdateien alle 60 Sekunden und tauscht ein geändertes, gültiges Paar live aus (8.3.9), aber nur, wenn der Pfad, den es liest, die neue Datei bekommt.
Siehe TLS-Zertifikate in Panels.
Logs
Die eigenen Logs von Exponential liegen unter var/log und var/<site>/log. Um die Logs des Webservers von Plesk in
Setup > Logdateien zu zeigen, nennen Sie sie in logviewer.ini (Log-Viewer):
# settings/override/logviewer.ini.append.php
[LogViewerSettings]
LogPath[webserver-access]=/var/www/vhosts/<domain>/logs/access_ssl_log
LogPath[webserver-error]=/var/www/vhosts/<domain>/logs/error_logDer Benutzer des Webservers muss die Datei lesen können (settings/logviewer.ini). Die Schlüssel webserver-access und
webserver-error stehen in der mitgelieferten LogList[].
Cron
Die Seite Cronjobs in der Administration braucht ein PHP für die Kommandozeile; auf einem Host mit mehreren PHP-Versionen setzen Sie
PhpCliPath auf die, auf der die Website läuft, zum Beispiel /opt/plesk/php/8.5/bin/php
(Cronjobs, Bevor Sie beginnen):
/opt/plesk/php/8.5/bin/php bin/php/console exp:ini set cronjob.ini/AdminSettings/PhpCliPath /opt/plesk/php/8.5/bin/php globalEine Crontab-Zeile mit dem PHP der Domain, wie die Seite sie vorschlägt:
17 * * * * cd /var/www/vhosts/<domain>/<docroot> && /opt/plesk/php/8.5/bin/php runcronjobs.php -s site infrequent >/dev/null 2>&1Richten Sie die Zeilen in der Crontab des Systembenutzers der Domain ein, damit die Dateien, die die Jobs schreiben, für den Pool beschreibbar bleiben (Cron und Shell-Zugang).
Velocity neben Plesk
Der Entwicklungsserver betreibt Velocity neben dem Apache von Plesk auf derselben Installation. Zu klärende Punkte:
- Ports. Apache und nginx von Plesk belegen 80 und 443; Velocity behält seine eigenen Ports (8088 und 8080 in der Auslieferung) oder sitzt hinter dem nginx von Plesk (8.3.5).
- Firewall. Manche Plesk-Installationen steuern firewalld oder nftables über die Plesk-Erweiterung Firewall. Wenn eine Regel, die
Sie mit
firewall-cmdhinzufügen, beim nächsten Anwenden durch Plesk verschwindet, fügen Sie sie stattdessen in Plesk hinzu (Tools & Settings → Firewall) (FrankenPHP). - Ein Benutzer. Die Worker von Velocity laufen als Systembenutzer der Domain (
[ServerSettings] User,Group), derselbe Benutzer wie der Pool von Plesk (8.7.2). - Ausrollen.
exp:velocity deploylädtplesk-php<XY>-fpmneu und startet Velocity in einem Lauf neu.
Bekannte Auswirkungen von Plesk-Einstellungen
| Symptom | Ursache in den Quellen | Was zu tun ist |
|---|---|---|
| Setup > Systeminformationen meldet, dass Statistiken zu OPcache nicht verfügbar sind | Plesk kann opcache_get_status für eine Domain in disable_functions setzen; der Cache funktioniert, nur seine Kennzahlen lassen sich aus PHP nicht lesen (Systeminformationen) | nichts, oder erlauben Sie die Funktion für die Domain |
| Eine Änderung an PHP wirkt nicht | der falsche Master wurde neu geladen (Kapitel 12) | plesk-php<XY>-fpm neu laden |
Ein Test scheitert im Browser, aber php -m sieht gut aus | die beiden PHPs unterscheiden sich: Installieren Sie die Erweiterung für das Web-PHP (auf Plesk die PHP-Version der Domain) | in der PHP-Version der Domain installieren und neu laden |
| ezupdate findet kein Composer des Systems | open_basedir (Standard bei Plesk) verbirgt die Systemordner, sodass ezupdate zuerst unterhalb des Wurzelverzeichnisses der Installation sucht (Einstellungen von ezupdate) | [ComposerSettings] Path/Binary setzen, oder mit Get Composer ein geprüftes composer.phar nach var/ezupdate/ herunterladen lassen |
| Ein langer Schritt des Setup-Assistenten wird abgebrochen | das request_terminate_timeout des Pools | für die Installation erhöhen, danach wieder senken |
Checkliste
- To do: PHP-Version der Domain 8.0 oder später (auch für Velocity); „FPM application served by Apache“.
- To do: Document Root = Wurzelverzeichnis der Installation;
.htaccessaus.htaccess_rootkopiert (exp:setup:statusbestätigt es). - To do: Mit SOAP an:
index_soap.phpin Zusätzliche Direktiven für HTTPS (oder.htaccess) durchgelassen, nicht nur das altesoap.php(Das SOAP-Einstiegsskript heißt jetzt index_soap.php). - To do: Mit WebDAV an:
index_webdav.phpin Zusätzliche Direktiven für HTTPS und für HTTP (oder.htaccess) durchgelassen, nicht nur das altewebdav.php(Das WebDAV-Einstiegsskript heißt jetzt index_webdav.php). - To do: Nach dem Ändern der Direktiven über HTTPS mit
curlgetestet (SOAP: ein GET von/index_soap.php?wsdlantwortet mit200; WebDAV: einPROPFINDvon/index_webdav.php/antwortet mit207), nicht mit404oder einer Seite der Website. - To do: Composer, Konsole und Cron nutzen
/opt/plesk/php/<version>/bin/php. - To do:
PhpCliPathgesetzt; Cron-Zeilen in der Crontab des Benutzers der Domain. - To do:
plesk-php<XY>-fpmnach Änderungen an PHP neu laden;PhpFpmServiceinexp:velocity deploy --dry-runrichtig. - To do: Zertifikat in Plesk, Umleitung auf HTTPS an; der Export wird nach jeder Erneuerung erneuert, wenn Velocity oder FrankenPHP ihn nutzt.
- To do: Logs des Webservers zum Log-Viewer hinzugefügt.
Eine öffentliche Demo auf Plesk. Setzen Sie EXP_DEMO_MODE=1 nur für das Abonnement der Demo: SetEnv EXP_DEMO_MODE 1 in seiner .htaccess (Apache oder LiteSpeed) oder in seinen Additional Apache directives, oder env[EXP_DEMO_MODE] = 1 über die PHP-FPM-Einstellungen der Domain, und eine Zeile EXP_DEMO_MODE=1 in seinen Scheduled Tasks. Plesk betreibt jede PHP-Version mit ihrem eigenen FPM-Master: Laden Sie den der Version der Domain neu. Schritt für Schritt: Rezept: eine öffentliche Demo auf LiteSpeed und Plesk betreiben.
Der Seiten-Cache von LiteSpeed unter Plesk. Mit LiteSpeed als Webserver beantwortet sein Seiten-Cache anonyme Besucher und Crawler ohne PHP. Schalten Sie ihn je Website mit dem auskommentierten Block aus .htaccess_root ein, oder fügen Sie litespeed-page-cache.conf in Additional directives for HTTPS ein. Bearbeiten Sie /var/www/vhosts/system/<domain>/conf/vhost_ssl.conf nie von Hand: Plesk schreibt die Datei aus dem Feld des Panels neu, wann immer es die Konfiguration der Domain neu erzeugt. Schritt für Schritt: Seiten-Caching mit LiteSpeed und OpenLiteSpeed.
Verwandte Seiten
- Control Panels: Überblick
- Apache mit PHP-FPM, Velocity neben Apache oder nginx
- Kapitel 8: Die Website ausliefern
- .htaccess und config.php von der Konsole einrichten
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
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.