[CentOS7] Nginx 서버에서 PHP-FPM을 사용하여 PHP를 실행하도록 설정

환경



CentOS: 7.4
PHP: 7.2
Nginx: 1.14

하고 싶은 일



Nginx 서버 환경에서 PHP를 실행할 수 있도록 설정합니다.

루트 디렉토리를 /home/user_name/projects로 설정합니다.
(여기는 자신이 좋아하는 디렉토리를 설정해도 괜찮습니다.)

전제 조건



다음 설치가 완료되었다고 가정합니다.
  • PHP
  • Nginx
  • PHP-FPM (Nginx에서 PHP를 실행하는 데 필요)

  • 설치 방법은 【CentOS】PHP, PHP-FPM, NginX 설치을 참조하십시오.

    Nginx 설정



    포트 설정


    /etc/nginx/conf.d/default.conf 설정 파일을 편집합니다.

    Apache와 동시에 시작하고 싶으므로 Apach에서 지정한 포트를 사용할 수 없습니다.
    이번에는 Apache에서 80번을 지정하고 있기 때문에 Nginx에서는 8080번을 이용합니다.

    /etc/nginx/conf.d/default.conf
    server {
        listen       8080;
        server_name  localhost;
        ...
    

    PHP 관련 설정



    그런 다음 Nginx에서 PHP를 실행할 수 있도록 설정합니다.
    설정할 파일은 동일합니다 /etc/nginx/conf.d/default.conf.

    기본 설정은 location ~ \.php$ {...} 전체가 주석 처리되어 있기 때문에 제거합니다.
    또한 rootfastcgi_param 부분에 루트 디렉터리를 설정합니다.

    /etc/nginx/conf.d/default.conf
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    
        location ~ \.php$ {
            root           /home/user_name/projects;
            fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /home/user_name/projects$fastcgi_script_name;
            include        fastcgi_params;
        }
    

    설정을 반영



    Nginx를 시작(재부팅)합니다.
    터미널에서 다음 명령을 입력하여 실행합니다.
    $ sudo systemctl restart nginx
    

    PHP-FPM 설정



    user와 group을 nginx로 변경합니다.
    초기 설정에서는 apache가 되어 있으므로, 코멘트 아웃(혹은 삭제) 합니다.

    /etc/php-fpm.d/www.conf
    ;user = apache
    user = nginx
    
    ;group = apache
    group = nginx
    

    설정을 반영



    PHP-FPM을 다시 시작합니다.
    터미널에서 다음 명령을 입력하여 실행합니다.
    $ sudo systemctl restart nginx
    

    Nginx에서 PHP 실행



    실행 파일 만들기



    루트 디렉토리에 index.php를 만듭니다.
    올바르게 설정되어 있으면 루트 디렉토리에 액세스할 때 Nginx가 index.php를 실행합니다.

    /home/user_name/projects/index.php
    <?php phpinfo(); ?>
    

    PHP 실행



    브라우저의 URL에 localhost:8080를 입력하고 다음 화면이 표시되면 성공합니다 (8080은 자신이 설정한 Nginx의 포트 번호).
    이것은 루트 디렉토리 ( /home/user_name/projects )의 index.php가 실행 된 결과입니다.

    좋은 웹페이지 즐겨찾기