PHP 서버 구축 및 서비스 운영 가이드
로컬 환경에서 코드 작성을 마친 웹 애플리케이션을 외부 사용자에게 실시간으로 서빙하기 위해서는 웹 서버 소프트웨어와 데이터베이스를 유기적으로 엮어 구동하는 서버 구축(Production Infrastructure Setup) 과정이 수반되어야 합니다.
이 장에서는 전통적인 엔터프라이즈 환경에서 널리 쓰이는 LAPM 스택, 최신 성능을 보장하는 LEMP(Nginx) 스택, 그리고 대규모 가용성을 위한 AWS 퍼블릭 클라우드 셋업까지 프로덕션 서비스 운영을 위한 필수 지식을 제공합니다.
1. 프로덕션 서버 구축의 핵심 요구사항
성공적인 웹 서비스 운영을 위해서 서버 인프라는 다음 세 가지 요소를 완벽히 처리해야 합니다.
- 정적/동적 요청의 격리: 단순 이미지, CSS, JS는 웹서버가 디스크에서 초고속 전송하고, 동적 PHP 연산은 격리된 WAS 프로세스(PHP-FPM)로 위임하여 서버 자원 낭비를 원천 차단합니다.
- 다중 가상 호스트(VirtualHost): 하나의 물리 장비에서 독립된 복수의 도메인(예:
siteA.com,siteB.com)을 안전하게 구분 지어 동시 호스팅합니다. - 인프라 이중화 및 DB 레이어 격리: 보안 및 장애 대응력 극대화를 위해 클라이언트 직접 접속망과 데이터베이스 저장망을 클라우드 가상 사설망(VPC) 내부에서 완벽히 분리 격리합니다.
2. 세부 서버 구축 가이드 목록
필요로 하는 인프라 환경과 웹 서버 패키지 종류에 맞춰 아래의 특화 가이드를 학습하십시오.
- LAPM/LEMP 통합 구축 가이드: 리눅스 배포판 전체를 아우르는 패키지 설치 기본 요령, 웹 서버와 PHP-FPM 프로세스 간 연동, UNIX 소켓 권한 오류(502 에러) 해결법, 그리고 FPM의 성능을 결정짓는 워커 프로세스(
max_children) 튜닝 산정 공식을 배웁니다. - Apache 웹 서버 + PHP 상세 연동법: Apache HTTPD 서버에서 PHP-FPM과 소켓 프록시를 엮는 방법, 다중 가상 호스트 선언 요령, 그리고
.htaccess파일을 사용해 Pretty URL 라우팅 규칙을 커스텀 정의하는mod_rewrite기법을 소개합니다. - Nginx 웹 서버 + PHP-FPM 상세 연동법: Nginx 비동기 이벤트 비차단(Non-blocking) 연동, UNIX 소켓 vs TCP 포트 성능 비교, 그리고 정적 파일 가상 라우팅
try_files지시문 사용법과 악성 스크립트 실행을 방지하는cgi.fix_pathinfo보안 취약점 대처 요령을 수록했습니다. - AWS 클라우드 환경 인프라 구축 가이드: Amazon EC2 가상 머신 생성 및 방화벽 보안 그룹(Security Group) 규칙 수립, 격리된 가상 사설망(VPC) 속 Managed RDS MySQL 배치, 그리고 PHP PDO DB 드라이버를 원격 RDS 엔드포인트 도메인과 엮는 클라우드 3-Tier 아키텍처 설계를 다룹니다.
- Vultr VPS 가상 서버 구축 가이드: Vultr 클라우드 가상 서버(VPS) 인스턴스 배포, 방화벽 그룹(Firewall Group) 규칙 설정, SSH 공개키 보안 접속 및 단일 인스턴스 내 Nginx + PHP-FPM + MariaDB 통합 구동을 다룹니다.
서브목차