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

Cron und Shell-Zugang

Wie Kunden auf Servern mit Panel runcronjobs.php von Exponential planen (Teile, Zeitpläne, die richtige PHP-Binärdatei, die Crontab des Benutzers der Website), was die Seite Cronjobs der Administration von PHP braucht…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/hosting/panels/cron-and-shell-access.md

On this page

This page is a translation. Read the English original

Cron und Shell-Zugang

Diese Seite ist für Support-Mitarbeitende und Administratoren bei Hosting-Anbietern, die Kunden helfen, die Jobs von Exponential über die Cron-Seite eines Panels zu planen, und die entscheiden, wie viel Shell-Zugang ein Tarif enthält. Sie beantwortet, welche Jobs laufen müssen und wie oft, welche PHP-Binärdatei eine Cron-Zeile nutzen muss, was die eigene Seite Cronjobs der Administration braucht und was ein Kunde ohne Shell tun kann.

Setup, Cache-Verwaltung: was Sie nutzen, wenn ein Hosting-Panel keine Shell bietet
Setup, Cache-Verwaltung: was Sie nutzen, wenn ein Hosting-Panel keine Shell bietet

Inhalt

  1. Warum Exponential Cron braucht
  2. Die Cron-Zeilen
  3. Die richtige PHP-Binärdatei
  4. Der richtige Benutzer
  5. Die Seite Cronjobs in der Administration
  6. Mit und ohne Shell-Zugang
  7. Fehlersuche
  8. Checkliste

Warum Exponential Cron braucht

Cronjobs erledigen die Arbeit, auf die kein Besucher wartet: Sie veröffentlichen und verbergen Inhalte nach Zeitplan, versenden Benachrichtigungen, setzen Inhaltsjobs fort, führen die Wartung des Prüfprotokolls aus, importieren Feeds, indizieren Inhalte und räumen auf. Ohne sie funktioniert eine Website, aber geplante Inhalte erscheinen nie, Benachrichtigungen gehen nie hinaus, und Caches und Entwürfe häufen sich auf der Festplatte (10.3 Cronjobs).

runcronjobs.php führt Teile aus, benannte Listen von Skripten in settings/cronjob.ini; ohne Namen eines Teils führt es den globalen Teil aus. php runcronjobs.php --list zeigt jeden Teil und seine Skripte.

Die Cron-Zeilen

Die Crontab, die Kapitel 10 für eine Website nennt, einzurichten in der Crontab des Benutzers der Website:

# m   h  dom mon dow  command
*/5   *  *   *   *    cd /path/to/installation && php runcronjobs.php -q -s site frequent >> var/log/cron-frequent.log 2>&1
*/15  *  *   *   *    cd /path/to/installation && php runcronjobs.php -q -s site >> var/log/cron-default.log 2>&1
17    *  *   *   *    cd /path/to/installation && php runcronjobs.php -q -s site infrequent >> var/log/cron-infrequent.log 2>&1
40    3  *   *   *    cd /path/to/installation && php runcronjobs.php -q -s site cache_cleanup >> var/log/cron-cleanup.log 2>&1
50    3  *   *   *    cd /path/to/installation && php runcronjobs.php -q -s site --script=session_gc.php >> var/log/cron-cleanup.log 2>&1
  • -s wählt den Siteaccess, dessen Einstellungen die Skripte lesen; nutzen Sie den öffentlichen Siteaccess, es sei denn, ein Teil sagt etwas anderes. -q unterdrückt die Ausgabe außer Fehlern.
  • frequent alle paar Minuten ist, was Benachrichtigungen und Inhaltsjobs erwarten; infrequent stündlich oder täglich.
  • Rotieren Sie die Dateien cron-*.log mit logrotate des Systems.

Wenn die Cron-Seite eines Panels ein Feld pro Zeile hat, geben Sie Zeitplan und Befehl jeder Zeile getrennt ein; der Befehl ist alles nach den fünf Zeitfeldern.

Hinweis Die Seite Cronjobs erkennt eine Zeile dieser Installation nur, wenn sie runcronjobs.php und den echten Wurzelpfad der Installation enthält; ein Pfad über einen symbolischen Link zeigt den Teil als Nicht geplant. Verwenden Sie in der Zeile cd <real root> && (Cronjobs, Fehlersuche).

Die richtige PHP-Binärdatei

Verwenden Sie dieselbe PHP-Binärdatei, die der Webserver nutzt (/opt/.../php auf Hosts mit mehreren PHP-Versionen); php -v in der Cron-Umgebung kann sich von dem Ihrer Shell unterscheiden. Auf Plesk ist das zum Beispiel /opt/plesk/php/8.5/bin/php:

*/5 * * * * cd /var/www/vhosts/<domain>/<docroot> && /opt/plesk/php/8.5/bin/php runcronjobs.php -q -s site frequent >/dev/null 2>&1

Wenn das Panel die PHP-Version der Website ändert, aktualisieren Sie auch die Cron-Zeilen (PHP-Auswahl und FPM-Pools).

Der richtige Benutzer

Richten Sie die Zeilen in der Crontab des Benutzers der Website ein (der, als der der Webserver läuft, damit die Dateien, die die Jobs schreiben, ihm gehören): crontab -e -u <site user> oder php bin/php/console crontab:edit als dieser Benutzer (Cronjobs, Planen). Die Cron-Seite eines Panels pro Konto führt Jobs meist als Benutzer des Kontos aus, was Exponential braucht; lesen Sie in der Dokumentation Ihres Panels nach.

Warnung Cron-Zeilen in der Crontab von root schreiben Cache- und Logdateien als root, die der Benutzer der Website danach nicht ersetzen kann, und die Website versagt an seltsamen Stellen (8.7.2). Als root braucht jedes Skript --allow-root-user; besser, Sie führen sie nicht als root aus.

Die Seite Cronjobs in der Administration

Setup > Cronjobs führt jeden Teil oder jedes Skript aus, folgt seiner Ausgabe, zählt Probleme, hält Teile an und schlägt Crontab-Zeilen für die noch nicht geplanten Teile vor (Anleitung zu Cronjobs). Was sie vom Server braucht:

BedarfWarumWenn es fehlt
Eine PHP-Binärdatei für die Kommandozeile: cronjob.ini [AdminSettings] PhpCliPath, sonst PHP_BINDIR/php, /usr/bin/php, /usr/local/bin/phpJobs sind getrennte Prozesse; sie nutzt nie die Binärdatei, die die Web-Anfrage beantwortetrote Meldung, jedes Starten deaktiviert
proc_openum einen Job zu startendie Seite sagt es
execum die Crontab zu lesen (crontab -l)die Seite sagt es
posix_killLaufenden Job anhaltendie Seite sagt es
Richtlinie setup/managecronjobsZugangZugriff verweigert

Setzen Sie PhpCliPath auf Servern mit mehreren PHP-Versionen:

php bin/php/console exp:ini set cronjob.ini/AdminSettings/PhpCliPath /opt/plesk/php/8.5/bin/php global
php bin/php/ezcache.php --clear-tag=ini --allow-root-user

Die Seite liest nur die Crontab des Benutzers, als der der Webserver läuft. Für Kunden ohne Shell sind ihre Vorgeschlagenen Einträge die Zeilen, die in die Cron-Seite des Panels eingefügt werden.

Teile können aus der Seite angehalten werden, ohne die Crontab anzurühren; einen angehaltenen Teil lässt runcronjobs.php aus, wer ihn auch startet (Cronjob-Teile anhalten). Das ist während einer Migration oder einer Wiederherstellung nützlich.

Mit und ohne Shell-Zugang

AufgabeMit ShellOhne Shell
Den Code und vendor/ holengit clone, composer installeinen anderswo vorbereiteten Baum hochladen, oder ein Installer des Hosters
Installierenexp:install, der Kickstarter oder der Assistentder Setup-Assistent (er braucht nur einen Browser und FTP-Zugang)
UpdatesComposer oder ezupdateezupdate in der Administration, wenn Composer erreichbar ist und Updates erlaubt sind
Caches leerenphp bin/php/ezcache.php --clear-allSetup > Caches (/setup/cache) in der Administration
Einen Cron-Teil einmal ausführenphp runcronjobs.php -s site frequent oder php bin/php/console cron:frequentSetup > Cronjobs, wenn proc_open erlaubt ist
Wartungsmodusphp bin/php/maintenance.php onSetup > Wartung
Logs lesentail var/log/error.logSetup > Logdateien
Velocitymöglich, wenn lang laufende Prozesse erlaubt sindnicht möglich

Quellen: Kapitel 4, Wartungsmodus, Log-Viewer, ezupdate.

Shell-Zugang als eigener Benutzer der Website (nicht als root) ist die sicherste Form, die Sie anbieten können: Alles, was der Kunde ausführt, schreibt dann Dateien, die die Website weiterhin ändern kann.

Fehlersuche

SymptomUrsacheAbhilfe
Geplante Inhalte erscheinen niekeine Cron-Zeile, oder die Zeile nutzt ein PHP ohne die Erweiterungen der Websitefügen Sie die Zeilen hinzu; nutzen Sie die PHP-Binärdatei der Website
Von Cron geschriebene Dateien kann die Website nicht ändernCron läuft als anderer Benutzerverlegen Sie die Zeilen in die Crontab des Benutzers der Website
Cronjob part locked by other processdasselbe Skript läuft bereitserwartet: die Sperre funktioniert
Ein neuer Teil erscheint nicht auf der SeiteINI-Cachephp bin/php/ezcache.php --clear-tag=ini --allow-root-user

Mehr in Cronjobs, Fehlersuche und Cronjobs für Hoster.

Checkliste

  • To do: frequent, der globale Teil und infrequent geplant; Bereinigungsteile nächtlich.
  • To do: Die Zeilen nutzen die PHP-Binärdatei der Website und den echten Pfad der Installation.
  • To do: Die Zeilen stehen in der Crontab des Benutzers der Website, nicht in der von root.
  • To do: PhpCliPath auf Servern mit mehreren PHP-Versionen gesetzt.
  • To do: Die Entscheidung zu proc_open, exec, posix_kill für die Seite Cronjobs ist dokumentiert.
  • To do: Die Richtlinie zum Shell-Zugang pro Tarif ist aufgeschrieben.

Cron auf einer öffentlichen Demo. Die Cronjobs der Demo brauchen dasselbe EXP_DEMO_MODE=1 wie ihre Web-Anfragen: eine Zeile oben in der Crontab (oder in der Cron-Umgebung des Panels), wie in crontab-demo. Demomodus für Hoster.

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