PHP-FPM

Server/Ubuntu 2016. 2. 15. 21:56

PHP-FPM (PHP FastCGI Process Manager)은 대규모 사이트에서 유용한 추가 기능들을 이용해 PHP 를 fastCGI 모드로 동작하게 한다.


  1. 웹서버와 프로세스를 분리하여 독립적으로 사용
  2. 별도의 포트와 php.ini 파일을 사용하여 다른 uid/gid/chroot/환경으로 프로세스 시작
  3. 에러 로깅 출력
  4. 빠른 업로드
  5. slowlog - 비정상적으로 느린 스크립트 기록
  6. fastcgi_finish_request() 함수 제공 - 오래 걸리는 작업은 계속 진행하고, 현재 위치에서 즉시 응답을 보냄 (비디오 변환, 상태 처리 등)
  7. 동적/정적 자식 프로세스 생성 가능
  8. Apache mod_status 같은 기본 SAPI 상태 정보 제공


대략적인 구동방식은 해당 도메인으로 들어오는 모든 php 요청을 php-fpm 데몬으로 넘기는 식이다.

기본 php.ini 파일 대신 /etc/php5/fpm/php.ini 파일로 php 파일을 처리하게 되며,

php-fpm 데몬 설정은 /etc/php5/fpm/pool.d/www.conf 파일에서 한다.



1. PHP-FPM 설치


# apt-get install php5-fpm
cs



2. 가상 디렉토리 수정


# vi /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ProxyPassMatch ^/(.*.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1
...
cs



3. php-fpm 설정


# vi /etc/php5/fpm/pool.d/www.conf
listen = 127.0.0.1:9000
cs



4. 모듈 적재 / 데몬 재구동


# a2enmod proxy_fcgi
# service apache2 restart
# service php5-fpm restart
cs


9000 포트로 연결하였으므로 9000 포트가 열려 있어야 한다.




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret