PHP7.1 fpm with nginx on macOS

macOS에 php7과 nginx를 설치하여 사용하는 방법.

jung2.net 블로그를 시작하던 무렵부터 구형 맥미니에 블로그 서버(?)를 구동하기 위해 직면했던 문제가 바로 nginx와 php7의 조합이었다.
당시에는, 할줄 아는 게 없어서(지금도 크게 다르지 않다..ㅎㅎ) MAMP라는 앱의 도움을 받아 configuration등을 설정하고 사용했었는데 운영을 좀 하다보니 결정적인 불편함이 여러군데에서 발생했다.
당면했던 불편함으로는,
1. nginx root directory 의 위치
2. nginx, mysql, php 등의 버전 업데이트
3. 스크립트를 통한 구동
등이 있었던 것 같다.
물론, nginx root directory의 경우 MAMP conf 파일을 직접 수정함으로써 해결할 수 있었고, 스크립트를 통한 구동 또한 이래저래 잘 조절하여 해결했지만, 모듈 등의 버전 업데이트는 해결하기 어려운 난제였다.
각설하고, 아래와 같은 절차로 설정하면 잘 동작한다.

  1. homebrew 를 통하여 php7.1 설치
    만약 homebrew 가 설치되어 있지 않다면 여기를 통해 homebrew를 먼저 설치한다.
    터미널에서 다음의 명령어를 순차적으로 입력한다.

    brew tap homebrew/services; brew tap homebrew/dupes
    brew install php71 --with-fpm --without-apache; php -v; php-fpm -v
  2. 1의 과정을 거치면 php7.1의 설치는 끝났다. 다음 명령어로 php7.1을 실행한다.
    brew services start php71
  3. nginx.conf 파일의 수정
    nginx는 미리 설치되어 있다고 가정하고, (그렇지 않다면 brew install nginx 를 통해 간단히 설치할 수 있다.) /usr/local/etc/nginx 로 이동하여 nginx.conf 파일을 오픈한다.
    nginx.conf 는 웹서버의 성격에 따라 굉장히 많이 다를 수 있으므로, 기본이 되는 부분만 기술한다.

    location / {
        root   html;
        index  index.html index.htm index.php;
    }
    
    location ~ \.php$ {
        root           html;
        include        fastcgi.conf;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        include        fastcgi_params;
    }

    먼저 3번 라인의 index.php를 nginx index list에 반드시 추가시켜서 nginx가 자동으로 파일을 로드할 수 있도록 설정해야 한다.
    그리고선, php 설정에서 fastcgi.conf를 include하고 저장하면 된다.

  4. nginx reload
    nginx.conf 설정이 완료되면 다음의 명령어를 통해 nginx를 reload 한다.

    brew services restart nginx
  5. phpinfo.php 를 통한 설치 확인
    nginx의 root directory에 다음의 php 파일을 추가한다.

    <?php
        phpinfo();
    ?>

    http://127.0.0.1:{server_port}/phpinfo.php 를 로드하여 정상적으로 설치되었는지 확인한다.

댓글 남기기