WEB Server - NGINX와 PHP 연동시 HTML 파일에서 PHP 실행하기




    이번 포스팅에서는 HTML 에서 PHP 실행 설정을 알아보겠습니다.






    NGINX 이전 글 :


    서버와 클라이언트 그리고 HTTP - https://server-talk.tistory.com/291


    WEB Server - NGINX 알아보기 - https://server-talk.tistory.com/297


    WEB Server - NGINX Comfile 설치하기 - https://server-talk.tistory.com/301


    WEB Server - NGINX 서비스 제어 - https://server-talk.tistory.com/302


    WEB Server - NGINX 구성파일 및 기본설정 - CentOS 7 - https://server-talk.tistory.com/303


    WEB Server - NGINX HTTP 설정 - CentOS 7 - https://server-talk.tistory.com/304


    WEB Server - NGINX PHP 5.2 연동하기 - CentOS 7 - https://server-talk.tistory.com/307


    WEB Server - NGINX LOCATION 블록 알아보기 - CentOS 7https://server-talk.tistory.com/310


    WEB Server - NGINX LOCATION 블록 사용법 - CentOS 7- https://server-talk.tistory.com/311


    WEB Server - NGNINX 기본 상태 정보(현황 모듈) 알아보기 - https://server-talk.tistory.com/313


    WEB Server - NGNINX 기본 인증(접근제한) 알아보기 - https://server-talk.tistory.com/314






    PHP 관련 글 :


    WEB Server - NGINX Comfile 설치하기 - https://server-talk.tistory.com/301


    WEB Server - NGINX PHP 연동하기 - CentOS 7 - https://server-talk.tistory.com/307


    WEB Server - NGINX PHP 5.3 설치하기 - CentOS 7 - https://server-talk.tistory.com/327


    WEB Server - PHP 7.x 컴파일 설치하기 - CentOS 7 - https://server-talk.tistory.com/312


    WEB Server - PHP 확장 모듈(phpize) 알아보기 - https://server-talk.tistory.com/316


    WEB Server - PHP zip 확장 모듈 설치하기 - https://server-talk.tistory.com/317


    WEB Server - PHP-FPM 설정하기 - https://server-talk.tistory.com/324






     

     PHP-FPM 보안




    초기에 NGINX, PHP-FPM 설치후 PHP 확장자가 아니면 실행되지 않는 기능이 있습니다 HTML 확장자를 가진 파일을 실행할 경우 Access denied 페이지로 작동을 하지 않으며, php-fpm에서 security.limit_extensions 옵션에 실행하실 확장자 파일을 추가하시면 됩니다





     

     PHP-FPM 확장자 실행파일 설정하기




    PHP-FPM 설정하기


    vi /usr/local/php53/conf/php-fpm.conf
    . . .
    security.limit_extensions = .php .php3 .php4 .php5 .html .htm;
    . . .
    


    PHP-FPM 설정파일에 security.limit_extensions에 실행을 원하실 확장자 파일을 추가하시면 됩니다.






     

     NGINX 확장자 실행파일 설정하기


    PHP-FPM 뿐만 아니라 NGINX에서도 별도의 확장자 실행이 설정이 필요합니다



    1. NGINX PHP 연동 수정 전


    server {
    	listen	192.168.85.177:80;
           server_name	server-talk.com;
           root	/home/server_talk/public_html;
    
            access_log  /usr/local/nginx/logs/server-talk.com.access.log;
            error_log   /usr/local/nginx/logs/server-talk.com.error.log;
    
    	# 사용자 요청파일이 php 확장자 파일을 요청할때 사용됩니다.
    	location ~ \.php$ {
    	    #PHP-FPM에서 지정한 IP와 포트를 입력합니다.
    	    fastcgi_pass   192.168.85.177:9001;
    
    	    #PHP-FPM에 전달하게될 스크립트 파일명
    	    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    
    	    #FastCGI 관련 구성 설정 정보를 포함합니다.
    	    include        fastcgi_params;
    	}
    }
    


    위 설정 내용은 NGINX와 PHP 연동 설정이며, 확장자 처리에 필요한 확장자를 정의해야 됩니다





    2. NGINX PHP 연동 수정 후


    server {
    	listen	192.168.85.177:80;
           server_name	server-talk.com;
           root	/home/server_talk/public_html;
    
            access_log  /usr/local/nginx/logs/server-talk.com.access.log;
            error_log   /usr/local/nginx/logs/server-talk.com.error.log;
    
    	# 사용자 요청파일이 php 확장자 파일을 요청할때 사용됩니다.
    	location ~ \.(php|html|htm)$ {
    	    #PHP-FPM에서 지정한 IP와 포트를 입력합니다.
    	    fastcgi_pass   192.168.85.177:9001;
    
    	    #PHP-FPM에 전달하게될 스크립트 파일명
    	    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    
    	    #FastCGI 관련 구성 설정 정보를 포함합니다.
    	    include        fastcgi_params;
    	}
    }
    


    위 내용과 같이 NGINX LOCATION 블록에서 처리가 필요한 확장자를 추가하시면 됩니다



    3. NGINX, PHP-FPM 재시작


    [root@nginx ~]# service nginx restart
    [root@nginx ~]# service php-fpm52 restart
    


    Posted by Server-talk 서버이야기