Ubuntu 22.04에서 Nginx + PHP 8.2 + MariaDB로 웹 서버를 구축하는 방법을 단계별로 설명해드리겠습니다. 참고로 이 글은 제 워드프레스 첫 글입니다.
웹 서버를 선택할 때 대표적인 두 가지 옵션으로 Apache2와 Nginx가 있어요. 둘 다 강력하지만, 특징과 사용 목적이 조금 달라서 상황에 따라 선택하면 됩니다.
간단 비교:
- Apache2: 설정 쉬움, 유연성 높음, 소규모 사이트에 적합.
- Nginx: 속도 빠름, 리소스 효율적, 대규모 트래픽에 강함.
목차
- 서버 환경 설정 및 패키지 업데이트
- Nginx 웹 서버 설치
- PHP 8.2 설치 및 설정
- MariaDB 데이터베이스 설치 및 설정
- 스왑 메모리 설정 (RAM 부족 시)
- 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 최적화에 대해서 작성하도록 하곘습니다. 작성 완료 후 아래에 링크를 걸어놓을께요.