콘텐츠로 이동

자동 기동 기준 (php-fpm + Supervisor + Scheduler)

운영 서버 재부팅 후 Laravel 서비스가 자동으로 복구되도록 구성하는 startup 기준을 정의함.

Laravel은 구성 요소가 분리되어 있으므로, enable 여부를 개별 확인해야 함.


1. 기본 전제 조건

  • 코드 배포 완료 (/var/www/[ProjectName]/current)
  • .env 반영 및 캐시 재생성 완료
  • Nginx / php-fpm 기본 설정 검증 완료
  • Queue worker 설정 파일(supervisor) 준비 완료

2. php-fpm 자동 기동

sudo systemctl enable php-fpm
sudo systemctl start php-fpm
sudo systemctl status php-fpm

정상 기준:

  • Loaded: loaded
  • enabled 상태
  • Active: active (running)

3. Supervisor 자동 기동

sudo systemctl enable supervisord
sudo systemctl start supervisord
sudo systemctl status supervisord

worker 반영 및 상태 확인:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl status

4. Scheduler 자동 기동 (cron)

운영 사용자 계정에서 등록함.

crontab -e
* * * * * cd /var/www/[ProjectName]/current && /usr/bin/php artisan schedule:run >> /dev/null 2>&1

등록 확인:

crontab -l

5. 부팅 후 통합 검증 절차

sudo systemctl status nginx
sudo systemctl status php-fpm
sudo systemctl status supervisord
sudo supervisorctl status

추가 확인:

curl -I https://[DOMAIN]
php -v

검증 기준:

  • HTTP 응답 정상(200/301/302 등 정책 범위)
  • queue worker RUNNING
  • scheduler 실행 흔적 존재

6. 자주 발생하는 startup 실패 원인

  • enable 누락 (start만 수행)
  • supervisor 설정 반영 누락 (reread/update 미실행)
  • worker를 root로 실행
  • 운영 계정 cron 누락
  • 경로 오타 (current 미반영)

7. 운영 기준 요약

1) php-fpm enable + status 확인
2) supervisord enable + status 확인
3) worker 설정 update + status 확인
4) cron 등록 + crontab -l 확인
5) 재부팅 후 동일 상태 재검증

8. 절대 금지 사항

  • 재부팅 복구를 수동 명령에 의존
  • worker를 임시 세션으로 유지
  • startup 검증 없이 운영 투입

9. 정리

  • 자동 기동은 편의 기능이 아니라 복구 보장 절차
  • Laravel 운영은 "서비스가 뜬다"가 아니라 "재부팅 후에도 같은 상태로 뜬다"를 기준으로 판단함