우분투 서버에 LOMP 스택 설정하는 방법

웹 개발자로서 리눅스, OpenLiteSpeed, MariaDB(또는 MySQL), PHP 스택 서버(LOMP)를 설정해야 하는 상황에 처할 수 있습니다. 이는 다소 어려운 작업일 수 있습니다. 여기에서는 리눅스 서버에 LOMP 스택을 설치하는 단계를 보여드립니다.
목차
- LOMP를 다른 스택(LAMP, LEMP)보다 사용하는 이유
- 전제 조건
- OpenLiteSpeed 설치
- MariaDB 설치
- PHP 설치
- OpenLiteSpeed 접근 및 구성
- 자주 묻는 질문들
LOMP를 다른 스택(LAMP, LEMP)보다 사용하는 이유?
LOMP는 오픈 소스이며 광범위한 지원을 받기 때문에 웹 개발에 인기 있는 선택입니다. 또한 LOMP 스택의 모든 구성 요소는 서로 호환되어 설정 및 유지 관리가 용이합니다.
게다가 OpenLiteSpeed는 Apache 및 Nginx와 같은 다른 웹 서버와 비교할 때 고성능 웹 서버입니다. OpenLiteSpeed는 더 많은 동시 요청을 처리하고 더 적은 리소스를 사용하여 트래픽이 많은 웹사이트에 적합한 선택입니다.
전제 조건
이 가이드를 시작하기 전에 몇 가지 준비물이 필요합니다.
리눅스 서버. 이 튜토리얼은 작성 시점에 최신 릴리스인 우분투 22.04를 사용합니다.
서버에 sudo 권한이 설정된 비루트 사용자 계정.
서버를 가리키는 도메인 이름.
OpenLiteSpeed 설치
LOMP 스택에서 OpenLiteSpeed는 웹 서버로 사용됩니다. 웹 서버는 웹사이트를 구성하는 파일에 대한 요청에 응답하는 소프트웨어입니다. 누군가 도메인 이름을 입력하면 브라우저가 웹 서버에 요청을 보내 웹사이트를 구성하는 파일을 요청합니다. 웹 서버는 그런 다음 해당 파일을 브라우저로 다시 전송합니다.
우분투에 OpenLiteSpeed를 설치하기 전에 먼저 서버의 패키지 인덱스를 업데이트합니다:
sudo apt updatewget 명령으로 OLS 리포를 가져옵니다.
sudo wget -O - https://repo.litespeed.sh | cat-O 플래그는 wget에게 스크립트의 출력을 파일을 생성하는 대신 터미널에 쓰도록 지시합니다. | 문자(파이프라고 함)는 첫 번째 명령의 출력을 두 번째 명령인 cat의 입력으로 전달합니다. 이를 통해 실행하기 전에 스크립트를 검토할 수 있습니다.

출력이 괜찮다면 다음 명령으로 스크립트를 실행할 수 있습니다:
sudo wget -O - https://repo.litespeed.sh | sudo bash명령의 sudo bash 부분은 시스템에 루트 권한으로 스크립트를 실행하도록 지시합니다. 이는 스크립트가 시스템의 리포지토리를 수정할 수 있어야 하기 때문에 필요합니다.

리포지토리가 추가되면 변경 사항을 반영하기 위해 패키지 인덱스를 다시 업데이트합니다:
sudo apt update마지막으로 다음 apt 명령으로 OpenLiteSpeed를 설치합니다.
sudo apt install openlitespeed -yOpenLiteSpeed가 서버에 설치됩니다.

OpenLiteSpeed 서비스를 시작하고 서버가 부팅될 때 자동으로 시작되도록 활성화합니다:
sudo systemctl start openlitespeed
sudo systemctl enable openlitespeedOpenLiteSpeed 서비스의 상태를 확인하여 제대로 실행되고 있는지 확인할 수 있습니다:
sudo systemctl status openlitespeed출력은 아래와 비슷하게 보일 것입니다.

MariaDB 설치
MariaDB는 인기 있는 MySQL 데이터베이스 서버의 포크입니다. LOMP 스택에서 MySQL 대신 사용되며, 스택의 다른 소프트웨어와 호환되지만 오픈 소스 라이센스 하에 개발되었습니다. MariaDB는 무료로 사용 및 배포할 수 있습니다.
다음 apt 명령을 실행하여 MariaDB를 설치합니다:
sudo apt install mariadb-server -yOpenLiteSpeed와 마찬가지로 MariaDB 서비스도 시작하고 서버가 부팅될 때 자동으로 시작되도록 활성화합니다.
sudo systemctl start mariadb
sudo systemctl enable mariadbMariaDB 서비스의 상태를 확인하여 제대로 실행되고 있는지 확인할 수 있습니다.
sudo systemctl status mariadb출력은 아래와 비슷하게 보일 것입니다.

MariaDB 설치 보안 강화
기본적으로 MariaDB의 새 설치는 데이터베이스 서버를 공격에 취약하게 만들 수 있는 몇 가지 위험한 기본값을 가지고 있습니다. 설치를 안전하게 하려면 MariaDB와 함께 제공되는 mariadb-secure-installation 스크립트를 실행합니다.
sudo mariadb-secure-installation이 스크립트는 덜 안전한 기본 옵션을 변경하고 MariaDB 루트 사용자에 대한 비밀번호를 설정합니다.
일련의 질문이 표시됩니다. 각 질문에 대해 “Y”(예) 또는 “N”(아니오)로 답하십시오.
먼저 루트 비밀번호를 입력하라는 메시지가 표시됩니다. MariaDB를 방금 설치했기 때문에 루트 사용자에 대한 비밀번호를 설정하지 않았으므로 이 필드는 비워두고 Enter를 누릅니다.

다음으로 루트 사용자에 대해 “unix_socket 인증” 방법을 사용할 것인지 묻는 질문이 표시됩니다. 이는 시스템 루트 사용자로 로그인할 때 MariaDB에 자동으로 로그인할 수 있음을 의미합니다. Y를 입력하고 Enter를 누릅니다.
루트 사용자의 비밀번호를 변경할 것인지에 대한 질문이 다음으로 표시됩니다. Y를 입력하고 Enter를 누릅니다. 루트 사용자에 대한 새 비밀번호를 입력하고 확인하라는 메시지가 표시됩니다. 추측하기 어려운 강력한 비밀번호를 사용하는 것이 모범 사례입니다.
그 후 데이터베이스에서 익명 사용자를 제거할 것인지 묻는 질문이 표시됩니다. 익명 사용자는 사용자 이름이나 비밀번호가 없는 사용자입니다. Y를 입력하고 Enter를 누릅니다. 기본적으로 MariaDB는 사용자 이름이나 비밀번호 없이 데이터베이스 서버에 연결할 수 있도록 허용합니다. 이는 안전하지 않으므로 이러한 익명 사용자를 제거합니다.
다음으로 원격 루트 로그인을 허용하지 않을 것인지 묻는 질문이 표시됩니다. 원격 루트 로그인을 허용하지 않는 것은 좋은 보안 조치입니다. 이는 공격자가 루트 사용자로 로그인하기 위해 서버에 물리적으로 접근해야 함을 의미합니다. Y를 입력하고 Enter를 누릅니다.
마지막으로 테스트 데이터베이스와 그에 대한 접근을 제거할 것인지 묻는 질문이 표시됩니다. 이는 테스트 목적으로 사용되며 더 이상 필요하지 않습니다. Y를 입력하고 Enter를 누릅니다.
변경 사항이 적용되도록 권한 테이블을 다시 로드하라는 메시지가 표시됩니다. Y를 입력하고 Enter를 누릅니다. 이제 MariaDB 설치가 안전해졌습니다.

PHP 설치
PHP는 동적 콘텐츠(예: 양식 데이터 또는 이미지)를 처리하는 데 사용되는 서버 측 스크립팅 언어입니다. WordPress를 사용하는 경우 PHP를 설치해야 합니다.
사용 가능한 PHP 패키지를 검색하려면 아래 명령을 실행합니다.
sudo apt-cache search lsphpPHP로 시작하는 패키지 목록이 표시됩니다. 이는 PHP7.4, PHP8.0 및 PHP8.1 패키지입니다. 이 가이드에서는 최신 버전인 PHP8.1을 설치합니다. 이 패키지는 최신 기능 및 보안 업데이트를 포함합니다.
PHP8.1을 설치하려면 아래 명령을 실행합니다:
sudo apt install lsphp81 lsphp81-{common,mysql} -y{common,mysql} 부분은 apt에게 PHP8.1의 공통 및 mysql 모듈을 설치하도록 지시합니다. common 모듈은 대부분의 PHP 애플리케이션에 필요한 기본 기능 세트를 제공합니다. mysql 모듈은 PHP가 MariaDB와 상호 작용할 수 있도록 하는 기능을 제공합니다.

귀하의 PHP 애플리케이션이 다른 버전의 PHP와 호환될 수 있으므로 PHP 버전을 선택하기 전에 애플리케이션 문서를 확인하십시오.
다른 버전의 PHP를 설치하려면 lsphp81을 원하는 버전으로 교체하십시오. 예를 들어 PHP7.4를 설치하려면 아래와 같이 lsphp74 패키지 이름을 사용합니다:
sudo apt install lsphp74 lsphp74-{common,mysql}OpenLiteSpeed 접근 및 구성
방화벽 구성
우분투에는 UFW라는 기본 방화벽이 있습니다. 웹 관리 콘솔 및 웹사이트에 접근하기 위해 포트 7080 및 8088에서 트래픽을 허용해야 합니다.
다음 명령을 실행하여 이러한 포트에서 트래픽을 허용합니다:
sudo ufw allow 7080/tcp && sudo ufw allow 8088/tcp다음 명령을 실행하여 방화벽 상태를 확인합니다:
ufw status아래와 유사한 출력이 표시됩니다. 출력에서 포트 7080 및 8088에서 트래픽이 허용되고 있음을 확인할 수 있습니다.

OpenLiteSpeed 접근
이제 모든 설정이 완료되었으므로 OpenLiteSpeed에 접근할 준비가 되었습니다.
이를 위해 웹 브라우저를 열고 http://your_domain:8088로 이동합니다. “your_domain”을 귀하의 도메인 이름으로 교체하십시오.
아래와 유사한 페이지가 표시됩니다: OpenLiteSpeed 환영 페이지.

아래로 스크롤하여 “Test PHP” 링크를 클릭하여 PHP가 OpenLiteSpeed와 올바르게 작동하는지 테스트합니다.

아래와 유사한 페이지가 표시됩니다. 이 페이지는 PHP가 OpenLiteSpeed와 올바르게 작동하고 있음을 보여줍니다. PHP 버전은 PHP7.4로 표시되지만, 다음 섹션에서 이 버전을 PHP8.1로 변경할 것입니다.

“Hello World CGI” 스크립트 아래의 링크를 클릭하여 OpenLiteSpeed CGI 기능이 올바르게 작동하는지 테스트합니다.
CGI는 웹 브라우저의 요청에 응답하여 웹 서버에서 프로그램을 실행하는 메커니즘입니다. OpenLiteSpeed는 어떤 언어로 작성된 CGI 스크립트도 실행할 수 있지만, CGI의 가장 일반적인 사용은 Perl 또는 PHP 스크립트를 실행하는 것입니다.
이 기능은 OpenLiteSpeed에서 지원되지 않는 프로그래밍 언어를 사용하려는 경우 매우 유용합니다.

아래와 유사한 Hello World 페이지가 표시되며, 이는 CGI 기능이 올바르게 작동하고 있음을 의미합니다.
다음으로 웹 관리 콘솔에 대한 비밀번호를 설정하기 위해 아래 명령을 실행합니다.
sudo /usr/local/lsws/admin/misc/admpass.sh프롬프트가 표시되면 웹 관리 콘솔에 대한 사용자 이름과 비밀번호를 제공하고 ENTER를 누릅니다.

http://your_domain:7080으로 이동하여 웹 관리 콘솔을 엽니다: OpenLiteSpeed 서버를 관리하기 위한 그래픽 사용자 인터페이스(GUI)입니다.
이 인터페이스를 사용하면 전통적인 웹 서버와 같이 구성 파일을 편집하지 않고도 웹 브라우저에서 직접 서버를 구성할 수 있습니다.
“your_domain”을 실제 도메인 이름으로 교체하여 아래와 유사한 페이지를 확인합니다.
이전 단계에서 생성한 사용자 이름과 비밀번호를 입력하고 “로그인”을 클릭하여 웹 관리 콘솔에 로그인합니다.

아래와 유사한 페이지가 표시됩니다. 이 페이지는 웹 관리 콘솔의 메인 페이지입니다. 서버 개요를 보여줍니다.

OpenLiteSpeed를 PHP8.1로 구성하기
기본적으로 OpenLiteSpeed는 PHP7.4와 함께 작동하도록 구성되어 있습니다. 다른 버전의 PHP를 사용하는 경우 OpenLiteSpeed에 사용할 PHP 버전을 알려줘야 합니다.
웹 관리 콘솔의 메인 페이지에서 “서버 구성” 탭을 클릭한 다음 “외부 앱”을 클릭합니다. 현재 구성된 모든 외부 애플리케이션 목록이 표시됩니다.
“LiteSpeed SAPI App” 옆의 “편집” 아이콘을 클릭합니다.

아래와 유사한 페이지가 표시됩니다. “명령” 필드에 lsphp81/bin/lsphp를 입력합니다. 이 설정은 OpenLiteSpeed에 기본 PHP7.4 대신 PHP8.1을 사용하도록 지시합니다.

다른 설정은 기본값으로 유지하고 변경 사항을 저장하려면 저장 아이콘을 클릭합니다.
구부러진 화살표 아이콘을 클릭하여 우아한 재시작을 수행합니다. 변경 사항은 OpenLiteSpeed를 우아하게 재시작할 때까지 적용되지 않습니다.
마지막으로 http://your_domain:8088/phpinfo.php로 이동합니다. 아래와 유사한 페이지가 표시되며, OpenLiteSpeed가 PHP8.1을 사용하고 있음을 보여줍니다.
축하합니다! 우분투 서버에 LOMP 스택을 성공적으로 설치하고 구성했습니다.
자주 묻는 질문들
OpenLiteSpeed를 다른 웹 서버와 함께 사용할 수 있나요?
아니요. OpenLiteSpeed는 독립형 웹 서버로 사용하도록 설계되었습니다. 다른 웹 서버와 함께 작동하도록 설계되지 않았습니다. OpenLiteSpeed는 다른 웹 서버와 동일한 포트(HTTP의 경우 80, HTTPS의 경우 443)를 사용합니다. 즉, 한 번에 하나의 웹 서버만 서버에서 실행될 수 있습니다.
무료 SSL 인증서인 Let’s Encrypt로 OpenLiteSpeed 웹 서버를 보호할 수 있나요?
네, 가능합니다. OpenLiteSpeed는 Let’s Encrypt 및 기타 ACMEv2 호환 인증 기관에 대한 기본 지원을 제공합니다. 웹 관리 콘솔을 사용하여 몇 번의 클릭만으로 무료 SSL 인증서를 설치할 수 있습니다. 자세한 내용은 공식 OpenLiteSpeed 문서를 참조하십시오.
이미지 출처: Unsplash. 모든 스크린샷은 Nicholas Xuan Nguyen이 촬영했습니다.