본문 바로가기
서버/리눅스

nginx + php-fpm 설치하기 - CentOS 6.x

by 사악신 2014. 8. 13.


nginx 저장소 rpm 파일을 다운로드(http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm)한 후, 이를 설치합니다. rpm 설치가 끝나면 yum 으로 nginx 를 설치합니다.


yum install nginx


php-fpm 과 관련한 패키지들을 설치합니다.


yum install php php-fpm php-mysql


php-fpm 설정 파일을 수정합니다. 이때, 기존의 설정 파일은 다른 확장자로 변경하고 신규 파일을 생성합니다.(해당 서비스에 알맞은 이름으로 사용하면 됩니다.)


cd /etc/php-fpm.d

mv www.conf www.bak

vi 1pweb.conf


[1pweb]

listen = /var/run/php-fpm/1pweb.sock

listen.owner = nginx

listen.group = nginx

listen.mode = 0660

user = 1pweb

group = nginx

pm = dynamic

pm.max_children = 50

pm.start_servers = 5

pm.min_spare_servers = 5

pm.max_spare_servers = 35

chdir = /home/1pweb/html/


php_value[session.save_handler] = files

php_value[session.save_path]    = /var/lib/php/session

php_value[soap.wsdl_cache_dir]  = /var/lib/php/wsdlcache

;php_admin_value[open_basedir] = /home/artg/html:/tmp


(2015/02/122 - php 5.5 이상 버전부터 open_basedir 을 사용하지 않으며, curl 사용 등에 오류를 발생시키므로 제거합니다.)

상기 설정에서 홈페이지가 위치할 경로는 /home/1pweb/html 이며, 사용자 계정은 1pweb 입니다. php-fpm 세션과 관련하여 디렉토리 소유권을 변경하고 php-fpm 을 시작합니다.(디폴트로 존재하는 www.conf 에 의해 생성되는 www 풀을 삭제하였습니다.)


기존 www.conf 설정의 apache 사용자 권한을 유지하고 싶으면, 별도의 디렉토리를 생성하여 퍼미션을 구분하여 줍니다.(/var/lib/php/1pweb_session)


mv www.conf www.conf.bak

cd /var/lib/php

sudo chown root.nginx *

sudo /etc/rc.d/init.d/php-fpm start


nginx 설정 디렉토리에 설정 파일을 신규생성합니다.


cd /etc/nginx/conf.d

vi 1pweb.conf


server {

    listen       80;

    server_name  도메인주소;

    root /home/1pweb/html;


    #charset koi8-r;

    #access_log  /var/log/nginx/log/host.access.log  main;


    location / {

        index  index.php index.html index.htm;

        try_files $uri $uri/ /index.php?$query_string;

    }


    #error_page  404              /404.html;


    # redirect server error pages to the static page /50x.html

    #

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {

        root   /usr/share/nginx/html;

    }


    # proxy the PHP scripts to Apache listening on 127.0.0.1:80

    #

    #location ~ \.php$ {

    #    proxy_pass   http://127.0.0.1;

    #}


    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

    #

    #location ~ \.php$ {

    #    root           html;

    #    fastcgi_pass   127.0.0.1:9000;

    #    fastcgi_index  index.php;

    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

    #    include        fastcgi_params;

    #}


    # deny access to .htaccess files, if Apache's document root

    # concurs with nginx's one

    #

    #location ~ /\.ht {

    #    deny  all;

    #}


    location ~ \.php$ {

        try_files $uri =404;

        fastcgi_split_path_info ^(.+\.php)(/.+)$;

        fastcgi_index   index.php;

        fastcgi_pass    unix:/var/run/php-fpm/1pweb.sock;

        fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;

        include fastcgi_params;

    }


}


nginx 를 재시작한 후, 간단한 php 프로그램(info.php)을 작성하여 웹브라우저에서 연결해봅니다.


<?php

phpinfo();

?>




반응형

댓글