Ubuntu 16.04 LTS에 Nginx MySQL PHP(LEMP 스택)를 설치하는 방법

Ubuntu 16.04 LTS에 Nginx MySQL PHP(LEMP 스택)를 설치하는 방법

2022-10-18 last update

6 minutes reading LEMP on Ubuntu 16.04 lemp webserver Ubuntu 16.04
Ubuntu 16.04 LTS에 Nginx MySQL PHP(LEMP 스택)를 설치합니다. LEMP는 PHP 프로그래밍 언어와 MySQL 데이터베이스로 개발된 웹사이트를 위한 인기 있는 웹 호스팅 환경입니다. Linux는 운영 체제이고 Nginx는 인기 있는 웹 서버이며 MySQL은 데이터 저장에 사용되는 관계형 데이터베이스 관리 시스템입니다. 이 튜토리얼은 Ubuntu 16.04 LTS 시스템에서 LEMP 스택을 설정하는 데 도움이 될 것입니다.

1단계 – PHP 설치

PHP 7은 Ubuntu 16.04 리포지토리에서 사용 가능한 기본 패키지입니다. 다음 명령을 사용하여 apt 캐시를 업데이트하고 시스템에 PHP 패키지를 설치하기만 하면 됩니다.
$ sudo apt update
$ sudo apt install php php-fpm
다음 명령을 사용하여 설치된 PHP 버전을 확인하십시오.
[email protected]:~$ php -v

PHP 7.0.4-7ubuntu2 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

2단계 – NGINX 설치

먼저 시스템에 Nginx 웹 서버를 설치합니다. 다음 명령을 사용하여 Ubuntu 16.04 LTS 서버에 Nginx 웹 서버를 설치합니다.
$ sudo apt install nginx

3단계 – MySQL 설치

마지막으로 MySQL 데이터베이스용 mysql-server 패키지를 설치합니다. 또한 php를 사용하여 MySQL 지원을 사용하려면 php-mysql 패키지를 설치하십시오. 다음 명령을 사용하여 설치하십시오.
$ sudo apt install mysql-server php-mysql
설치 프로그램이 루트 암호를 묻는 메시지를 표시합니다. 이 암호는 MySQL 루트 사용자에게 적합합니다. MySQL을 설치한 후 MySQL 서버의 초기 설정을 위해 다음 명령을 실행합니다. 당신은 그 스크립트가 패스워드 검증 정책 등과 같은 이전 mysql 버전보다 더 많은 설정에 대해 프롬프트할 것입니다.
$ sudo mysql_secure_installation

4단계 - PHP-FPM 구성

PHP-FPM(FastCGI Process Manager)은 몇 가지 추가 기능이 있는 대체 PHP FastCGI 구현입니다.
$ sudo nano /etc/php/7.0/fpm/php.ini
cgi.fix_pathinfo=1 행의 주석을 제거하고 값을 0으로 설정합니다.
cgi.fix_pathinfo=0
이제/etc/php/7.0/fpm/pool.d/www.conf 구성 파일에서 listen 매개변수를 설정합니다. 여기에서 php5-fpm 소켓을 사용하여 모든 포트에서 php5-fpm 서버를 서비스로 작동하거나 시작할 수 있습니다. 서비스로 활용하도록 하겠습니다.
$ sudo nano /etc/php/7.0/fpm/pool.d/www.conf
이제 설정 파일을 아래와 같이 변경합니다. 소켓 파일로 수신 대기하고 서비스로 활성화
; listen = /run/php/php7.0-fpm.sock
listen = 127.0.0.1:9000

5단계 - Nginx VirtualHost 구성

마지막으로 Nginx 가상 호스트 구성을 수행합니다. 이 예에서는 기본 구성 파일을 편집하고 있습니다.
$ sudo nano /etc/nginx/sites-enabled/default.conf
다음과 같이 변경합니다.
server {
        listen   80;

        root /var/www;
        index index.php index.html index.htm;
        server_name  example.com www.example.com;

        location / {
                try_files $uri $uri/ /index.html;
        }

        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
              root /usr/share/nginx/www;
        }

        location ~ .php$ {
                try_files $uri =404;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}
구성된 모든 VirtualHost에서 동일한 변경을 수행해야 합니다.

6단계 – 서비스 다시 시작

시스템에 모든 서비스를 설치한 후 필요한 모든 서비스를 시작하십시오.
$ sudo systemctl restart nginx.service
$ sudo systemctl restart php7.0-fpm.service

7단계 – 방화벽에서 액세스 열기

iptables를 사용하는 경우 다음 명령을 사용하여 웹 서버의 공개 액세스를 위해 포트 80을 엽니다.

iptables 사용자:

$ sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT

UFW 사용자:

$ sudo ufw allow 80/tcp

8단계 – 테스트 설정

모든 설정을 마친 후. 다음 내용으로 info.php 파일 웹사이트 문서 루트를 만들어 봅시다.
<?php
 phpinfo();
?>
이제 웹 브라우저에서 이 파일에 액세스합니다. 서버에 있는 PHP의 모든 세부 정보와 함께 아래와 같은 화면을 볼 수 있습니다. 축하합니다! Ubuntu 16.04 LTS 서버에 LEMP 스택을 성공적으로 구성했습니다.