nginx + PHP-FPM으로 CentOS 7에서 PHP 실행 환경 만들기

환경


  • macOS 10.12.6
  • MacBook pro 2016
  • VirtualBox 5.2.18
  • CentOS 7.6-1810

  • 소개



    nginx에서 PHP 실행 환경을 만들어 브라우저 확인까지 하려고합니다.
    nginx의 설치는 이쪽의 기사를 봐 주세요↓
      - CentOS 7에 nginx를 설치하고 브라우저를 확인할 때까지
    CentOS 7의 환경 구축은 이쪽의 기사를 봐 주세요↓
      - Mac에서 VirtualBox를 사용하여 CentOS 7을 설치해 보았습니다.
      - VirtualBox의 네트워크 설정을 괴롭히고 안전하고 쾌적한 개발을 할 수 있도록 했다

    nginx에서 PHP를 이동하려면



    Apache는 설치할 때 PHP 실행 환경을 갖추고 있습니다.
    PHP는 Apache용으로, 동일한 프로세스로 움직이는 모듈판이라고 하는 것이 준비되어 있어 이것이 Apache의 인스톨시에 함께 들어 있기 때문에, PHP의 프로그램을 움직일 수가 있습니다.

    그에 비해 nginx는 설치한 것만으로는 PHP 프로그램을 실행할 수 없습니다.
    왜냐하면 nginx 용 모듈 버전은 제공되지 않기 때문입니다. 따라서 nginx에서 PHP를 실행하려면 CGI 버전의 PHP를 사용해야합니다. (덧붙여서, 아파치는 CGI 버전도있는 것 같습니다 ...! 욕심입니다.)
    CGI 버전의 PHP를 움직이려면 PHP-CGI라는 것에 요청을 보내야합니다만, nginx만으로는 그것이 할 수 없습니다. . . (어째서 할 수 없는지는 나중에 조사해~~)

    그럼 어떻게 할까, 거기서 등장하는 것이, PHP-FPM 라고 하는 프로그램입니다!
    이 PHP-FPM이 괜찮은 일, nginx에서 PHP-CGI에 대한 요청을 풀어주고, 드디어 PHP 프로그램이 움직여준다는 것입니다.

    뭐, 어쨌든 PHP를 nginx로 움직이고 싶다면 PHP-FPM 넣으라고 하는 것이군요.

    PHP 설치



    yum에서 차차와 설치.
    // インストール
    # yum -y install php
    // 確認
    # php --version
    

    php의 준비는 이것만으로 충분합니다.

    PHP-FPM 설치 및 설정



    이쪽도 yum으로 인스톨.
    # yum -y install php-fpm
    

    설정 파일은, /etc/php-fpm.d/ 부하의, www.conf 라고 하는 파일입니다.
    # vi /etc/php-fpm.d/www.conf
    

    설정 내용은 다음과 같습니다.

    www.conf
    - user = apache
    - group = apache
    + user = nginx
    + group = nginx
    

    nginx에서 설정



    설정 파일은, /etc/nginx/conf.d/ 부하의, default.conf 라고 하는 파일입니다.
    # vi /etc/nginx/conf.d/default.conf
    

    default.conf
    # ...(省略)
       location / {
            root   /usr/share/nginx/html;
            index  index.php; # index.phpを設定
        }
    # ...(省略)
      # 以下の部分のコメントアウトを消す
      location ~ \.php$ {
            root           /usr/share/nginx/html; # ドキュメントルートを設定
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; # デフォルトでは、「/scripts」となっているので、「ドキュメントルート($document_root)」に変更する
            include        fastcgi_params;
        }
    # ...(省略)
    

    표시할 PHP 파일 준비



    위의 설정으로 문서 루트를 /usr/share/nginx/html 로 하고 있으므로 /usr/share/nginx/html 아래에 index.php 를 작성합시다.
    # touch /usr/share/nginx/html/index.php
    

    확인용이므로, 적당히 echo 해 봅시다.

    index.php
    <?php
     echo('PHP動いたよ!');
    ?>
    

    브라우저에서 확인



    nginx와 php-fpm 설정을 변경했으므로 둘 다 재부팅하여 설정을 반영합니다.
    # systemstl restart nginx
    # systemctl restart php-fpm
    ※CentOS 6 以下は、serviceコマンドを使ってください。
    

    그리고는 http://CentOSのIP:nginxで設定したポート番号/index.php 로 접속해, 브라우저 확인할 수 있으면 완료!

    좋은 웹페이지 즐겨찾기