Rumah >pembangunan bahagian belakang >tutorial php >Panduan Penyelia untuk Pembangun PHP

Panduan Penyelia untuk Pembangun PHP

Patricia Arquette
Patricia Arquetteasal
2025-01-20 12:03:12995semak imbas

Supervisor Guide for PHP Developers

Penyelia: Sistem Kawalan Proses yang Teguh untuk Aplikasi PHP

Penyelia ialah alat yang berkuasa untuk mengurus proses latar belakang, satu keperluan untuk pembangun PHP mengendalikan tugasan yang berjalan lama, pekerja beratur dan kerja latar belakang yang lain. Panduan ini memperincikan persediaan Penyelia, penyepaduan aplikasi PHP dan konfigurasi komprehensif untuk prestasi optimum.

Penyelia Memahami

Penyelia cemerlang dalam menguruskan tugas latar belakang dengan:

  • Memulakan semula proses ranap secara automatik.
  • Pembalakan berpusat untuk pemantauan yang lebih mudah.
  • Kawalan baris arahan dan antara muka web.

Ia amat berfaedah untuk projek PHP yang menggunakan:

  • Laravel beratur untuk pemprosesan tak segerak.
  • Proses berterusan seperti pelayan WebSocket.
  • Tugas berjadual serupa dengan tugas cron.

Memasang Penyelia

Ubuntu/Debian:

<code class="language-bash">sudo apt update
sudo apt install supervisor</code>

CentOS/RedHat:

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

Selepas pemasangan, aktifkan dan dayakan Penyelia:

<code class="language-bash">sudo systemctl start supervisord
sudo systemctl enable supervisord</code>

Konfigurasi Penyelia

Penyelia menggunakan fail konfigurasi (biasanya terletak di /etc/supervisor/conf.d/) untuk mengurus program individu.

Contoh Konfigurasi Asas:

Buat /etc/supervisor/conf.d/my_php_worker.conf dengan kandungan ini:

<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>

Pilihan --tries=3 (dalam arahan command) mengehadkan percubaan mulakan semula kepada tiga sebelum kegagalan.

Gunakan konfigurasi:

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

Pilihan Konfigurasi Terperinci

Berikut ialah pecahan terperinci pilihan konfigurasi Penyelia:

  1. command: Perintah untuk melaksanakan. Contoh: command=php /path/to/worker.php

  2. autostart: Mulakan program secara automatik dengan Penyelia. Nilai: true (lalai), false. Contoh: autostart=true

  3. autorestart: Mulakan semula automatik apabila gagal. Nilai: true, false, unexpected. Contoh: autorestart=unexpected

  4. startsecs: Masa jalan minimum (saat) sebelum sesuatu proses dianggap dimulakan. Lalai: 1. Contoh: startsecs=5

  5. startretries: Percubaan mula semula maksimum sebelum kegagalan. Lalai: 3. Contoh: startretries=5

  6. exitcodes: Kod keluar yang boleh diterima menghalang permulaan semula. Lalai: 0,2. Contoh: exitcodes=0,1

  7. stopwaitsecs: Masa (saat) untuk menunggu penutupan yang anggun sebelum penamatan secara paksa. Lalai: 10. Contoh: stopwaitsecs=20

  8. redirect_stderr: Ubah hala ralat standard ke output standard. Nilai: true, false (lalai). Contoh: redirect_stderr=true

  9. stdout_logfile / stderr_logfile: Log laluan fail untuk output dan ralat standard. Contoh: stdout_logfile=/var/log/my_program.out.log

  10. stdout_logfile_maxbytes / stderr_logfile_maxbytes: Saiz fail log maksimum sebelum putaran. Lalai: 50MB. Contoh: stdout_logfile_maxbytes=10MB

  11. stdout_logfile_backups / stderr_logfile_backups: Bilangan fail log yang diputar untuk disimpan. Lalai: 10. Contoh: stdout_logfile_backups=3

  12. user: Pengguna sistem untuk menjalankan program sebagai. Contoh: user=www-data

  13. environment: Pembolehubah persekitaran. Contoh: environment=APP_ENV="production",DB_HOST="localhost"

  14. priority: Mulakan pesanan (nilai rendah bermula dahulu). Lalai: 999. Contoh: priority=100

  15. directory: Direktori berfungsi. Contoh: directory=/path/to/your/app

  16. stopasgroup: Hantar isyarat berhenti kepada proses dan anak-anaknya. Nilai: true, false (lalai). Contoh: stopasgroup=true

  17. killasgroup: Bunuh secara paksa proses dan anak-anaknya selepas stopwaitsecs. Nilai: true, false (lalai). Contoh: killasgroup=true

Kes Penggunaan Khusus PHP

  1. Barisan Laravel: Urus perintah queue:work untuk pemprosesan kerja yang boleh dipercayai.

    <code class="language-bash">sudo apt update
    sudo apt install supervisor</code>
  2. Tugas Berjadual: Gantikan cron untuk pelaksanaan skrip berjadual yang lebih mantap.

    <code class="language-bash">sudo yum install epel-release
    sudo yum install supervisor</code>
  3. Skrip Jangka Panjang: Urus skrip berterusan seperti pelayan WebSocket.

    <code class="language-bash">sudo systemctl start supervisord
    sudo systemctl enable supervisord</code>

Mengautomasikan Permulaan Penyelia

Pastikan Penyelia bermula pada but sistem:

  1. Dayakan perkhidmatan Penyelia: sudo systemctl enable supervisord

  2. Mulakan perkhidmatan (jika perlu): sudo systemctl start supervisord

Amalan Terbaik

  • Gunakan nama program deskriptif.
  • Konfigurasikan putaran log menggunakan stdout_logfile_maxbytes dan stdout_logfile_backups.
  • Gunakan arahan environment untuk mengurus pembolehubah.

Kesimpulan

Penyelia ialah alat penting untuk pembangun PHP mengurus proses latar belakang. Panduan ini menyediakan pengenalan menyeluruh kepada pemasangan, konfigurasi dan aplikasi praktikalnya, memastikan pengurusan tugas yang boleh dipercayai dan cekap untuk projek PHP anda.

Atas ialah kandungan terperinci Panduan Penyelia untuk Pembangun PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn