서버 설치 · 8 min read · Sep 22, 2025

우분투 22.04에 MariaDB 및 PHP-FPM과 함께 Lighttpd 설치하는 방법

LLMP 스택(Linux, Lighttpd, MariaDB, PHP-FPM)은 웹 애플리케이션을 제공하기 위한 소프트웨어 스택입니다. LLMP 스택의 각 구성 요소는 무료이며 오픈 소스이며 여러 운영 체제에 설치할 수 있습니다. LLMP 스택은 정적 HTML 사이트와 WordPress, Drupal, Joomla와 같은 PHP 애플리케이션을 제공할 수 있습니다.

이 튜토리얼에서는 최신 우분투 22.04 시스템에 LLMP 스택(Linux, Lighttpd, MariaDB, PHP-FPM)을 설치하고 구성하는 방법을 보여줍니다. 이 튜토리얼에는 Lighttpd 웹 서버에서 가상 호스트를 설정하고 SSL/HTTPS를 활성화하는 방법에 대한 지침이 포함되어 있습니다.

전제 조건

이 튜토리얼을 위해 다음 전제 조건이 필요합니다:

  • 우분투 22.04 서버.
  • 루트/관리자 권한이 있는 비루트 사용자

Lighttpd 웹 서버 설치

Lighttpd 또는 Lighty는 c10k 문제 “단일 서버에서 10,000개의 연결을 동시에 처리하는 방법”의 개념 증명으로 만들어진 고성능 웹 서버입니다.

Lighttpd는 속도, 보안, 경량 및 유연성을 위해 설계되었습니다. CPU 및 메모리 사용량이 최소화되어 있으며 FastCGI, CGI, 인증, 압축, URL 재작성 등과 같은 고급 기능을 제공합니다.

패키지를 설치하기 전에 아래의 apt 명령을 실행하여 우분투 리포지토리의 패키지 인덱스를 업데이트하고 새로 고칩니다.

sudo apt update

이제 다음 명령을 사용하여 Lighttpd 웹 서버를 설치합니다.

sudo apt install lighttpd

설치를 확인하려면 Y를 입력하고 ENTER를 눌러 계속합니다. 이제 Lighttpd 설치가 시작됩니다.

install lighttpd

Lighttpd 설치가 완료되면 아래 명령을 실행하여 Lighttpd 서비스를 시작하고 활성화합니다.

sudo systemctl start lighttpd  
sudo systemctl enable lighttpd

아래 명령을 사용하여 Lighttpd 서비스를 확인하고 검증합니다. Lighttpd 서비스가 실행 중이고 활성화되어 있어야 하며, 이는 시스템 부팅 시 자동으로 실행됨을 의미합니다.

sudo systemctl status lighttpd

start lighttpd

우분투 머신에서 UFW 방화벽이 실행 중인 경우 Lighttpd 웹 서버로의 수신 트래픽에 대한 방화벽 규칙을 추가해야 합니다.

아래의 ufw 명령을 실행하여 UFW 방화벽에 Lighttpd 규칙을 추가한 다음, 아래와 같이 UFW 규칙 목록을 확인하고 검증할 수 있습니다.

sudo ufw allow "Lighttpd Full"  
sudo ufw status

UFW 방화벽에 “Lighttpd Full” 애플리케이션 프로파일이 추가된 것을 확인할 수 있으며, 이는 모든 수신 HTTP 및 HTTPS 포트가 허용됨을 의미합니다.

setup ufw firewall

이제 아래 명령을 사용하여 “ /var/www/html “ 디렉토리를 확인합니다. index.html 파일이 보이지 않으면 아래 명령을 사용하여 생성할 수 있습니다.

ls -lah /var/www/html  
echo "

Lighttpd 웹 서버에 오신 것을 환영합니다

" > /var/www/html/index.html

마지막으로 웹 브라우저를 열고 서버 IP 주소(예: http://192.168.5.28/)를 방문하면 index.html 페이지가 표시됩니다.

MariaDB 서버 설치

Lighttpd 웹 서버 설치 후, 이제 우분투 시스템에 MariaDB 서버를 설치할 차례입니다. 여기에는 MariaDB 패키지에서 제공하는 “ mysql_secure_installation “ 도구를 사용하여 MariaDB 서버를 안전하게 배포하는 방법도 포함됩니다.

다음 apt 명령을 실행하여 MariaDB 서버를 설치합니다. 현재 상태에서 기본 우분투 리포지토리는 MariaDB v10.6을 제공합니다.

sudo apt install mariadb-server

이제 설치를 확인하려면 Y를 입력하고 ENTER를 누릅니다. MariaDB 설치가 시작됩니다.

install mariadb

MariaDB 설치가 완료되면 아래의 systemctl 명령을 실행하여 MariaDB 서비스를 시작하고 활성화합니다.

sudo systemctl start mariadb  
sudo systemctl enable mariadb

다음 명령을 사용하여 MariaDB 서비스를 확인하고 검증합니다. MariaDB 서비스가 실행 중이어야 합니다.

sudo systemctl status mariadb

다음으로, “mysql_secure_installation” 도구를 사용하여 MariaDB 배포를 설정합니다. 이 도구는 MariaDB 서버의 루트 비밀번호를 설정하고 원격 루트 로그인을 비활성화하며 기본 데이터베이스 및 익명 사용자 액세스를 정리하는 데 도움이 됩니다.

이제 아래와 같이 “mysql_secure_installation” 명령을 실행합니다.

sudo mysql_secure_installation

기본 MariaDB 설치는 루트 비밀번호 없이 제공됩니다. 계속하려면 ENTER를 누릅니다.

mysql_secure_installation

이제 n을 입력하여 인증 방법을 기본값으로 유지합니다(마리아DB 루트 사용자에 대해).

no unix_socket auth for root

Y를 입력하여 MariaDB 서버의 루트 비밀번호를 설정합니다. 배포를 위해 강력한 비밀번호를 사용하는 것이 좋습니다.

setup root password

이제 Y를 입력하여 MariaDB 루트 사용자의 원격 로그인을 비활성화합니다. 클러스터 환경이 아닌 경우 MariaDB 루트 사용자의 원격 로그인을 비활성화하는 것이 항상 권장됩니다.

이제 Y를 다시 입력하여 MariaDB 설치에서 기본 익명 사용자를 제거합니다.

remove anonymous user

Y를 다시 입력하여 익명 사용자가 접근할 수 있는 기본 데이터베이스 테스트를 제거합니다.

remove database test

마지막으로, Y를 다시 입력하여 MariaDB 서버의 모든 테이블 권한을 다시 로드하고 새로운 변경 사항을 적용합니다.

reload tables privileges

PHP-FPM 8.1 설치

이제 Lighttpd 웹 서버와 MariaDB 데이터베이스 서버를 설치했습니다. 이제 우분투 시스템에 PHP-FPM을 설치할 것입니다. 현재 상태에서 우분투 리포지토리는 최신 버전의 PHP 8.1을 제공합니다.

아래의 apt 명령을 실행하여 우분투 시스템에 PHP-FPM 8.1을 설치합니다.

sudo apt install php-fpm php-common php-mysql php-cli php-curl php-xml

설치를 확인하려면 Y를 입력하고 ENTER를 누릅니다. 이제 설치가 시작됩니다.

install php-fpm

PHP-FPM 패키지 설치가 완료되면 아래 명령을 실행하여 PHP-FPM 서비스를 시작하고 활성화합니다.

sudo systemctl start php8.1-fpm  
sudo systemctl enable php8.1-fpm

아래 명령을 사용하여 PHP-FPM 서비스를 확인하고 검증합니다. PHP-FPM 서비스가 실행 중이어야 합니다.

sudo systemctl status php8.1-fpm

start php-fpm

ss “ 명령을 사용하여 PHP-FPM 서비스를 확인할 수도 있습니다. 기본 PHP-FPM 프로세스는 소켓 파일 아래에서 실행되며, 아래 명령을 사용하여 PHP-FPM 프로세스를 확인할 수 있습니다.

ss -pl | grep php

PHP-FPM 서비스가 소켓 파일 “ /run/php/php8.1-fpm.sock “에서 실행되고 있어야 합니다.

PHP-FPM과 Lighttpd 구성

LLMP 스택 패키지 설치가 완료되었지만, Lighttpd 웹 서버가 PHP-FPM 서비스와 함께 작동하도록 설정해야 합니다. 이는 Lighttpd 웹 서버의 FastCGI 모듈을 사용하여 수행할 수 있습니다.

먼저, nano 편집기를 사용하여 PHP-FPM 구성 파일 “ /etc/php/8.1/fpm/php.ini “을 편집합니다.

sudo nano /etc/php/8.1/fpm/php.ini

파일에 다음 구성을 추가합니다.

cgi.fix_pathinfo = 1

작업이 완료되면 파일을 저장하고 닫습니다.

이제 아래 명령을 사용하여 PHP-FPM 서비스를 재시작하여 새로운 변경 사항을 적용합니다.

sudo systemctl restart php8.1-fpm

다음으로, Lighttpd “ fastcgi “ 및 “ fastcgi-php-fpm “ 모듈을 활성화하기 위해 다음 명령을 실행합니다.

sudo lighty-enable-mod fastcgi fastcgi-php-fpm

nano 편집기를 사용하여 구성 파일 “ /etc/lighttpd/conf-available/15-fastcgi-php-fpm.conf “을 편집합니다. 이 파일은 PHP-FPM 소켓 파일과 통신하는 데 사용되는 fastcgi-php-fpm 모듈 구성입니다.

sudo nano /etc/lighttpd/conf-available/15-fastcgi-php-fpm.conf

소켓 옵션의 경로를 “ /run/php/php8.1-fpm.sock “으로 변경합니다.

## PHP-FPM 서비스를 FastCGI를 통해 사용
fastcgi.server += ( ".php" =>  
        ((  
                "socket" => "/run/php/php8.1-fpm.sock",  
                "broken-scriptfilename" => "enable"  
        ))  
)

작업이 완료되면 파일을 저장하고 닫습니다.

마지막으로 아래 명령을 실행하여 Lighttpd 서비스를 재시작하고 새로운 변경 사항을 적용합니다. 이제 LLMP 스택이 정적 HTML 및 동적 PHP 웹 애플리케이션을 제공할 준비가 되었습니다.

sudo systemctl restart lighttpd

configure php-fpm lighttpd

Phpinfo 테스트

LLMP 스택 설치를 확인하기 위해 PHPINFO 스크립트를 생성하여 Lighttpd 및 PHP-FPM 구성의 세부 정보를 보여줄 수 있습니다.

아래 명령을 실행하여 새 PHP 스크립트 “ /var/www/html/info.php “을 생성하고 소유권을 “ www-data “ 사용자로 변경합니다.

echo "" > /var/www/html/info.php  
sudo chown -R www-data:www-data /var/www/html

웹 브라우저로 돌아가서 우분투 서버 IP 주소 뒤에 URL 경로 “ /info.php “를 입력합니다( http://192.168.5.28/info.php). 그러면 다음 스크린샷과 같이 상세한 phpinfo 페이지가 표시됩니다. 이는 Lighttpd 및 PHP-FPM 구성이 완료되고 성공적으로 이루어졌음을 의미합니다.

php info llmp

Lighttpd에서 가상 호스트 설정

이 시점에서 LLMP 스택 설치 및 구성이 완료되었습니다. LLMP 스택은 PHP-FPM을 통해 동적 PHP 웹 애플리케이션을 제공할 준비가 되었습니다. 이제 Lighttpd 웹 서버에서 가상 호스트를 설정하는 방법을 배울 것입니다. 가상 호스트를 사용하면 단일 서버 또는 IP 주소에서 여러 도메인 이름을 실행할 수 있습니다.

이제 다음 명령을 실행하여 새 디렉토리 “ /etc/lighttpd/vhosts “를 생성합니다. 이 디렉토리는 Lighttpd 웹 서버의 모든 가상 호스트 구성을 저장하는 데 사용됩니다.

sudo mkdir -p /etc/lighttpd/vhosts/

이제 nano 편집기를 사용하여 Lighttpd 구성 파일 “ /etc/lighttpd/lighttpd.conf “을 편집합니다.

sudo nano /etc/lighttpd/lighttpd.conf

파일에 다음 구성을 추가합니다.

include "/etc/lighttpd/vhosts/*.conf"

작업이 완료되면 파일을 저장하고 닫습니다. 이제 Lighttpd 가상 호스트를 설정할 준비가 되었습니다.

먼저 가상 호스트의 문서 루트 디렉토리를 생성합니다. 이 예제에서 문서 루트 디렉토리는 “ /var/www/hwdomain “이 됩니다.

mkdir -p /var/www/hwdomain/

문서 루트 디렉토리 “ /var/www/hwdomain “에 새 “index.html” 파일을 생성하고 소유권을 올바른 사용자 “www-data”로 변경합니다.

echo "

howtoforge.local 가상 호스트에 오신 것을 환영합니다

" > /var/www/hwdomain/index.html sudo chown -R www-data:www-data /var/www/hwdomain

다음으로, nano 편집기를 사용하여 새 가상 호스트 구성 “ /etc/lighttpd/vhosts/hwdomain.conf “을 생성합니다.

sudo nano /etc/lighttpd/vhosts/hwdomain.conf

파일에 다음 구성을 추가합니다. 이 예제에서는 도메인 “howtoforge.local”이 가상 호스트에 사용됩니다.

$HTTP["host"] =~ "(^|.)howtoforge.local$" {  
    server.document-root = "/var/www/hwdomain"  
    server.errorlog = "/var/log/lighttpd/howtoforge.local-error.log"  
    accesslog.filename = "/var/log/lighttpd/howtoforge.local-access.log"  
}

작업이 완료되면 파일을 저장하고 닫습니다.

그 후, 다음 명령을 실행하여 Lighttpd 구성을 확인하고 검증합니다. Lighttpd 구성이 올바른 경우 “ Syntax OK “와 같은 출력 메시지를 볼 수 있습니다.

sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf

이제 아래 명령을 사용하여 Lighttpd 서비스를 재시작하여 새로운 가상 호스트 구성을 적용합니다.

sudo systemctl restart lighttpd

lighttpd virtual host

웹 브라우저로 돌아가서 주소 표시줄에 도메인 이름을 입력합니다(예: http://howtoforge.local/). 그러면 해당 가상 호스트의 기본 index.html 페이지가 표시됩니다.

Lighttpd 웹 서버에서 HTTPS 활성화

Lighttpd 가상 호스트를 설정한 후, 이제 Lighttpd 웹 서버에서 SSL/HTTPS를 활성화하는 방법을 배울 것입니다.

SSL 구성을 시작하기 전에 아래 명령을 실행하여 Lighttpd 웹 서버에 대해 “ssl” 모듈을 활성화합니다. 이렇게 하면 기본 SSL 구성이 포함된 “ /etc/lighttpd/conf-enabled/10-ssl.conf “에 대한 링크 파일이 생성됩니다. 또한, “ server.pem “이라는 이름으로 로컬호스트에 대한 SSL 인증서를 생성해야 합니다.

sudo lighty-enable mod ssl

이제 아래 명령을 실행하여 “ server.pem “이라는 이름으로 로컬호스트에 대한 SSL 인증서를 생성합니다.

openssl req -new -newkey rsa:2048 -nodes -keyout server.com.key -out server.com.csr  
openssl x509 -req -days 365 -in server.com.csr -signkey server.com.key -out server.com.crt
cat server.com.key server.com.crt > server.pem

이제 가상 호스트 구성 “ hwdomain.conf “에 SSL/HTTPS를 구현할 준비가 되었습니다.

가상 호스트에 대한 SSL 구성을 시작하기 전에 도메인 이름에 대한 SSL 인증서를 생성했는지 확인하십시오. 이 예제에서는 도메인 이름이 “howtoforge.local”이며 SSL 인증서는 “ /etc/letsencrypt/live/hwdomain.i o” 디렉토리에 있습니다.

nano 편집기를 사용하여 가상 호스트 구성 “ /etc/lighttpd/vhosts/hwdomain.conf “을 편집합니다.

sudo nano /etc/lighttpd/vhosts/hwdomain.conf

방금 생성한 구성을 다음 구성으로 교체합니다.

$HTTP["scheme"] == "http" {  
        $HTTP["host"] == "howtoforge.local" {  
                url.redirect = ("/.*" => "https://howtoforge.local$0")  
        }  
}  
  
$SERVER["socket"] == ":443" {  
    ssl.engine = "enable"  
  
    ssl.pemfile = "/etc/letsencrypt/live/howtoforge.local/fullchain.pem"  
    ssl.privkey = "/etc/letsencrypt/live/howtoforge.local/privkey.pem"  
  
    server.name = "howtoforge.local"  
    server.document-root = "/var/www/hwdomain"  
    server.errorlog = "/var/log/lighttpd/howtoforge.local-error.log"  
    accesslog.filename = "/var/log/lighttpd/howtoforge.local-access.log"  
}

작업이 완료되면 파일을 저장하고 닫습니다.

다음으로, 아래 명령을 실행하여 Lighttpd 웹 서버 구성을 확인하고 검증합니다. “Syntax OK”와 같은 출력 메시지를 받았는지 확인하십시오. 그 후, 새로운 변경 사항을 적용하기 위해 Lighttpd 서비스를 재시작할 수 있습니다.

sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf  
sudo systemctl restart lighttpd

마지막으로 웹 브라우저로 돌아가서 URL 앞에 https를 붙여 가상 호스트 도메인 이름을 방문합니다(예: https://howtoforge.local). SSL 구성이 성공적이라면 아래 스크린샷과 같이 URL에 로컬 아이콘이 표시됩니다.

결론

축하합니다! 우분투 22.04 서버에 LLMP 스택(Linux, Lighttpd, MariaDB, PHP-FPM)을 성공적으로 설치했습니다. 또한 Lighttpd 웹 서버에서 가상 호스트를 설정하고 도메인 이름에 대해 SSL/HTTPS를 활성화하는 방법을 배웠습니다.

Share: X/Twitter LinkedIn

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

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