Home Knowledge base Skyline Cloud Ubuntu 24.04에 LEMP 스택(Nginx, MySQL, PHP) 설치하는 방법 KNOWLEDGE BASE

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

Ubuntu 24.04 LTS에 프로덕션 수준의 LEMP 스택(Nginx, MySQL, PHP-FPM)을 설치하고 구성하는 명확한 단계별 가이드입니다. 검증된 서버 블록과 PHP 테스트 페이지를 포함합니다.

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

Ubuntu 24.04 LTS에 프로덕션 수준의 LEMP 스택(Nginx, MySQL, PHP-FPM)을 설치하고 구성하는 명확한 단계별 가이드입니다. 검증된 서버 블록과 PHP 테스트 페이지를 함께 제공합니다.

소개

LEMP 스택은 동적 웹 애플리케이션을 제공하는 데 사용되는 오픈 소스 소프트웨어 모음입니다. 이 이름은 Linux, ENginx("엔진-엑스"로 발음), MySQL, PHP의 머리글자를 딴 약어입니다. WordPress, Laravel, Magento 사이트를 비롯해 웹의 상당 부분을 구동하고 있습니다.

이 튜토리얼에서는 Ubuntu 24.04 LTS에 완전한 LEMP 스택을 설치하고 구성합니다. 웹 서버로는 Nginx를, 데이터베이스로는 MySQL을, 동적 콘텐츠 처리를 위해서는 PHP-FPM을 사용합니다. 모든 단계를 마치고 나면 PHP 페이지를 제공하는 동작하는 서버 블록을 갖추게 됩니다.

이 가이드는 모든 Ubuntu 24.04 서버에서 동작합니다. 사우디아라비아 왕국 내에 위치한 Skyline Cloud VPS 또는 클라우드 서버에서 실행하는 경우, 왕국 내 데이터 레지던시, PDPL/NCA 규정 준수, 현지 아랍어 지원까지 추가로 제공받을 수 있습니다.

사전 준비 사항

시작하기 전에 다음이 준비되어 있어야 합니다.

  • sudo 권한을 가진 비루트(non-root) 사용자가 있는 Ubuntu 24.04 서버.
  • 기본 방화벽(UFW) — 아래에서 다룹니다.
  • 선택 사항으로, A 레코드를 통해 서버의 공인 IP를 가리키는 도메인 이름.

아직 서버가 없다면 Skyline Cloud에서 몇 분 만에 하나 만들 수 있습니다.

1단계 — 패키지 인덱스 업데이트

최신 버전을 설치할 수 있도록 항상 최신 패키지 인덱스로 시작하세요.

sudo apt update
sudo apt upgrade -y

2단계 — Nginx 설치

Nginx 웹 서버를 설치합니다.

sudo apt install nginx -y

UFW가 활성화되어 있다면 HTTP 및 HTTPS 트래픽을 허용합니다. Nginx Full 프로필은 80번과 443번 포트를 모두 엽니다.

sudo ufw allow 'Nginx Full'
sudo ufw status

Nginx가 실행 중인지 확인합니다.

systemctl status nginx

브라우저에서 http://your_server_ip에 접속해 보세요. 기본 Welcome to nginx! 페이지가 표시되어야 합니다.

3단계 — MySQL 설치

MySQL 데이터베이스 서버를 설치합니다.

sudo apt install mysql-server -y

MySQL은 자동으로 시작됩니다. 다음으로, 안전하지 않은 기본 설정을 제거하기 위해 보안 스크립트를 실행합니다.

sudo mysql_secure_installation

VALIDATE PASSWORD 구성 요소를 설정하고, 익명 사용자를 제거하며, 원격 root 로그인을 비활성화하고, 테스트 데이터베이스를 삭제하라는 안내가 표시됩니다. 이러한 보안 강화 단계에는 Y로 응답하세요.

새로 설치한 Ubuntu에서는 root MySQL 사용자가 auth_socket 플러그인으로 인증하므로, 셸에서 비밀번호 없이 접속할 수 있습니다.

sudo mysql

root를 사용하는 대신 전용 애플리케이션 사용자를 만드는 것이 모범 사례입니다. MySQL 프롬프트에서 다음을 실행합니다.

CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'a_strong_password';
CREATE DATABASE appdb;
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

4단계 — PHP 설치

Apache와 달리 Nginx에는 내장 PHP 프로세서가 없습니다. PHP-FPM(FastCGI Process Manager)과 MySQL 확장 모듈을 설치합니다.

sudo apt install php-fpm php-mysql -y

Ubuntu 24.04는 기본적으로 PHP 8.3을 제공합니다. 버전과 FPM 서비스 이름을 확인합니다.

php -v
systemctl status php8.3-fpm

소켓 경로 /run/php/php8.3-fpm.sock를 기억해 두세요. Nginx 구성에서 이 경로를 참조하게 됩니다.

5단계 — PHP-FPM을 사용하도록 Nginx 구성

사이트를 위한 웹 루트와 서버 블록을 만듭니다. your_domain을 본인의 도메인 또는 서버 IP로 바꾸세요.

sudo mkdir -p /var/www/your_domain
sudo chown -R $USER:$USER /var/www/your_domain

서버 블록 파일을 만듭니다.

sudo nano /etc/nginx/sites-available/your_domain

다음 구성을 추가합니다.

server {
    listen 80;
    server_name your_domain www.your_domain;
    root /var/www/your_domain;

    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

sites-enabled에 심볼릭 링크를 연결하여 사이트를 활성화한 다음, 충돌을 방지하기 위해 기본 사이트를 제거합니다.

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
sudo unlink /etc/nginx/sites-enabled/default

구문 오류가 없는지 구성을 테스트한 다음 다시 로드합니다.

sudo nginx -t
sudo systemctl reload nginx

6단계 — PHP 처리 테스트

웹 루트에 테스트용 PHP 파일을 만듭니다.

nano /var/www/your_domain/info.php

다음 내용을 추가합니다.

<?php
phpinfo();

브라우저에서 http://your_domain/info.php에 접속하세요. 상세한 PHP 정보 페이지가 표시되면 Nginx가 요청을 PHP-FPM으로 올바르게 전달하고 있음을 확인할 수 있습니다.

확인 후에는 즉시 파일을 삭제하세요. 이 파일은 공격자가 악용할 수 있는 서버 정보를 노출합니다.

sudo rm /var/www/your_domain/info.php

7단계 — HTTPS로 보안 강화(권장)

공개 사이트라면 트래픽을 HTTPS로 제공해야 합니다. 도메인이 서버를 가리키고 있다면 Certbot을 설치하고 무료 Let's Encrypt 인증서를 발급받으세요.

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain -d www.your_domain

Certbot은 서버 블록을 편집하고 인증서를 설치하며 자동 갱신을 설정합니다. systemctl status certbot.timer로 갱신 타이머를 확인할 수 있습니다. 기관 검증(OV) 또는 와일드카드 인증서가 필요한 비즈니스 사이트라면 Skyline의 관리형 SSL 옵션을 참고하세요.

서비스 요약

구성 요소 패키지 서비스 기본 포트 / 소켓
웹 서버 nginx nginx 80 / 443
데이터베이스 mysql-server mysql 3306 (localhost)
PHP 프로세서 php-fpm php8.3-fpm /run/php/php8.3-fpm.sock

마무리

이제 Ubuntu 24.04에서 동작하는 LEMP 스택을 갖추게 되었습니다. Nginx가 요청을 처리하고, PHP-FPM이 동적 코드를 처리하며, MySQL이 데이터를 저장하고, 그 전체가 UFW와 HTTPS로 보호됩니다. 여기서부터 WordPress, Laravel 앱, 또는 어떤 PHP 프로젝트든 /var/www/your_domain에 배포할 수 있습니다.

운영 체제를 직접 관리하고 싶지 않다면, 관리형 플랫폼이나 비즈니스 이메일 호스팅으로 그 작업을 덜어낼 수 있습니다. VPS 사양, 가격, 그리고 더 폭넓은 제품군을 살펴보려면 VPS & 클라우드 서버 허브를 방문하세요.

배포할 준비가 되셨나요? Skyline Cloud에서 왕국 내 클라우드 서버를 띄우고 몇 분 만에 LEMP 스택을 가동해 보세요.

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Skyline Cloud for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.