ServBay PHP 설정 가이드: php.ini, PHP-FPM, 확장 모듈 조정하기
ServBay는 웹 개발자를 위해 강력하고 유연한 로컬 PHP 개발 환경을 제공합니다. 다양한 프로젝트 요구사항을 만족시키기 위해, 메모리 제한, 파일 업로드 크기, 오류 보고 레벨, 특정 확장 모듈 활성화 등 여러 PHP 설정을 조정해야 할 수도 있습니다.
이 문서에서는 ServBay에서 PHP 설정을 수정하는 방법을 상세히 안내합니다. ServBay는 이러한 설정을 관리하기 위해 편리한 그래픽 사용자 인터페이스(UI)를 제공합니다. 하위 설정 파일(예: php.ini
, php-fpm.conf
)의 위치와 구조를 이해하는 것도 도움이 되지만, 설정의 안정성과 호환성을 위해 ServBay의 UI를 사용해 수정하는 것을 강력히 추천합니다.
중요 안내
절대 ServBay가 자동 생성한 PHP 설정 파일(/Applications/ServBay/etc/php/<version>/
및 그 하위 디렉터리 위치)에 수동으로 편집하지 마세요. 이 파일들은 ServBay가 직접 관리하며, 수동 수정 시 ServBay의 업데이트, 재시작 또는 기타 연관 작업 시 덮어써집니다. 모든 설정 변경은 반드시 ServBay의 사용자 인터페이스(UI)로 진행하세요.
개요
ServBay에서는 PHP의 각 버전별 설정 파일이 독립된 디렉터리에 저장됩니다. 예를 들어, PHP 8.3의 주요 설정 파일은 /Applications/ServBay/etc/php/8.3
에 위치합니다.
핵심 설정 파일로는 다음과 같은 것이 있습니다:
php.ini
: PHP의 기본 설정 파일로, CLI와 웹 환경 모두에 적용되는 전역 설정을 담당합니다.php-fpm.conf
: PHP-FPM(FastCGI Process Manager) 설정 파일로, 주로 PHP가 웹 서버(예: Caddy, Nginx)에서 동작하는 방식과 성능에 영향을 줍니다.conf.d/
: 각종 PHP 확장 모듈의 로드 설정(.ini
파일)이 위치하는 디렉터리입니다. 예를 들어xdebug.ini
,opcache.ini
등이 있습니다.
이러한 파일들이 존재하지만, ServBay는 이를 수정할 수 있는 보다 안전하고 편리한 방식을 제공합니다.
ServBay 사용자 인터페이스로 설정하기(권장 방법)
ServBay는 직관적인 그래픽 UI를 제공하여 PHP의 다양한 설정 파라미터를 손쉽게 수정할 수 있게 해줍니다. UI에서 설정을 변경 후 저장하면 ServBay가 자동으로 변경 사항을 적용하고 필요 시(일반적으로 자동) PHP 서비스를 재시작합니다. 수동으로 파일을 편집하거나 명령어를 입력할 필요가 없습니다.
PHP 설정 화면에 접근하는 방법:
- ServBay 메인 윈도우를 엽니다.
- 좌측 내비게이션 메뉴에서 언어를 클릭합니다.
- 개발 언어 목록에서 설정하려는 PHP 버전(예:
PHP 8.3
)을 선택합니다. - 우측 패널에 해당 PHP 버전의 상세 정보와 설정 옵션이 표시됩니다.
아래는 PHP 설정 UI의 예시 화면입니다:
UI는 보통 세 가지 주요 섹션으로 구성되어 있으며, 각각 PHP-FPM, PHP(php.ini
), PHP 확장 모듈 설정에 해당합니다. 다음은 각 섹션별 상세 설명입니다.
PHP FPM 설정
안내
php-fpm.conf
설정은 주로 웹 서버 환경에서의 PHP 동작에 영향을 미칩니다. ServBay UI의 이 섹션에서 설정한 값은 동일 항목의 php.ini
값을 우선하여(덮어씌워), 오직 웹 요청에만 적용됩니다. 이 설정은 명령행(CLI)에서는 영향을 미치지 않습니다.
ServBay의 웹 서비스(Caddy 또는 Nginx)는 PHP-FPM을 통해 PHP와 상호작용합니다. PHP FPM 설정 UI에서는 웹 환경의 성능과 안정성에 영향을 주는 여러 파라미터를 조정할 수 있습니다. 예를 들면:
- 프로세스 관리(
pm
): PHP-FPM이 워커 프로세스를 어떻게 관리할지(예:dynamic
,static
) 설정합니다. - 프로세스 수(
pm.max_children
,pm.start_servers
등): 최대 하위 프로세스 수, 시작 시 생성 프로세스 수 등 동시 처리 능력을 결정합니다. - 메모리 제한(
memory_limit
): 이곳에서 설정한 값이php.ini
의 동명 항목을 덮어쓰며 웹 요청에만 적용됩니다. - 에러 로그 및 표시: 에러 로그 위치, 레벨, 브라우저에서 에러 표시 여부 등을 지정합니다.
예를 들어, 웹 환경에서 PHP의 메모리 제한을 기본값(64M 또는 128M 등)에서 1G로 늘리려면, ServBay UI의 PHP FPM 설정에서 memory_limit
옵션에서 1G
를 선택하고 저장하면 됩니다. 이 변경은 웹 서버를 통한 PHP 스크립트에만 적용됩니다. CLI 상에서 실행되는 PHP 스크립트는 여전히 php.ini
의 memory_limit
설정을 따릅니다.
예시 비교: php.ini
의 memory_limit
가 512M
, PHP FPM 설정에서는 128M
이라면:
- CLI에서 실행 시 사용 가능한 메모리 제한:
512M
- 웹을 통해 실행 시 사용 가능한 메모리 제한:
128M
php.ini 설정
안내
php.ini
설정은 전역적이며 CLI와 웹 환경 모두에 영향을 줍니다. 단, PHP-FPM과 겹치는 항목은 웹 환경에서 PHP-FPM 설정값이 우선 적용됩니다.
PHP 설정 섹션은 php.ini
파일의 주요 항목을 다룹니다. 여기서는 PHP 런타임의 일반적인 다양한 설정을 관리할 수 있습니다. 주로 다음과 같은 항목이 포함됩니다:
post_max_size
: POST 방식으로 제출 가능한 최대 데이터 크기upload_max_filesize
: 업로드 가능한 파일 최대 크기date.timezone
: PHP의 기본 타임존 설정display_errors
/error_reporting
: 페이지 내 오류 출력 및 출력할 오류 레벨 지정max_execution_time
: 스크립트 최대 실행 시간(초 단위)disable_functions
/disable_classes
: 특정 PHP 함수 또는 클래스 비활성화(보안 강화)open_basedir
: PHP의 파일 시스템 접근 경로 제한. 모든 웹사이트 프로젝트를 ServBay의 기본 웹 루트 디렉터리(/Applications/ServBay/www
)에 통일해 보관하는 것이 좋습니다. 이 경우,open_basedir
설정 시 경로를 단일로 지정할 수 있어 관리가 용이합니다.
이외에도 자주 사용하는 php.ini
설정은 ServBay UI에서 쉽게 수정할 수 있습니다.
php.ini
에 대한 자세한 공식 설명은 PHP 공식문서를 참고하세요: PHP Runtime Configuration
PHP 확장 모듈 설정
ServBay는 다양한 주요 PHP 확장 모듈(DB 연결, 캐시, 디버깅, 프레임워크 지원 등)을 기본 제공하며, UI상에서 해당 확장 활성화/비활성화 및 개별 설정이 가능합니다.
ServBay에서 지원하는 주요 확장 모듈로는 xDebug
, OPcache
, ImageMagick
, Redis
, MongoDB
, Phalcon
, Swoole
등이 있습니다. MySQL, PostgreSQL, MongoDB 등 다양한 DB 및 메시지큐, 캐시 시스템 지원 확장도 포함되어 있습니다.
PHP 확장 모듈을 활성화 또는 비활성화하는 방법은 다음과 같습니다:
- ServBay UI의 PHP 설정 화면에서 "확장 모듈" 또는 유사 탭으로 이동
- 필요한 확장 모듈(예:
xdebug
)을 찾기 - 스위치 버튼을 클릭하여 ON/OFF 설정
- 추가 설정이 필요한 경우(예:
xDebug
), 옵션 입력란에서 직접 파라미터(xdebug.mode
,xdebug.client_port
등) 수정 - 저장 버튼을 눌러 적용
지원되는 PHP 확장 모듈의 전체 목록과 자세한 정보는 ServBay 문서의 PHP 확장 모듈 목록에서 확인할 수 있습니다(최신 문서 참조).
PHP 설정 파일 구조 이해(수동 수정 비추천)
설정 변경을 UI로 하는 걸 강력하게 권장하지만, 파일 구조와 위치를 이해하면 PHP의 동작 방식을 더 잘 알 수 있습니다.
ServBay에서 PHP 설정 파일은 /Applications/ServBay/etc/php/<version>/
에 위치합니다:
php.ini
: 메인 설정 파일php-fpm.conf
: PHP-FPM 프로세스 매니저 설정 파일conf.d/
: 각 확장 모듈 별.ini
파일 저장
php.ini 파일 예시 구조
php.ini
파일은 INI 포맷입니다. 대표적인 항목 예시는 다음과 같습니다:
ini
; 메모리 제한 변경
memory_limit = 256M
; 업로드 파일 크기 제한 변경
upload_max_filesize = 50M
post_max_size = 50M
; 타임존 설정 변경
date.timezone = "Asia/Shanghai" ; 또는 "UTC", "America/New_York" 등 필요에 맞게 지정
; 에러 표시 활성화(개발 환경에서만 사용!)
display_errors = On
error_reporting = E_ALL
; 최대 실행 시간 변경
max_execution_time = 300
; 파일 시스템 접근 경로 제한(예시)
; open_basedir = /Applications/ServBay/www/:/tmp/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
php-fpm.conf 파일 구조 예시
php-fpm.conf
파일에는 글로벌 설정과 프로세스 풀(pool
) 관련 설정이 포함됩니다. ServBay는 일반적으로 www
라는 기본 pool을 사용합니다.
ini
[global]
; 글로벌 에러 로그 경로
error_log = /Applications/ServBay/logs/php/8.3/errors.log
[www]
; 리슨 주소/포트 또는 소켓 파일
listen = /Applications/ServBay/tmp/php-cgi-8.3.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
; 유저 및 그룹(ServBay는 대개 현재 유저로 동작)
; user = servbay-demo
; group = staff
; 프로세스 관리 방식(static, dynamic, ondemand)
pm = dynamic
pm.max_children = 10 ; 최대 하위 프로세스 수
pm.start_servers = 2 ; 시작 시 생성 프로세스 수
pm.min_spare_servers = 1 ; 최소 유휴 프로세스 수
pm.max_spare_servers = 6 ; 최대 유휴 프로세스 수
pm.max_requests = 1024 ; 각 프로세스가 처리할 최대 요청 수(이후 재시작해 메모리 누수 방지)
; 슬로우 로그 활성화(지정된 시간 초과 요청 기록)
request_slowlog_timeout = 5s
slowlog = /Applications/ServBay/logs/php/8.3/slow.log
; php 설정(동일 이름은 php.ini값 덮어씀, 예시)
; php_admin_value[memory_limit] = 128M
; php_admin_flag[display_errors] = on
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
PHP 모듈 로드 설정 예시(conf.d/)
conf.d/
폴더 내 .ini
파일은 개별 확장 모듈 로드 및 설정 담당입니다. 예를 들어, xdebug.ini
파일은 아래와 비슷할 수 있습니다:
ini
[Xdebug]
; Xdebug 확장 로드
zend_extension = xdebug.so
; Xdebug 모드(debug, develop, profile, trace, coverage)
xdebug.mode=debug,develop
; 디버깅 시작 방식(yes, trigger, develop)
; yes: 항상 디버깅 시작
; trigger: 특정 트리거(GET/POST 파라미터, 쿠키 등)로 시작
; develop: 개발 보조기능만 활성화(스택 트레이스 등)
xdebug.start_with_request=yes
; 클라이언트 호스트 및 포트(IDE 연동)
xdebug.client_host=localhost
xdebug.client_port=39083
; Xdebug 로그 경로
xdebug.log=/Applications/ServBay/logs/xdebug/8.3/xdebug.log
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
다시 한번 강조합니다: 위 위치에서 파일을 확인할 수는 있지만, 절대 수동으로 편집하지 말고 반드시 ServBay UI로 변경하세요.
변경 사항 적용: PHP 서비스 재시작
ServBay UI에서 설정을 수정하면, ServBay가 자동으로 변경을 감지하고 적용합니다. 경우에 따라서는 모든 변경사항을 반영하기 위해 해당 PHP 서비스를 재시작해야 할 수 있습니다.
PHP 서비스를 재시작하는 방법:
ServBay UI를 통한 재시작
- ServBay 메인 윈도우를 엽니다.
- 좌측 메뉴에서 패키지를 클릭합니다.
- 설정을 변경한 PHP 버전을 찾습니다.
- 해당 PHP 버전 옆의 재시작 버튼(순환 화살표 아이콘)을 클릭합니다.
servbayctl
명령어로 재시작
명령행을 선호하는 개발자는 ServBay에서 제공하는 servbayctl
도구로 서비스 관리 및 특정 PHP 버전 재시작이 가능합니다.
터미널을 열고 다음 명령을 실행하세요(버전 8.3
은 필요에 맞게 변경):
bash
servbayctl restart php 8.3
1
명령 실행 후, ServBay가 지정한 PHP-FPM 프로세스를 재시작하여 새 설정을 반영합니다.
자주 묻는 질문(FAQ)
Q: 수동으로
php.ini
를 수정했는데 적용이 안 되거나 자동으로 원상복귀되는 이유가 뭔가요?- A: ServBay는 소프트웨어 패키지의 설정 파일을 직접 관리 및 생성합니다. 수동으로 변경한 내용은 ServBay가 설정 갱신, 서비스 재시작 또는 내부 작업을 할 때 덮어써질 수 있습니다. 반드시 ServBay UI로 PHP 설정을 수정해야 변경사항이 지속됩니다.
Q: PHP의 메모리 제한이나 파일 업로드 용량을 어떻게 늘릴 수 있나요?
- A: ServBay UI에서 언어 → 원하는 PHP 버전을 선택하세요. PHP FPM 설정의
memory_limit
는 웹에, php.ini의upload_max_filesize
,post_max_size
는 전체에 적용됩니다(FPM과 겹치면 FPM 설정이 웹 기준 우선). 변경 후 저장 및 PHP 서비스 재시작을 해주세요.
- A: ServBay UI에서 언어 → 원하는 PHP 버전을 선택하세요. PHP FPM 설정의
Q: Xdebug 활성화 또는 설정은 어떻게 하나요?
- A: ServBay UI에서 언어 → PHP 버전 선택 → 확장 모듈 설정에서
xdebug
를 찾아 활성화. 필요에 따라xdebug.mode
,xdebug.client_host
,xdebug.client_port
등도 수정 가능. 저장 후 PHP 서비스 재시작 필요.
- A: ServBay UI에서 언어 → PHP 버전 선택 → 확장 모듈 설정에서
Q:
php.ini
와 PHP-FPM 설정의 차이는 무엇이고, 어느 쪽을 수정해야 할까요?- A:
php.ini
는 PHP의 전역 설정 파일로 CLI와 웹에 모두 적용됩니다. PHP-FPM 설정(php-fpm.conf
)은 웹 서버 환경에 특화되어 있으며, 중복 항목은 FPM 설정값이 웹 내부에서 우선 적용됩니다. 웹 환경에 영향을 주는 설정(메모리 제한, 실행 시간, 에러 표시 등)은 FPM 설정을, CLI나 전체 환경에 영향을 주는 설정(타임존, 함수 비활성화 등)은 php.ini 설정을 확인·수정하세요. ServBay UI에서는 두 영역이 명확히 구분되어 있습니다.
- A:
요약
ServBay는 사용자 인터페이스를 통해 php.ini
, PHP-FPM, 다양한 확장 모듈을 안전하고 간편하게 관리할 수 있는 환경을 제공합니다. UI로 설정을 변경하고 저장하며, PHP 서비스를 재시작하면 원하는 개발 환경 구성이 쉬워집니다. 하위 설정 파일 위치를 아는 것도 도움이 되지만, 실질적인 설정 변경은 항상 ServBay UI에서 진행하세요. ServBay의 강력한 설정 지원을 활용해, 다양한 프로젝트에 맞는 최적의 PHP 환경을 손쉽게 구축할 수 있습니다.