서버 설치 · 6 min read · Oct 12, 2025

Ubuntu 20.04 LTS에 Nginx, PHP 및 MySQL (LEMP 스택) 설치하는 방법

Nginx(발음: “엔진 엑스”)는 무료 오픈 소스 고성능 HTTP 서버입니다. Nginx는 높은 속도, 안정성, 풍부한 기능 세트, 간단한 구성 및 낮은 자원 소비로 유명합니다. 이 튜토리얼에서는 PHP 7.4 지원( PHP-FPM을 통해) 및 MySQL 지원과 함께 Ubuntu 20.04 LTS 서버에 Nginx를 설치하는 방법을 보여줍니다(LEMP = Linux + Nginx(발음: “엔진 엑스”) + MySQL + PHP).

전제 조건

  • Ubuntu 20.04 LTS 서버
  • 루트 권한

우리가 할 일

  • Nginx 설치
  • MySQL 설치
  • PHP-FPM 설치
  • Nginx 및 PHP-FPM 구성
  • PhpMyAdmin 설치
  • PhpMyAdmin 구성
  • 테스트

1단계 - Nginx 설치

Nginx 또는 엔진 엑스는 낮은 메모리 소비로 고성능 HTTP 및 프록시 서버입니다. Netflix, Pinterest, CloudFlare, GitHub와 같은 대부분의 대규모 웹사이트는 Nginx를 사용하고 있습니다.

이 단계에서는 Ubuntu 리포지토리에서 Nginx 웹 서버를 설치합니다.

Ubuntu 시스템의 모든 리포지토리를 업데이트하고 아래의 apt 명령을 사용하여 Nginx 패키지를 설치합니다.

sudo apt update  
sudo apt install nginx

설치가 완료되면 Nginx 서비스를 시작하고 시스템 부팅 시마다 자동으로 시작되도록 설정합니다.

systemctl start nginx  
systemctl enable nginx

이제 Nginx 웹 서버 설치가 완료되었습니다. 다음 명령을 사용하여 Nginx 서비스를 확인합니다.

systemctl status nginx

아래는 얻을 수 있는 결과입니다.

Nginx 설치

또한 Ubuntu 시스템에서 HTTP 포트를 확인하고 Nginx 서비스가 사용 중인지 확인합니다.

ss -plt4

아래는 얻을 수 있는 결과입니다.

결과적으로 HTTP 프로토콜이 Nginx 서비스에 의해 사용됩니다.

다음으로 UFW 방화벽을 사용하여 Nginx 설치를 보호합니다.

아래 명령을 사용하여 UFW 방화벽 구성에 HTTP 및 HTTPS 프로토콜을 추가합니다.

for fw in ssh http https  
do  
ufw allow $fw  
done

이제 UFW 방화벽을 활성화하고 상태를 확인합니다.

ufw enable  
ufw status numbered

그리고 HTTP 및 HTTPS 프로토콜이 UFW 방화벽 구성에 추가되었습니다.

HTTP 및 HTTPS 포트 UFW 방화벽 열기

2단계 - MySQL 설치

MySQL은 Oracle Corporation에서 만든 가장 인기 있는 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다. LEMP 스택의 중앙 구성 요소이며, Ubuntu 리포지토리에서 최신 MySQL 버전을 설치합니다.

아래의 apt 명령을 사용하여 MySQL을 설치합니다.

sudo apt install mysql-server mysql-client

MySQL 설치가 완료되면 MySQL 서비스를 시작하고 시스템 부팅 시마다 자동으로 시작되도록 설정합니다.

systemctl start mysql  
systemctl enable mysql

이제 아래 명령을 사용하여 MySQL 서비스를 확인합니다.

systemctl status mysql

MySQL 서비스가 실행 중입니다.

MySQL 서버 설치

다음으로 MySQL 서버의 루트 비밀번호를 설정합니다.

아래의 ‘mysql_secure_installation’ 명령을 실행합니다.

mysql_secure_installation

이제 다음 구성에 대해 질문을 받게 되며, MySQL 루트 사용자에 대한 강력한 비밀번호를 입력해야 합니다.

Press y|Y for Yes, any other key for No: Press Enter  
  
New password:   
Re-enter new password:   
  
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y  
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y  
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y  
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

그리고 MySQL 루트 비밀번호가 설정되었습니다.

결과적으로 Ubuntu 20.04에서 MySQL 데이터베이스의 설치 및 구성이 완료되었습니다.

3단계 - PHP-FPM 설치 및 구성

PHP-FPM 또는 FastCGI 프로세스 관리자는 추가 기능과 속도 향상을 제공하는 이전 PHP FastCGI의 대안입니다. PHP 프로그래밍 언어를 기반으로 하는 소규모에서 대규모 사이트에 적합합니다.

이 단계에서는 PHPMyAdmin에서 요구하는 몇 가지 추가 확장과 함께 기본 PHP7.4-FPM을 설치합니다.

아래 명령을 사용하여 PHP-FPM을 설치합니다.

sudo apt install php-fpm php-cli php-curl php-mysql php-curl php-gd php-mbstring php-pear -y

PHP-FPM 설치가 완료되면 ‘/etc/php/7.4/fpm’ 디렉토리로 이동하여 vim 편집기를 사용하여 php.ini 구성을 편집합니다.

cd /etc/php/7.4/fpm/  
vim php.ini

다음 구성을 주석 해제하고 값을 ‘0’으로 변경합니다.

cgi.fix_pathinfo = 0

저장하고 닫습니다.

이제 PHP7.4-FPM 서비스를 시작하고 시스템 부팅 시마다 자동으로 시작되도록 설정합니다.

systemctl start php7.4-fpm  
systemctl enable php7.4-fpm

PHP-FPM 서비스가 실행 중입니다. 다음 명령을 사용하여 확인합니다.

systemctl status php7.4-fpm

아래는 얻을 수 있는 결과입니다.

php-fpm 설치

기본적으로 PHP-FPM은 sock 파일 아래에서 실행되고 있습니다. 아래의 ss 명령을 사용하여 확인합니다.

ss -pl | grep php

아래는 얻을 수 있는 응답입니다.

u_str   LISTEN   0     511   /run/php/php7.4-fpm.sock 67702   * 0

그리고 Ubuntu 20.04에서 PHP-FPM 7.4의 설치가 완료되었습니다.

4단계 - Nginx 및 PHP-FPM 구성

이 단계에서는 Nginx 웹 서버와 PHP-FPM을 구성합니다.

‘/etc/nginx’ 구성 디렉토리로 이동하여 vim 또는 nano를 사용하여 ‘nginx.conf’ 파일을 편집합니다.

cd /etc/nginx/  
vim nginx.conf

Nginx 버전을 숨기기 위해 다음 줄의 주석을 해제합니다.

server_tokens off;

저장하고 닫습니다.

다음으로 ‘sites-available’ 디렉토리에서 ‘default’ 가상 호스트 구성을 편집합니다.

vim sites-available/default

아래에 표시된 PHP 줄의 주석을 해제하고 sock 파일 줄을 변경합니다.

        location ~ \.php$ {  
                include snippets/fastcgi-php.conf;  
        #  
        # # With php-fpm (or other unix sockets):  
                fastcgi_pass unix:/run/php/php7.4-fpm.sock;  
        # # With php-cgi (or other tcp sockets):  
        # fastcgi_pass 127.2.0.1:9000;  
        }

저장하고 닫습니다.

Nginx 구성을 테스트하고 오류가 없는지 확인한 후 서비스를 재시작합니다.

nginx -t  
systemctl restart nginx

결과적으로 Nginx 및 PHP-FPM 구성이 완료되었습니다.

Nginx 및 PHP-FPM 구성

5단계 - phpMyAdmin 설치

PhpMyAdmin은 웹 브라우저에서 MySQL 또는 MariaDB 데이터베이스를 관리하기 위한 PHP 기반 애플리케이션입니다. 이 단계에서는 LEMP(리눅스, Nginx, MySQL 및 PHP-FPM) 스택 아래에서 PHPMyAdmin을 설치하고 구성합니다.

아래의 apt 명령을 사용하여 PHPMyAdmin을 설치합니다.

sudo apt install phpmyadmin

설치 중에 phpmyadmin에 대한 웹 서버 구성을 묻는 질문이 있습니다.

‘none’ 옵션을 선택하고 커서를 ‘OK‘로 이동합니다.

phpMyAdmin용 웹 서버 설정

phpmyadmin 데이터베이스 및 사용자 구성에 대해 ‘‘를 선택합니다.

그리고 ‘Hakaselabs001@#’와 같은 새로운 ‘강력한‘ PHPMyAdmin 관리자를 입력합니다.

phpMyAdmin 데이터베이스 및 사용자 비밀번호 설정

‘Hakaselabs001@#’ 비밀번호를 반복합니다.

phpMyAdmin용 웹 서버 설정

그리고 Ubuntu 20.04에서 phpMyAdmin 설치가 완료되었습니다.

6단계 - Nginx 및 MySQL과 함께 phpMyAdmin 구성

phpmyadmin 설치 후, Nginx 웹 서버에서 실행되도록 phpmyadmin을 구성하고 MySQL 사용자 phpmyadmin 액세스를 구성해야 합니다. Nginx 웹 서버에서 PHPMyAdmin을 실행하려면 가상 호스트 구성 파일에 구성을 추가해야 합니다.

Nginx 웹 서버와 함께 phpMyAdmin 구성

이제 ‘/etc/nginx’ 구성 디렉토리로 이동하여 기본 가상 호스트 파일을 편집합니다.

cd /etc/nginx/sites-available/  
vim default

‘서버 {…}’ 괄호 안에 PHPMyAdmin을 위한 다음 Nginx 구성을 붙여넣습니다.

location /phpmyadmin {  
    root /usr/share/;  
    index index.php;  
    try_files $uri $uri/ =404;  

location ~ ^/phpmyadmin/(doc|sql|setup)/ {  
    deny all;  
    }  

location ~ /phpmyadmin/(.+\.php)$ {  
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;  
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
    include fastcgi_params;  
    include snippets/fastcgi-php.conf;  
    }  
}

저장하고 종료합니다.

Nginx 구성을 테스트하고 오류가 없는지 확인한 후 Nginx 서비스를 재시작합니다.

nginx -t  
systemctl reload nginx

그리고 phpMyAdmin 설치를 위한 Nginx 구성을 추가했습니다. ‘http://server-ip/phpmyadmin’ 경로 URL을 통해 접근할 수 있습니다.

phpMyAdmin을 위한 Nginx 구성

phpMyAdmin 사용자에게 데이터베이스 액세스 허용

이 튜토리얼에서는 PHPMyAdmin에 비루트 MySQL 사용자를 사용할 것입니다. 새로운 사용자를 생성하고 서버 내 모든 데이터베이스에 대한 모든 권한을 부여합니다.

아래 명령을 사용하여 MySQL 셸에 로그인합니다.

mysql -u root -p

이제 새로운 MySQL 사용자 ‘hakase’를 생성하고 모든 데이터베이스 권한을 부여합니다.

create user hakase@'localhost' identified by 'Hakaselabs001@#';  
grant all privileges on *.* to hakase@'localhost';  
flush privileges;

이제 ‘exit’를 입력하여 MySQL 셸에서 로그아웃합니다.

exit

결과적으로 phpMyAdmin을 위한 새로운 MySQL 사용자를 생성했습니다.

7단계 - 테스트

이 단계에서는 LEMP 스택 및 phpMyAdmin 구성을 테스트합니다.

PHP 파일 테스트

‘/var/www/html’ 디렉토리로 이동하여 vim 편집기를 사용하여 새로운 스크립트 파일 ‘info.php’를 생성합니다.

cd /var/www/html  
vim info.php

다음 스크립트를 붙여넣습니다.

저장하고 닫습니다.

다음으로 웹 브라우저를 열고 서버 IP 주소 뒤에 ‘info.php’ 스크립트의 경로를 입력합니다.

http://server-ip/info.php

아래는 얻을 수 있는 결과입니다.

LEMP 스택과 함께 phpinfo

결과적으로 Ubuntu 20.04 서버에서 PHP-FPM 7.4의 자세한 구성이 완료되었으며, PHP 스크립트가 LEMP 스택 서버에서 실행되고 있습니다.

phpMyAdmin 테스트

phpMyAdmin 설치를 테스트하기 위해 서버 IP 주소 뒤에 URL에서 ‘phpmyadmin’ 경로를 입력합니다.

http://server-ip/phpmyadmin/

그리고 phpMyAdmin 로그인 페이지를 얻을 수 있습니다.

phpMyAdmin 로그인 페이지

phpMyAdmin에 로그인하려면 위에서 생성한 사용자를 입력합니다. 사용자는 ‘hakase’이며 비밀번호는 ‘Hakaselabs001@#’입니다. 그런 다음 ‘Go‘ 버튼을 클릭합니다.

그리고 아래와 같은 phpMyAdmin 대시보드를 얻을 수 있습니다.

phpMyAdmin 대시보드

phpMyAdmin이 LEMP 스택 환경에서 작동하고 있습니다.

결과적으로 Ubuntu 20.04에서 LEMP 스택의 설치 및 구성이 성공적으로 완료되었습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.