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 cemerlang dalam menguruskan tugas latar belakang dengan:
Ia amat berfaedah untuk projek PHP yang menggunakan:
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>
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>
Berikut ialah pecahan terperinci pilihan konfigurasi Penyelia:
command
: Perintah untuk melaksanakan. Contoh: command=php /path/to/worker.php
autostart
: Mulakan program secara automatik dengan Penyelia. Nilai: true
(lalai), false
. Contoh: autostart=true
autorestart
: Mulakan semula automatik apabila gagal. Nilai: true
, false
, unexpected
. Contoh: autorestart=unexpected
startsecs
: Masa jalan minimum (saat) sebelum sesuatu proses dianggap dimulakan. Lalai: 1. Contoh: startsecs=5
startretries
: Percubaan mula semula maksimum sebelum kegagalan. Lalai: 3. Contoh: startretries=5
exitcodes
: Kod keluar yang boleh diterima menghalang permulaan semula. Lalai: 0,2. Contoh: exitcodes=0,1
stopwaitsecs
: Masa (saat) untuk menunggu penutupan yang anggun sebelum penamatan secara paksa. Lalai: 10. Contoh: stopwaitsecs=20
redirect_stderr
: Ubah hala ralat standard ke output standard. Nilai: true
, false
(lalai). Contoh: redirect_stderr=true
stdout_logfile
/ stderr_logfile
: Log laluan fail untuk output dan ralat standard. Contoh: stdout_logfile=/var/log/my_program.out.log
stdout_logfile_maxbytes
/ stderr_logfile_maxbytes
: Saiz fail log maksimum sebelum putaran. Lalai: 50MB. Contoh: stdout_logfile_maxbytes=10MB
stdout_logfile_backups
/ stderr_logfile_backups
: Bilangan fail log yang diputar untuk disimpan. Lalai: 10. Contoh: stdout_logfile_backups=3
user
: Pengguna sistem untuk menjalankan program sebagai. Contoh: user=www-data
environment
: Pembolehubah persekitaran. Contoh: environment=APP_ENV="production",DB_HOST="localhost"
priority
: Mulakan pesanan (nilai rendah bermula dahulu). Lalai: 999. Contoh: priority=100
directory
: Direktori berfungsi. Contoh: directory=/path/to/your/app
stopasgroup
: Hantar isyarat berhenti kepada proses dan anak-anaknya. Nilai: true
, false
(lalai). Contoh: stopasgroup=true
killasgroup
: Bunuh secara paksa proses dan anak-anaknya selepas stopwaitsecs
. Nilai: true
, false
(lalai). Contoh: killasgroup=true
Barisan Laravel: Urus perintah queue:work
untuk pemprosesan kerja yang boleh dipercayai.
<code class="language-bash">sudo apt update sudo apt install supervisor</code>
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>
Skrip Jangka Panjang: Urus skrip berterusan seperti pelayan WebSocket.
<code class="language-bash">sudo systemctl start supervisord sudo systemctl enable supervisord</code>
Pastikan Penyelia bermula pada but sistem:
Dayakan perkhidmatan Penyelia: sudo systemctl enable supervisord
Mulakan perkhidmatan (jika perlu): sudo systemctl start supervisord
stdout_logfile_maxbytes
dan stdout_logfile_backups
.environment
untuk mengurus pembolehubah.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!