Heim > Backend-Entwicklung > PHP-Tutorial > Supervisor-Leitfaden für PHP-Entwickler

Supervisor-Leitfaden für PHP-Entwickler

Patricia Arquette
Freigeben: 2025-01-20 12:03:12
Original
1052 Leute haben es durchsucht

Supervisor Guide for PHP Developers

Supervisor: Ein robustes Prozesskontrollsystem für PHP-Anwendungen

Supervisor ist ein leistungsstarkes Tool zur Verwaltung von Hintergrundprozessen, eine Notwendigkeit für PHP-Entwickler, die lang laufende Aufgaben, Warteschlangenarbeiter und andere Hintergrundjobs bearbeiten. In diesem Handbuch werden die Supervisor-Einrichtung, die PHP-Anwendungsintegration und die umfassende Konfiguration für optimale Leistung detailliert beschrieben.

Verständlicher Vorgesetzter

Der Vorgesetzte zeichnet sich dadurch aus, dass er Hintergrundaufgaben verwaltet:

  • Abgestürzte Prozesse automatisch neu starten.
  • Zentralisierte Protokollierung zur einfacheren Überwachung.
  • Befehlszeilen- und Webschnittstellensteuerung.

Es ist besonders vorteilhaft für PHP-Projekte, die Folgendes verwenden:

  • Laravel-Warteschlangen für asynchrone Verarbeitung.
  • Persistente Prozesse wie WebSocket-Server.
  • Geplante Aufgaben ähnlich Cron-Jobs.

Supervisor installieren

Ubuntu/Debian:

<code class="language-bash">sudo apt update
sudo apt install supervisor</code>
Nach dem Login kopieren
Nach dem Login kopieren

CentOS/RedHat:

<code class="language-bash">sudo yum install epel-release
sudo yum install supervisor</code>
Nach dem Login kopieren
Nach dem Login kopieren

Nach der Installation Supervisor aktivieren und aktivieren:

<code class="language-bash">sudo systemctl start supervisord
sudo systemctl enable supervisord</code>
Nach dem Login kopieren
Nach dem Login kopieren

Supervisor-Konfiguration

Supervisor verwendet Konfigurationsdateien (normalerweise in /etc/supervisor/conf.d/), um einzelne Programme zu verwalten.

Beispiel für eine Grundkonfiguration:

Erstellen Sie /etc/supervisor/conf.d/my_php_worker.conf mit diesem Inhalt:

<code class="language-ini">[program:my_php_worker]
command=php /path/to/worker.php
autostart=true
autorestart=true
stderr_logfile=/var/log/my_php_worker.err.log
stdout_logfile=/var/log/my_php_worker.out.log</code>
Nach dem Login kopieren

Die Option --tries=3 (innerhalb der command-Direktive) begrenzt die Neustartversuche auf drei, bevor ein Fehler auftritt.

Übernehmen Sie die Konfiguration:

<code class="language-bash">sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start my_php_worker:*</code>
Nach dem Login kopieren

Detaillierte Konfigurationsoptionen

Hier ist eine detaillierte Aufschlüsselung der Supervisor-Konfigurationsoptionen:

  1. command: Der auszuführende Befehl. Beispiel: command=php /path/to/worker.php

  2. autostart: Startet das Programm automatisch mit Supervisor. Werte: true (Standard), false. Beispiel: autostart=true

  3. autorestart: Automatischer Neustart bei Fehler. Werte: true, false, unexpected. Beispiel: autorestart=unexpected

  4. startsecs: Mindestlaufzeit (Sekunden), bevor ein Prozess als gestartet gilt. Standard: 1. Beispiel: startsecs=5

  5. startretries: Maximale Neustartversuche vor dem Scheitern. Standard: 3. Beispiel: startretries=5

  6. exitcodes: Akzeptable Exit-Codes, die Neustarts verhindern. Standard: 0,2. Beispiel: exitcodes=0,1

  7. stopwaitsecs: Zeit (Sekunden), die auf das ordnungsgemäße Herunterfahren vor der erzwungenen Beendigung gewartet wird. Standard: 10. Beispiel: stopwaitsecs=20

  8. redirect_stderr: Standardfehler zur Standardausgabe umleiten. Werte: true, false (Standard). Beispiel: redirect_stderr=true

  9. stdout_logfile / stderr_logfile: Protokolldateipfade für Standardausgabe und Fehler. Beispiel: stdout_logfile=/var/log/my_program.out.log

  10. stdout_logfile_maxbytes / stderr_logfile_maxbytes: Maximale Protokolldateigröße vor der Rotation. Standard: 50 MB. Beispiel: stdout_logfile_maxbytes=10MB

  11. stdout_logfile_backups / stderr_logfile_backups: Anzahl der rotierten Protokolldateien, die aufbewahrt werden sollen. Standard: 10. Beispiel: stdout_logfile_backups=3

  12. user: Systembenutzer, unter dem das Programm ausgeführt werden soll. Beispiel: user=www-data

  13. environment: Umgebungsvariablen. Beispiel: environment=APP_ENV="production",DB_HOST="localhost"

  14. priority: Startreihenfolge (niedrigere Werte beginnen zuerst). Standard: 999. Beispiel: priority=100

  15. directory: Arbeitsverzeichnis. Beispiel: directory=/path/to/your/app

  16. stopasgroup: Stoppsignal an den Prozess und seine untergeordneten Elemente senden. Werte: true, false (Standard). Beispiel: stopasgroup=true

  17. killasgroup: Beenden Sie den Prozess und seine untergeordneten Elemente nach stopwaitsecs gewaltsam. Werte: true, false (Standard). Beispiel: killasgroup=true

PHP-spezifische Anwendungsfälle

  1. Laravel-Warteschlangen:Verwalten Sie queue:workBefehle für eine zuverlässige Jobverarbeitung.

    <code class="language-bash">sudo apt update
    sudo apt install supervisor</code>
    Nach dem Login kopieren
    Nach dem Login kopieren
  2. Geplante Aufgaben: Ersetzen Sie cron für eine robustere geplante Skriptausführung.

    <code class="language-bash">sudo yum install epel-release
    sudo yum install supervisor</code>
    Nach dem Login kopieren
    Nach dem Login kopieren
  3. Lang laufende Skripte:Verwalten Sie persistente Skripte wie WebSocket-Server.

    <code class="language-bash">sudo systemctl start supervisord
    sudo systemctl enable supervisord</code>
    Nach dem Login kopieren
    Nach dem Login kopieren

Automatisierung des Supervisor-Starts

Stellen Sie sicher, dass Supervisor beim Systemstart startet:

  1. Supervisor-Dienst aktivieren: sudo systemctl enable supervisord

  2. Starten Sie den Dienst (falls erforderlich): sudo systemctl start supervisord

Best Practices

  • Verwenden Sie beschreibende Programmnamen.
  • Konfigurieren Sie die Protokollrotation mit stdout_logfile_maxbytes und stdout_logfile_backups.
  • Verwenden Sie die environment-Direktive, um Variablen zu verwalten.

Fazit

Supervisor ist ein unverzichtbares Tool für PHP-Entwickler, die Hintergrundprozesse verwalten. Dieses Handbuch bietet eine umfassende Einführung in die Installation, Konfiguration und praktischen Anwendungen und gewährleistet eine zuverlässige und effiziente Aufgabenverwaltung für Ihre PHP-Projekte.

Das obige ist der detaillierte Inhalt vonSupervisor-Leitfaden für PHP-Entwickler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage