Ubuntu 22.04 + Nginx + PHP 8.2 서버 구축 + Mariadb

Ubuntu 22.04에서 Nginx + PHP 8.2 + MariaDB로 웹 서버를 구축하는 방법을 단계별로 설명해드리겠습니다. 참고로 이 글은 제 워드프레스 첫 글입니다.

웹 서버를 선택할 때 대표적인 두 가지 옵션으로 Apache2Nginx가 있어요. 둘 다 강력하지만, 특징과 사용 목적이 조금 달라서 상황에 따라 선택하면 됩니다.

간단 비교:

  • Apache2: 설정 쉬움, 유연성 높음, 소규모 사이트에 적합.
  • Nginx: 속도 빠름, 리소스 효율적, 대규모 트래픽에 강함.

 

목차

  1. 서버 환경 설정 및 패키지 업데이트
  2. Nginx 웹 서버 설치
  3. PHP 8.2 설치 및 설정
  4. MariaDB 데이터베이스 설치 및 설정
  5. 스왑 메모리 설정 (RAM 부족 시)
  6. Nginx + PHP + MariaDB 연동 및 테스트

🚀 1. 서버 환경 설정 및 패키지 업데이트

먼저 서버를 최신 상태로 유지하고 필요한 패키지를 업데이트합니다.

sudo apt update && sudo apt upgrade -y

기본적으로 필요한 유틸리티도 설치합니다.

sudo apt install -y curl unzip software-properties-common

다음은 Nginx 웹 서버를 설치하는 과정입니다!

🌐 2. Nginx 웹 서버 설치

Ubuntu 22.04에서 최신 Nginx를 설치하려면 다음 명령어를 사용하세요.

sudo apt install -y nginx

Nginx 서비스를 실행하고, 부팅 시 자동 실행되도록 설정합니다.

sudo systemctl start nginx
sudo systemctl enable nginx

방화벽을 설정하여 웹 트래픽을 허용합니다.

sudo ufw allow 'Nginx Full'

이제 서버 IP를 웹 브라우저에서 입력하면 Nginx 기본 페이지가 보입니다. 🎉

🐘 3. PHP 8.2 설치 및 설정

PHP 8.2를 설치하기 위해 먼저 PPA 저장소를 추가합니다.

sudo add-apt-repository ppa:ondrej/php -y
sudo apt update

PHP 8.2 및 필수 확장 모듈을 설치합니다.

sudo apt install -y php8.2 php8.2-fpm php8.2-mysql php8.2-cli php8.2-curl php8.2-mbstring php8.2-xml php8.2-zip php8.2-gd php8.2-bcmath

설치 완료 후 PHP 버전을 확인하세요.

php -v

🗄 4. MariaDB 데이터베이스 설치 및 보안 설정

MariaDB를 설치하려면 다음 명령어를 사용하세요.

sudo apt install -y mariadb-server mariadb-client

MariaDB 서비스를 실행하고, 부팅 시 자동 시작되도록 설정합니다.

sudo systemctl start mariadb
sudo systemctl enable mariadb

보안 강화를 위해 설정 마법사를 실행합니다.

sudo mysql_secure_installation

새로운 데이터베이스와 유저를 생성하는 방법:

sudo mysql -u root -p
CREATE DATABASE mydb;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

💾 5. RAM 부족 시 스왑(Swap) 메모리 설정

RAM이 부족할 경우, 스왑 메모리를 추가하여 서버 성능을 개선할 수 있습니다.

아래 명령어를 실행하여 자동으로 스왑 파일을 추가합니다.

wget -q https://raw.githubusercontent.com/laelbe/linux-simple-scripts/main/_server_tools/add_swapfile -O /root/add_swapfile
bash /root/add_swapfile 1

설정이 완료된 후 스왑 메모리 상태를 확인합니다.

free -m

🔄 6. Nginx + PHP + MariaDB 연동 및 테스트

이제 Nginx 설정을 수정하여 PHP와 연동합니다.

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

아래 내용을 찾아 수정하세요.

server {
    listen 80;
    server_name your_domain_or_ip;

    root /var/www/html;
    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.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

변경 후 Nginx를 다시 시작하세요.

sudo systemctl restart nginx

PHP 테스트 페이지를 생성합니다.

sudo nano /var/www/html/info.php
<?php
phpinfo();
?>

웹 브라우저에서 http://서버IP/info.php로 접속하여 PHP 정보가 나오면 정상 작동합니다. 🎉

테스트가 끝나면 보안을 위해 해당 파일을 삭제하세요.

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

🎯 마무리

이제 Ubuntu 22.04에서 Nginx + PHP 8.2 + MariaDB 서버가 완벽하게 구축되었습니다! 🚀

다음에는 Mysql, php, nginx 최적화에 대해서 작성하도록 하곘습니다. 작성 완료  후 아래에 링크를 걸어놓을께요. 


Leave a Comment