EC2의 nginx와 PHP7.4를 연계

8016 단어 EC2nginxPHP7.4AWS
EC2에 설치된 nginx에서 PHP7.4를 실행하는 방법의 메모입니다.
Appache와 달리 약간의 설정이 필요했기 때문에 절차를 정리해 보겠습니다.
( Amazon Linux 2 에서 설정하는 방법입니다.)
  • php7.4의 설치는 여기 를 참고해 주세요.

  • nginx 설정


    /etc/nginx/nginx.conf 에 php를 설정합니다.
    $sudo vi /etc/nginx/nginx.conf
    
        server {
            listen       80;
            listen       [::]:80;
            server_name  _;
            root         /usr/share/nginx/html;
    
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;
    
            error_page 404 /404.html;
                location = /40x.html {
            }
    
            error_page 500 502 503 504 /50x.html;
                location = /50x.html {
            }
    
            location ~ \.php$ {
               fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
               fastcgi_index  index.php;
               fastcgi_param  SCRIPT_FILENAME
               $document_root$fastcgi_script_name;
               include        fastcgi_params;
            }
        }
    
    

    php-fpm 설정 #1


    /etc/opt/remi/php74/php-fpm.d/www.conf 에 nginx 와 연동하기 위한 설정을 실시합니다 (5 개소, 설정을 실시합니다).
    $sudo vi /etc/opt/remi/php74/php-fpm.d/www.conf
    user = nginx
    group = nginx
    
    listen = /var/run/php-fpm/php-fpm.sock
    
    listen.owner = nginx
    listen.group = nginx
    

    php-fpm 설정 #2


    /etc/nginx/conf.d/php-fpm.conf 로 설정합니다.
    $sudo vi /etc/nginx/conf.d/php-fpm.conf
    upstream php-fpm {
            server unix:/var/run/php-fpm/php-fpm.sock;
    }
    

    sock 파일에 대한 설정



    php-fpm에서는 위의 /var/run/php-fpm/php-fpm.sock 파일을 시작할 때 만듭니다.Amazon Linux 2 에서는, 재기동하면 /var/run 디렉토리가 리셋 되고 있으므로, 기동시에 /var/run/php-fpm 를 자동 생성하는 스크립트를 설정합니다.
    $sudo vi /etc/tmpfiles.d/php-fpm-run.conf
    d /var/run/php-fpm 0755 root root
    

    php-fpm 시작



    다음 명령으로 php-fpm을 시작합니다.
    $sudo systemctl start php74-php-fpm.service
    

    php-fpm 확인



    다음 명령을 사용하여 php-fpm의 상태를 확인합니다.active(running) 가 되어 있으면, 정상적으로 기동하고 있습니다.
    $sudo systemctl status php74-php-fpm.service
     php74-php-fpm.service - The PHP FastCGI Process Manager
       Loaded: loaded (/usr/lib/systemd/system/php74-php-fpm.service; disabled; vendor preset: disabled)
       Active: active (running) since Mo 2020-07-20 21:13:23 UTC; 36min ago
     Main PID: 24651 (php-fpm)
       Status: "Processes active: 0, idle: 5, Requests: 1, slow: 0, Traffic: 0req/sec"
       CGroup: /system.slice/php74-php-fpm.service
               ├─24651 php-fpm: master process (/etc/opt/remi/php74/php-fpm.conf)
               ├─24652 php-fpm: pool www
               ├─24653 php-fpm: pool www
               ├─24654 php-fpm: pool www
               ├─24655 php-fpm: pool www
               └─24656 php-fpm: pool www
    
    

    phpinfo()에서 php가 움직이고 있는지 확인



    phpinfo를 호출하는 파일을 만들고 nginx 홈 디렉토리 ( /usr/share/nginx/html )에 넣습니다.
    $sudo vi info.php
    <?php phpinfo(); ?>
    

    브라우저에서 액세스하고 다음 화면이 표시되면 nginx에서 php가 정상적으로 실행되고 있습니다.


    이것으로 nginx와 PHP7.4의 연계 설정이 완료되었습니다.

    좋은 웹페이지 즐겨찾기