LAMP 및 LEMP 배포 가이드
이 가이드는 Debian 시스템에서 LAMP 및 LEMP 웹 서버를 설치하고 구성하는 방법을 상세히 설명합니다. 이 두 기술 스택은 모두 오랜 시간 동안 검증된 매우 성숙한 웹 호스팅 솔루션입니다.
LAMP와 LEMP란 무엇인가요?
- LAMP는 Linux / Apache / MySQL / PHP를 의미합니다.
- LEMP는 Linux / Engine-X (Nginx) / MySQL / PHP를 의미합니다.
이 둘의 유일한 차이는 사용하는 웹 서버 소프트웨어입니다: Apache는 기능이 포괄적이고 구성 생태계가 성숙했습니다. Nginx는 가볍고 고성능이며, 특히 높은 동시 접속 처리와 정적 파일 제공에 뛰어납니다.
사전 요구사항
- Debian 13 (Trixie)이 설치된 서버.
sudo권한을 가진 non-root 사용자.
LAMP (Apache) 배포
단계 1: 패키지 목록 업데이트
먼저, 시스템의 패키지 목록이 최신 상태인지 확인합니다.
sudo apt update
sudo apt upgrade단계 2: Apache 설치
Apache 웹 서버를 설치합니다.
sudo apt install apache2설치가 완료되면, 브라우저에서 서버의 IP 주소(http://서버IP주소)를 방문하여 Apache가 실행 중인지 확인할 수 있습니다. Apache의 기본 환영 페이지가 보이면 설치가 성공한 것입니다.
단계 3: MariaDB (MySQL) 설치
MariaDB는 MySQL의 커뮤니티 주도, 완전 호환되는 포크(fork)이며, Debian의 기본 구현체입니다.
sudo apt install mariadb-server설치 후, 보안 스크립트를 실행하여 안전하지 않은 기본 설정을 제거하는 것이 좋습니다.
sudo mysql_secure_installation메시지에 따라 root 비밀번호를 설정하고 일련의 보안 질문에 답합니다.
단계 4: PHP 설치
PHP와 Apache 및 MySQL과 통신하는 데 필요한 모듈을 설치합니다.
sudo apt install php libapache2-mod-php php-mysqlphp: PHP 코어 패키지.libapache2-mod-php: Apache가 PHP 파일을 처리할 수 있게 합니다.php-mysql: PHP가 MySQL/MariaDB 데이터베이스에 연결할 수 있게 합니다.
단계 5: PHP 테스트
Apache가 PHP 파일을 올바르게 처리하는지 확인하기 위해 간단한 PHP 파일을 생성합니다.
sudo nano /var/www/html/info.php편집기에 다음 내용을 붙여넣습니다:
<?php
phpinfo();
?>파일을 저장하고 닫습니다. 이제 브라우저에서 http://서버IP주소/info.php를 방문합니다. 상세한 PHP 정보가 포함된 페이지가 보이면 LAMP 스택이 성공적으로 배포된 것입니다!
중요: 보안상의 이유로, 테스트가 완료되면 이 파일을 반드시 삭제하세요.
sudo rm /var/www/html/info.phpLEMP (Nginx) 배포
Nginx를 선호한다면 다음 단계를 따르세요.
단계 1: Nginx 설치
sudo apt install nginx마찬가지로, 서버 IP(http://서버IP주소)를 방문하여 Nginx 환영 페이지가 보이면 설치가 성공한 것입니다.
단계 2: MariaDB 설치
이 단계는 LAMP 설치와 완전히 동일합니다. 이미 설치되어 있다면 반복할 필요가 없습니다.
sudo apt install mariadb-server
sudo mysql_secure_installation단계 3: PHP-FPM 설치
Nginx는 Apache처럼 내장된 PHP 처리 모듈이 없습니다. PHP 요청을 처리하기 위해 외부 프로그램이 필요하며, 이것이 PHP-FPM (FastCGI Process Manager)입니다.
sudo apt install php-fpm php-mysql단계 4: Nginx 구성
이것이 LEMP 배포에서 가장 중요한 단계입니다. Nginx의 서버 블록 구성 파일을 편집하여 .php 파일 요청을 PHP-FPM에 전달하는 방법을 알려줘야 합니다.
기본 서버 블록 구성 파일을 엽니다:
sudo nano /etc/nginx/sites-available/default파일을 아래와 같이 수정해야 합니다. index.php와 location ~ \.php$ 블록을 추가하는 것에 주의하세요.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.php; # index.php 추가
server_name _;
location / {
try_files $uri $uri/ =404;
}
# 주석을 해제하거나 추가해야 하는 핵심 부분
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# 참고: 경로는 PHP 버전에 따라 다를 수 있습니다.
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
}파일을 저장하고 닫습니다. 그런 다음, Nginx 구성에 구문 오류가 없는지 테스트합니다.
sudo nginx -tsyntax is ok와 test is successful이 표시되면 변경 사항을 적용하기 위해 Nginx를 안전하게 재시작할 수 있습니다.
sudo systemctl restart nginx단계 5: PHP 테스트
이 단계는 LAMP 테스트와 유사합니다. info.php 파일을 생성합니다.
sudo nano /var/www/html/info.php<?php
phpinfo();
?>이제 http://서버IP주소/info.php를 방문합니다. PHP 정보 페이지가 보이면 LEMP 스택이 성공적으로 배포된 것입니다!
마찬가지로, 테스트 후 이 파일을 반드시 삭제하세요.
sudo rm /var/www/html/info.php다음 단계
이제 기능이 완비된 웹 서버 환경을 갖추었습니다. 다음으로 고려할 수 있는 사항은 다음과 같습니다:
- 웹사이트에 대한 가상 호스트(Virtual Hosts) 구성.
- Let's Encrypt를 사용하여 웹사이트에 HTTPS 활성화.
- 사용자 애플리케이션 배포 또는 WordPress와 같은 CMS 설치.