CentOS 7 Apache 2.4 에 PHP-FPM 설치 > 개발

본문 바로가기
사이트 내 전체검색

개발

CentOS 7 Apache 2.4 에 PHP-FPM 설치

페이지 정보

profile_image
작성자 관리자 (61.♡.222.236)
댓글 0건 조회 5,452회 작성일 19-06-26 18:42

본문

ㅁ 우선 PHP_FPM 이란?

https://php-fpm.org/
PHP-FPM - A simple and robust FastCGI Process Manager for PHP


ㅁ 아파치 2.4 이상에서는 proxy_fcgi 와 php-fpm 를 사용하는 것이 최상이라고 한다.

Using proxy_fcgi and php-fpm (for 2.4)
This method is preferred above all other recipes, and is suitable for versions 2.4 and newer. Not only it allows you to discern and diagnose problems related to PHP more quickly, but also you will be able to use a faster and more scalable threaded mpm such as event or worker, which will significantly reduce the memory footprint of your httpd server.

https://cwiki.apache.org/confluence/display/HTTPD/PHP
https://cwiki.apache.org/confluence/display/HTTPD/PHP-FPM


ㅁ fastcgi 이란 무엇이며, php-fpm 의 역사

php 5.4 부터 php 자체적으로 fastcgi 를 지원하기 시작했고,
그 이전에선 다른 방법으로 fcgi 를 구현했다.

https://opentutorials.org/module/384/4332
https://blog.naver.com/ssik425/220038936971


ㅁ unix socket vs tcp port

웹서버와 php-fpm 이 통신하는 방법으로 아래와 같이 2가지 방법으로 가능하다.
unix socket 방식이 더 빠르다고 한다.

#listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php-fpm.sock

https://unix.stackexchange.com/questions/91774/performance-of-unix-sockets-vs-tcp-ports


ㅁ php-fpm 설치

yum 으로 설치
# yum install php-fpm

이미 php 가 설치가 되어 있어서 그런지, 의존성 패키지 없이 php-fpm 하나만 바로 설치가 된다.

기본 설정 파일은  /etc/php-fpm.conf  이고, 열어보면 include=/etc/php-fpm.d/*.conf 구문이 있다.
/etc/php-fpm.d/ 에 가 보면, www.conf 파일이 하나 있다. 열어보자.

listen = 127.0.0.1:9000


ㅁ php-fpm 서비스 등록 및 실행

# systemctl enable php-fpm
# systemctl start php-fpm

ㅇ 주의!!
httpd 서비스와는 독립된 별도의 서비스 이므로,
php 세팅 관련 수정이 있을 경우 아파치와는 별도로 다시 시작해 주어야 한다.


ㅁ 문제해결

ㅇ  [proxy_fcgi:error] .... AH01071: Got error 'Primary script unknown\n'
ProxyPassMatch 대신에 FilesMatch + SetHandler 를 사용한다.
https://ma.ttias.be/apache-2-4-proxypass-for-php-taking-precedence-over-filesfilesmatch-in-htaccess/

위 오류의 이유는, 아파치의 디렉토리 Alias 설정 등의 경우에 발생한다.

ㅇ VirtualHost 마다 따로 적용시키지 않고, 일괄 적용하는 방법
/etc/httpd/conf.d/php.conf 파일에서 다음과 같이 수정한다.
[code]
<FilesMatch \.php$>
#    SetHandler application/x-httpd-php
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
[/code]
https://webinformation.tistory.com/101

ㅇ FilesMatch is better
https://stackoverflow.com/questions/34350248/php-fpm-filesmatch-and-proxypassmatch-interchangeability




* 참고
https://webinformation.tistory.com/101
https://ncube.net/10070
https://unix.stackexchange.com/questions/91774/performance-of-unix-sockets-vs-tcp-ports
https://blog.naver.com/ssik425/220038936971

추천0

댓글목록

등록된 댓글이 없습니다.

Total 386건 9 페이지
  • RSS

검색


사이트 정보

Copyright © Baragi.Net. All rights reserved.