> 백엔드 개발 > PHP 튜토리얼 > PHP 개발자를 위한 감독자 가이드

PHP 개발자를 위한 감독자 가이드

Patricia Arquette
풀어 주다: 2025-01-20 12:03:12
원래의
992명이 탐색했습니다.

Supervisor Guide for PHP Developers

Supervisor: PHP 애플리케이션을 위한 강력한 프로세스 제어 시스템

Supervisor는 장기 실행 작업, 대기열 작업자 및 기타 백그라운드 작업을 처리하는 PHP 개발자에게 필수적인 백그라운드 프로세스 관리를 위한 강력한 도구입니다. 이 가이드에서는 Supervisor 설정, PHP 애플리케이션 통합 및 최적의 성능을 위한 포괄적인 구성에 대해 자세히 설명합니다.

감독자 이해

Supervisor는 다음과 같은 방법으로 백그라운드 작업을 관리하는 데 탁월합니다.

  • 충돌된 프로세스를 자동으로 다시 시작합니다.
  • 더 쉬운 모니터링을 위한 중앙 집중식 로깅.
  • 명령줄 및 웹 인터페이스 제어.

다음을 사용하는 PHP 프로젝트에 특히 유용합니다.

  • 비동기 처리를 위한 Laravel 대기열
  • WebSocket 서버와 같은 지속적인 프로세스.
  • 크론 작업과 유사한 예약된 작업입니다.

Supervisor 설치

우분투/데비안:

<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>
로그인 후 복사
로그인 후 복사

설치 후 감독자 활성화 및 활성화:

<code class="language-bash">sudo systemctl start supervisord
sudo systemctl enable supervisord</code>
로그인 후 복사
로그인 후 복사

감독자 구성

Supervisor는 구성 파일(일반적으로 /etc/supervisor/conf.d/에 있음)을 활용하여 개별 프로그램을 관리합니다.

기본 구성 예:

다음 콘텐츠로 /etc/supervisor/conf.d/my_php_worker.conf 만들기:

<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>
로그인 후 복사

--tries=3 옵션(command 지시문 내)은 실패 전 재시작 시도를 3번으로 제한합니다.

구성 적용:

<code class="language-bash">sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start my_php_worker:*</code>
로그인 후 복사

세부 구성 옵션

감독자 구성 옵션에 대한 자세한 분석은 다음과 같습니다.

  1. command: 실행할 명령입니다. 예: command=php /path/to/worker.php

  2. autostart: Supervisor로 프로그램을 자동으로 시작합니다. 값: true(기본값), false. 예: autostart=true

  3. autorestart: 실패 시 자동으로 다시 시작됩니다. 값: true, false, unexpected. 예: autorestart=unexpected

  4. startsecs: 프로세스가 시작된 것으로 간주되기 전의 최소 런타임(초)입니다. 기본값: 1. 예: startsecs=5

  5. startretries: 실패 전 최대 재시작 시도 횟수입니다. 기본값: 3. 예: startretries=5

  6. exitcodes: 재시작을 방지하는 허용되는 종료 코드입니다. 기본값: 0,2. 예: exitcodes=0,1

  7. stopwaitsecs: 강제 종료 전 단계적 종료를 기다리는 시간(초)입니다. 기본값: 10. 예: stopwaitsecs=20

  8. redirect_stderr: 표준 오류를 표준 출력으로 리디렉션합니다. 값: true, false(기본값). 예: redirect_stderr=true

  9. stdout_logfile / stderr_logfile: 표준 출력 및 오류에 대한 로그 파일 경로입니다. 예: stdout_logfile=/var/log/my_program.out.log

  10. stdout_logfile_maxbytes / stderr_logfile_maxbytes: 회전 전 최대 로그 파일 크기입니다. 기본값: 50MB. 예: stdout_logfile_maxbytes=10MB

  11. stdout_logfile_backups / stderr_logfile_backups: 보관할 순환된 로그 파일 수입니다. 기본값: 10. 예: stdout_logfile_backups=3

  12. user : 프로그램을 실행할 시스템 사용자입니다. 예: user=www-data

  13. environment: 환경 변수. 예: environment=APP_ENV="production",DB_HOST="localhost"

  14. priority: 시작 순서(낮은 값이 먼저 시작) 기본값: 999. 예: priority=100

  15. directory: 작업 디렉터리. 예: directory=/path/to/your/app

  16. stopasgroup: 프로세스와 그 자식에게 중지 신호를 보냅니다. 값: true, false(기본값). 예: stopasgroup=true

  17. killasgroup: stopwaitsecs 이후의 프로세스와 해당 하위 프로세스를 강제로 종료합니다. 값: true, false(기본값). 예: killasgroup=true

PHP 관련 사용 사례

  1. Laravel 대기열: 안정적인 작업 처리를 위해 queue:work 명령을 관리합니다.

    <code class="language-bash">sudo apt update
    sudo apt install supervisor</code>
    로그인 후 복사
    로그인 후 복사
  2. 예약된 작업: 보다 강력한 예약된 스크립트 실행을 위해 cron을 교체하세요.

    <code class="language-bash">sudo yum install epel-release
    sudo yum install supervisor</code>
    로그인 후 복사
    로그인 후 복사
  3. 장기 실행 스크립트: WebSocket 서버와 같은 영구 스크립트를 관리합니다.

    <code class="language-bash">sudo systemctl start supervisord
    sudo systemctl enable supervisord</code>
    로그인 후 복사
    로그인 후 복사

감독자 시작 자동화

시스템 부팅 시 Supervisor가 시작되는지 확인하세요.

  1. 감독자 서비스 활성화: sudo systemctl enable supervisord

  2. 서비스 시작(필요한 경우): sudo systemctl start supervisord

모범 사례

  • 설명적인 프로그램 이름을 사용하세요.
  • stdout_logfile_maxbytesstdout_logfile_backups을 사용하여 로그 회전을 구성합니다.
  • environment 지시문을 활용하여 변수를 관리하세요.

결론

Supervisor는 백그라운드 프로세스를 관리하는 PHP 개발자에게 필수적인 도구입니다. 이 가이드는 설치, 구성 및 실제 애플리케이션에 대한 포괄적인 소개를 제공하여 PHP 프로젝트의 안정적이고 효율적인 작업 관리를 보장합니다.

위 내용은 PHP 개발자를 위한 감독자 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿