일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 | 31 |
Tags
- 디자인패턴
- GCM
- 푸시 번역
- 도메인 주도 개발
- notification
- 페이스북 번역
- kafka
- nginx설정
- JPA
- gcm 푸시 번역
- Design Pattern
- 성능
- php
- Java
- Push
- git
- APNS
- 푸시
- 웹사이트최적화기법
- GCM 번역
- 자바스크립트
- 웹사이트성능
- graphql
- ddd
- 카프카
- 카프카 트랜잭션
- nginx
- 웹사이트 성능
- nginx설치
Archives
- Today
- Total
간단한 개발관련 내용
[Nginx] php 와 nginx 연동 본문
반응형
PHP와 nginx의 연동
FastCGI를 사용해 PHP를 nginx와 연동해 보려고 합니다. 기본적으로 PHP는 FastCGI 프로코콜을 지원합니다.PHP는 스크립트를 처리하며 nginx와 socket으로 연동할 수 있습니다. 바로 PHP-FPM으로도 알려진 FastCGI 프로세스 관리자를 사용하면 됩니다.
PHP-FPM
PHP 프로세스를 관리하는 스크립트로서 nginx의 요청을 받은 후 스크립트를 수행합니다.
- PHP의 자동 데몬 프로세스화(백그라운드 프로세스로 전환)
- chroot로 격리된 환경에서 스크립트를 수행
- 로그개선, IP주소제한, Pool분리등
PHP 설치 및 빌드
공식문서 : www.php.net/manual/en/install.unix.nginx.php
다운로드 및 압축을 푼다
- yum install libevent-devel libxml2-devel
- wget www.php.net/distributions/php-7.4.14.tar.gz
- tar xzf php-7.4.14.tar.gz
빌드과정을 수행한다
- ./configure --enable-fpm --with-mysqli
- 에러 발생 시 .. No package 'sqlite3' found
- sudo yum -y install sqlite-devel
- 에러 발생 시 .. No package 'sqlite3' found
- make
- make install
기본설정 파일을 복사한다
- cp php.ini-development /usr/local/php/php.ini
- cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf
- cp sapi/fpm/php-fpm /usr/local/bin
보안을 위해 php.ini 파일을 수정한다
- vim /usr/local/php/php.ini
- cgi.fix_pathinfo=0
php-fpm.conf 파일을 수정한다
vi /usr/local/etc/php-fpm.d/www.conf
- user = www-data
- group = www-data
php-fpm 실행
/usr/local/sbin/php-fpm -c /usr/local/etc/php.ini --pid /usr/local/var/run/php-fpm.pid --fpm-config=/usr/local/etc/php-fpm.d/www.conf -D
- -c /usr/local/etc/php.ini #PHP 구성파일의 경로지정
- --pid /usr/local/var/run/php-fpm.pid #초기화 스크립트에서 프로세스를 제어하는 데 유용한 PID 파일의 경로지정
- --fpm-config=/usr/local/etc/php-fpm.d/www.conf #PHP-FPM이 특정 구성파일을 사용하도록 강제지정
- -D #PHP-FPM을 데몬화
Nginx 설정 수정
user www-data;
http {
server {
listen 80;
server_name localhost;
location / {
root html;
index index.php index.html index.htm;
}
location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
}
}
}
Nginx 실행
/usr/local/nginx/sbin/nginx 또는 /usr/local/nginx/sbin/nginx -s reload
반응형