기술 가이드

PHP FastCGI 테스트와 사이트별 php.ini 구성

3 min read 서버·운영 업데이트됨 01 Oct 2025
PHP FastCGI 테스트 및 사이트별 php.ini 적용
PHP FastCGI 테스트 및 사이트별 php.ini 적용

개요

이 가이드는 로컬 또는 서버에서 PHP-FastCGI 환경을 구성한 뒤, 사이트별로 서로 다른 php.ini를 적용하고 개별 설정을 변경해 테스트하는 절차를 다룹니다. 예제 명령과 파일 경로는 원문에 맞춰 유지합니다.

Important: 실제 운영 서버에서는 변경 후 Apache 재시작 및 권한 확인을 잊지 마세요.

테스트 준비 — 간단한 PHP 파일 생성

이제 작은 PHP 테스트 파일을 각 웹 사이트 루트에 만들고 웹 브라우저에서 호출해 동작을 확인합니다. 예를 들어 www.example1.com 사이트에서 다음 파일을 만듭니다.

vi /srv/www/web1/web/info.php

코드 내용:

브라우저에서 http://www.example1.com/info.php 를 호출하십시오. 모든 것이 정상이라면 출력 상단의 Server API 라인에 CGI/FastCGI가 표시됩니다.

phpinfo 출력에서 Server API에 CGI/FastCGI가 보이는 예

사이트별 맞춤 php.ini 적용 방법

각 웹 사이트는 자체 php-fcgi-starter 래퍼 스크립트를 갖습니다. 따라서 사이트마다 다른 php.ini를 적용할 수 있습니다. 예제로 기본 php.ini를 /srv/www/web2/ 디렉터리로 복사하고 소유자를 변경해 www.example2.com에 적용해 보겠습니다.

cp /etc/php5/fastcgi/php.ini /srv/www/web2/  
chown web2:web2 /srv/www/web2/php.ini

(이제 /srv/www/web2/php.ini 파일을 원하는 값으로 수정할 수 있습니다.)

다음으로 웹2의 php-fcgi-starter 스크립트를 엽니다:

vi /srv/www/php-fcgi-scripts/web2/php-fcgi-starter

PHPRC 라인에 /srv/www/web2/ 를 넣습니다:

#!/bin/sh
PHPRC=/srv/www/web2/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/bin/php-cgi

변경 후 Apache를 재시작합니다:

/etc/init.d/apache2 restart

www.example2.com용 phpinfo 파일을 새로 만듭니다:

vi /srv/www/web2/web/info.php

브라우저에서 http://www.example2.com/info.php 를 호출하면 Loaded Configuration File 라인에 /srv/www/web2/php.ini 가 표시되어야 합니다.

phpinfo Loaded Configuration File이 /srv/www/web2/php.ini로 표시된 예

Notes: 파일 권한과 소유자가 올바른지 확인하세요. 웹 서버 계정이 파일을 읽을 수 있어야 합니다.

단일 PHP 설정 항목만 변경하기

전체 php.ini 파일을 교체하지 않고, php-fcgi-starter 스크립트에서 PHP 실행 시 -d 스위치를 사용해 단일 설정 항목을 덮어쓸 수 있습니다. 예로 www.example2.com에서 magic_quotes_gpc를 끌 경우 방법은 다음과 같습니다.

vi /srv/www/php-fcgi-scripts/web2/php-fcgi-starter

내용 예시:

#!/bin/sh
PHPRC=/etc/php5/fastcgi/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/bin/php-cgi -d magic_quotes_gpc=off

변경 후 Apache를 재시작하십시오:

/etc/init.d/apache2 restart

브라우저에서 info.php 를 다시 호출하고 magic_quotes_gpc 항목을 검색하면 Off로 표시됩니다.

phpinfo에서 magic_quotes_gpc가 Off로 표시된 예

Important: -d 스위치로 설정한 값은 해당 php-cgi 프로세스에만 적용됩니다. 여러 스크립트에 공통 적용하려면 php.ini로 관리하는 편이 낫습니다.

점검 및 테스트 체크리스트

  • phpinfo() 출력에서 Server API가 CGI/FastCGI인지 확인
  • Loaded Configuration File 경로가 기대한 php.ini를 가리키는지 확인
  • 파일 권한과 소유자(user:group)가 올바른지 확인
  • Apache 재시작 후 변경사항 반영 확인
  • -d로 덮어쓴 설정은 프로세스별 영향 범위를 이해했는지 확인

간단한 방법론(작업 순서 요약)

  1. 테스트용 info.php 파일 생성
  2. 사이트별 php.ini 필요 시 복사 및 권한 설정
  3. php-fcgi-starter에 PHPRC(또는 -d) 설정 추가
  4. Apache 재시작
  5. phpinfo()로 최종 확인

수용 기준(테스트 케이스)

  • Server API가 CGI/FastCGI로 출력되어야 한다.
  • 사이트별 php.ini를 지정했을 때 phpinfo의 Loaded Configuration File이 해당 경로를 가리켜야 한다.
  • -d로 설정한 개별 항목은 phpinfo에 반영되어야 한다.

간단 용어집

  • PHPRC: PHP 실행 시 참조할 php.ini 디렉터리 경로를 지정하는 환경 변수.
  • php-fcgi-starter: 각 사이트별로 php-cgi를 실행하기 위한 래퍼 쉘 스크립트.
  • -d: PHP 실행 시 개별 설정을 지정하는 CLI 스위치.

보안 및 운영 팁

  • 사이트별로 다른 php.ini를 둘 때, 민감한 설정(예: expose_php, display_errors)은 운영 기준에 맞춰 일관되게 관리하세요.
  • 테스트는 별도 스테이징에서 먼저 수행하고, 운영 반영 전 롤백 계획을 준비하세요.

링크

요약

  • phpinfo()로 FastCGI 동작을 먼저 확인합니다.
  • 사이트별 php.ini는 PHPRC로 지정합니다.
  • 개별 설정은 -d 스위치로 덮어쓸 수 있습니다.
  • 변경 후 Apache 재시작과 권한 점검을 잊지 마세요.
공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

트위터 링크를 나중에 읽기 위해 저장하는 방법
생산성

트위터 링크를 나중에 읽기 위해 저장하는 방법

랩톱으로 도지코인 채굴하는 단계별 가이드
암호화폐

랩톱으로 도지코인 채굴하는 단계별 가이드

트랙패드·외장 마우스 감도 분리 및 AHK 단축키 설정
설정 가이드

트랙패드·외장 마우스 감도 분리 및 AHK 단축키 설정

RE4 치명적 D3D 오류 25 해결 가이드
게임 문제해결

RE4 치명적 D3D 오류 25 해결 가이드

Ansible Molecule과 Docker로 역할 자동 테스트하기
DevOps

Ansible Molecule과 Docker로 역할 자동 테스트하기

PHP FastCGI 테스트 및 사이트별 php.ini 적용
서버·운영

PHP FastCGI 테스트 및 사이트별 php.ini 적용