기술 가이드

CentOS 8에 OpenLiteSpeed, PHP 7.4(LSPHP) 및 MariaDB 설치 및 설정 가이드

7 min read 서버 가이드 업데이트됨 18 Oct 2025
CentOS 8에 OpenLiteSpeed·PHP7.4·MariaDB 설치 가이드
CentOS 8에 OpenLiteSpeed·PHP7.4·MariaDB 설치 가이드

OpenLiteSpeed 설치 개요 이미지

중요: 본 가이드는 CentOS 8 환경(권장 최소 사양: 2GB RAM, 25GB 여유 디스크, 2 vCPU)을 기준으로 작성되었습니다. 실제 운영 환경에서는 추가 보안(SELinux, TLS 인증서 관리, 로그 중앙화)과 백업 전략을 반드시 계획하세요.

개요

OpenLiteSpeed는 LiteSpeed Technologies에서 개발한 오픈소스 HTTP 서버입니다. 가벼우면서 고성능을 지향하고 웹 기반 GUI(관리자 대시보드)를 통해 설정을 편리하게 관리할 수 있습니다. OpenLiteSpeed는 LSPHP(=LSAPI 기반 PHP)로 PHP를 실행하며, MariaDB 같은 데이터베이스와 함께 LAMP류 스택을 구성할 수 있습니다.

이 가이드는 다음 작업을 포함합니다.

  • OpenLiteSpeed 저장소 추가 및 설치
  • PHP 7.4(LSPHP) 설치
  • MariaDB 설치 및 기본 보안 설정
  • OpenLiteSpeed 관리자 계정 설정(포트 7080)
  • LSPHP(PHP 7.4)를 External App으로 등록하고 Script Handler에 연결
  • OpenLiteSpeed를 HTTP 기본 포트(80)로 변경
  • 동작 확인(기본 페이지, phpinfo)

다음 섹션에서 단계별 명령, 화면 설명, 문제 발생 시 확인 포인트 및 보안 권장사항을 제공합니다.

사전 준비

  • CentOS 8 최신 패치 적용 상태
  • 루트 또는 sudo 권한
  • 방화벽(firewalld) 기본 동작 이해
  • 서버 IP, DNS(선택) 준비

팁: CentOS 8은 이미 수명 주기가 지난 경우가 있으니(운영체제 지원 정책을 확인) 장기 운영 시 AlmaLinux, Rocky Linux 등의 호환 배포판을 검토하세요.

용어 한 줄 설명

  • LSPHP: OpenLiteSpeed가 사용하는 LSAPI 기반 PHP 구현(PHP 바이너리 집합).
  • Listener: OpenLiteSpeed에서 포트 및 바인딩을 관리하는 구성 요소.
  • External App: OpenLiteSpeed가 외부 프로세스(예: lsphp)를 호출하는 설정 항목.

단계 1 — OpenLiteSpeed 설치

먼저 OpenLiteSpeed 저장소를 추가한 뒤 패키지를 설치합니다. 저장소 패키지를 rpm으로 설치하면 litespeed 관련 레포가 /etc/yum.repos.d에 추가됩니다.

rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el8.noarch.rpm

저장소 추가 후 사용 가능한 저장소 목록을 확인해 설치 준비가 되었는지 확인합니다.

dnf repolist

dnf로 리포지토리 확인 스크린샷

리포지토리가 정상적으로 추가되었으면 OpenLiteSpeed 패키지를 설치합니다.

sudo dnf install openlitespeed

설치가 완료되면 서비스 시작 및 부팅 시 자동 시작을 설정합니다.

systemctl start lsws
systemctl enable lsws

상태 확인:

systemctl status lsws

CentOS에서 OpenLiteSpeed 서비스 시작 화면

검증: 웹 서버가 정상 시작되면 관리 포트(기본 7080)가 동작합니다. 이 시점에서는 방화벽 규칙을 아직 열지 않았을 수 있습니다.

중요: systemctl 명령이 실패하면 /usr/local/lsws/logs/error.log 파일을 확인하세요. SELinux가 활성화된 환경에서는 추가 정책이 필요할 수 있습니다(아래 보안 섹션 참조).


단계 2 — PHP 7.4 (LSPHP) 설치

OpenLiteSpeed는 PHP-FPM 대신 LSPHP(LSAPI)를 권장합니다. LSPHP는 OpenLiteSpeed와의 통신이 최적화되어 있으며 성능/호환성 측면에서 이점이 있습니다.

먼저 EPEL 저장소를 추가합니다.

sudo dnf install epel-release

그다음 OpenLiteSpeed 저장소의 LSPHP 7.4 패키지들을 설치합니다. 필요한 모듈은 애플리케이션 요구사항에 따라 추가/제거하세요.

sudo dnf install lsphp74 lsphp74-mysqlnd lsphp74-process lsphp74-mbstring lsphp74-mcrypt lsphp74-gd lsphp74-opcache lsphp74-bcmath lsphp74-pdo lsphp74-common lsphp74-xml

설치 완료 후 lsphp 관련 소켓/프로세스를 확인합니다.

netstat -pl | grep lsphp

또는 시스템에서 유닉스 도메인 소켓(uds)을 확인하려면:

ss -lx | grep lsphp

설치가 정상적이면 OpenLiteSpeed에서 사용할 수 있는 lsphp 바이너리(예: /usr/local/lsws/lsphp74/bin/lsphp 또는 /usr/local/lsws/lsphp74/bin/lsphp)가 존재합니다.

검증: phpinfo()로 PHP 버전과 로드된 확장 모듈을 확인합니다(나중 단계에서 phpinfo 확인).

설치 참고: 패키지 명칭은 레포지토리 구성에 따라 다를 수 있으니 dnf search lsphp74로 패키지 목록을 확인하세요.


단계 3 — MariaDB 설치 및 초기 보안 설정

데이터베이스로 MariaDB를 설치하고 기본 보안 설정(mysql_secure_installation)을 실행합니다.

sudo dnf install mariadb mariadb-server

서비스 시작 및 자동 시작 등록:

systemctl start mariadb
systemctl enable mariadb

MariaDB 설치 중 터미널 창 이미지

보안 설정(권장): mysql_secure_installation 스크립트를 실행하여 루트 암호 설정, 익명 사용자 제거, 테스트 DB 제거, 권한 테이블 리로드를 진행합니다.

mysql_secure_installation

질문 예시(공식 스크립트 안내에 따라 응답):

Set a root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

루트로 로그인하여 사용자 목록을 확인합니다.

mysql -u root -p
Type Your Root Password:

select User, Host from mysql.user;

MariaDB 사용자 확인 스크린샷

중요: MariaDB의 인증 플러그인과 암호 정책을 필요에 맞게 조정하세요. 특히 원격 접속을 허용하려면 사용자 호스트와 방화벽 규칙을 신중히 설정해야 합니다.


단계 4 — 관리자 대시보드 인증 설정 및 방화벽 열기

OpenLiteSpeed 관리자 대시보드는 기본적으로 포트 7080에서 HTTPS로 동작합니다. 먼저 포트를 방화벽에 추가하고 admpass.sh로 관리자 계정을 생성합니다.

방화벽에 포트 7080 추가 및 재로드:

firewall-cmd --add-port=7080/tcp --permanent
firewall-cmd --reload

관리자 비밀번호 설정 스크립트 실행:

cd /usr/local/lsws/admin/misc
sh admpass.sh

스프립트는 계정명과 비밀번호를 묻습니다. 안전한 비밀번호를 사용하세요.

관리자 대시보드 보호 설정 스크린샷

브라우저에서 https://서버IP:7080 로 접속해 로그인합니다.

Login 예시: https://10.5.5.25:7080

로그인 화면 예시

로그인 후 관리자 대시보드를 확인합니다.

OpenLiteSpeed 관리자 대시보드

보안 팁:

  • 관리자 포트는 외부에 그대로 노출하지 말고, 사내망에서만 접근 가능하게 하거나 VPN, IP 화이트리스트로 보호하세요.
  • HTTPS가 기본 활성화되지만 자체 서명서로 오는 경우 브라우저 경고가 표시됩니다. 운영 환경에서는 유효한 인증서를 사용하세요.

단계 5 — OpenLiteSpeed에 PHP 7.4(LSPHP) 연동

관리자 대시보드에서 LSPHP를 External App으로 등록한 뒤 Script Handler로 연결합니다.

관리자에서 Server Configuration → External App 탭으로 이동합니다.

External App 설정 화면

‘+’ 버튼을 눌러 새 항목을 추가합니다. 타입(Type)으로 “LiteSpeed SAPI App”을 선택한 뒤 다음 값들을 입력합니다.

Name: lsphp74
Address: uds://tmp/lshttpd/lsphp.sock
Notes: lsphp74 for OpenLiteSpeed
Max Connections: 35
Initial Request Timeout (secs): 60
Retry Timeout (secs): 0
Command: $SERVER_ROOT/lsphp74/bin/lsphp

설정 저장 후 Server Configuration → Script Handler 탭에서 PHP 핸들러를 편집하여 Handler Name으로 lsphp74를 선택하고 저장합니다.

LiteSpeed SAPI 앱 추가 화면

PHP 7.4 External App 등록 화면

Script Handler 설정 화면

lsphp74 핸들러 선택 화면

설정 후 서버 리스타트(관리자 화면에서 적용 버튼) 또는 systemctl로 재시작하여 변경사항을 반영하세요.

systemctl restart lsws

검증: 간단한 PHP 파일(phpinfo)을 웹루트에 생성하고 phpinfo 페이지가 lsphp로 처리되는지 확인합니다.


단계 6 — OpenLiteSpeed를 포트 80(HTTP)에서 실행

기본 OpenLiteSpeed는 포트 8088(또는 환경에 따라 다름)에서 동작합니다. 운영 환경에서는 기본 HTTP 포트(80)로 변경할 수 있습니다. 먼저 방화벽에 http/https 서비스를 추가합니다.

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

firewalld 서비스 추가 스크린샷

관리자 대시보드에서 Listener → Default → view → Address Settings → edit로 이동해 포트를 80으로 변경하고 저장합니다.

Listeners 화면 예시

Address Settings 편집 화면

HTTP 포트 설정 저장 화면

변경 후 서버를 재시작합니다(관리자에서 Restart 또는 systemctl restart lsws).

구성 변경 후 서버 재시작 화면

검증: 브라우저에서 http://서버IP 주소로 접속해 기본 인덱스 페이지가 나타나는지 확인합니다.


단계 7 — 테스트 및 검증

브라우저에서 http://서버IP/ 로 접속하면 OpenLiteSpeed의 기본 인덱스 페이지가 표시되어야 합니다.

http://10.5.5.25/

OpenLiteSpeed 기본 인덱스 화면

다음으로 PHP 동작을 테스트합니다. 관리자 대시보드 또는 직접 생성한 php 파일에서 phpinfo()를 호출하여 PHP 버전 및 로드된 확장을 확인합니다.

OpenLiteSpeed에서의 phpinfo 화면

성공 기준:

  • 루트(또는 가상호스트의 DocumentRoot)에서 phpinfo()가 LSPHP로 처리되고 PHP 7.4가 표시됨
  • MariaDB에 루트로 접속 가능(설정한 암호 사용)
  • 관리자 대시보드(포트 7080)에 관리자 계정으로 로그인 가능
  • http/https 포트가 방화벽에서 허용됨

트러블슈팅 체크리스트

  • 서비스 상태 확인: systemctl status lsws, systemctl status mariadb
  • 로그 파일: /usr/local/lsws/logs/error.log, /var/log/mariadb/mariadb.log
  • 포트 충돌: ss -tulpn | grep :80 또는 :7080
  • SELinux: Enforcing인 경우 audit 로그(/var/log/audit/audit.log)를 확인하고 필요한 booleans를 설정하거나 정책을 추가
  • 파일 권한: 웹 루트와 lsphp 실행 파일이 적절한 권한/소유권을 가졌는지 확인

중요: 잘못된 Command 경로 또는 잘못된 Address(uds 경로)는 External App이 시작되지 않는 원인이 됩니다. External App 설정에서 명령 경로가 실제 바이너리 위치와 일치하는지 확인하세요.


보안 및 운영 권장사항

  • 관리자 대시보드(7080)는 내부망 또는 VPN으로만 접근하도록 제한
  • 운영환경에서는 Let’s Encrypt 또는 상업용 인증서를 사용해 TLS 구성
  • 정기적인 패키지 업데이트(dnf update)와 MariaDB 백업 전략 구현
  • 로그 롤링 및 중앙집중식 로깅(예: rsyslog, ELK/EFK) 도입
  • 웹 애플리케이션 방화벽(WAF) 도입 고려
  • PHP 확장 최소화: 불필요한 확장은 제거하여 공격 표면 축소

SELinux 참고: SELinux가 활성화된 시스템에서는 OpenLiteSpeed의 UDS 소켓과 파일 접근에 대해 추가 컨텍스트 설정이 필요할 수 있습니다.


대안과 비교

  • OpenLiteSpeed vs Apache/Nginx: OpenLiteSpeed는 LSAPI와의 긴밀한 통합으로 PHP 처리 속도/메모리 면에서 장점이 있지만, 생태계(모듈, 문서)와 관행은 Apache/Nginx 쪽이 더 넓습니다. 운영 편의성, 기존 인프라 호환성, 확장성 요구사항을 기준으로 선택하세요.
  • PHP 처리 방식: LSPHP(LSAPI) vs PHP-FPM — LSPHP는 OpenLiteSpeed에 최적화되어 있으며 추가 설정이 간단합니다. 기존에 PHP-FPM 기반으로 구성된 환경을 마이그레이션할 때는 핸들러와 소켓 경로를 주의깊게 변경하세요.

운영자용 체크리스트(역할별)

  • 시스템 관리자:

    • 저장소(rpm) 추가 및 패키지 설치
    • systemd 서비스 관리 및 로그 확인
    • 방화벽과 포트 관리
  • 웹 개발자:

    • PHP 확장 요구사항 확인 및 설치
    • 애플리케이션의 DocumentRoot와 권한 설정
    • phpinfo로 확장/설정 검증
  • 보안 담당자:

    • 관리자 포트 접근 제어
    • TLS 인증서 관리
    • mysql 계정 및 권한 정리

간단한 운영 SOP(표준 운영 절차)

  1. 패치: 운영 전 패키지 업데이트(dnf update) 수행
  2. 설치: OpenLiteSpeed, LSPHP, MariaDB 설치
  3. 초기 보안: MariaDB 보안 스크립트 실행 및 관리자 계정 설정
  4. 방화벽: 관리자/HTTP/HTTPS 포트 규칙 설정
  5. 검증: phpinfo 및 기본 페이지 확인
  6. 백업: DB 덤프와 서버 이미지 백업
  7. 모니터링: 리소스(메모리/CPU) 및 응답시간 관찰

롤백(간단): 패키지 설치 직후 문제 발생 시 systemctl stop lsws, dnf remove openlitespeed lsphp* 후 스냅샷에서 복원 또는 이전 이미지로 롤백.


결정 트리(간단)

flowchart TD
  A[서버 준비 완료?] -->|예| B[OpenLiteSpeed 설치]
  A -->|아니오| Z[서버 사양/권한 확인]
  B --> C{PHP 사용 필요?}
  C -->|예| D[lsphp74 설치]
  C -->|아니오| E[정적 사이트 구성]
  D --> F[External App 등록]
  F --> G[Script Handler 연결]
  G --> H[방화벽 및 포트 설정]
  H --> I[테스트 및 검증]
  I --> J[운영 전 보안 점검]

테스트 케이스(수동)

  • TC1: 관리자 포트(7080)에 로그인 가능
  • TC2: http://서버IP/ 에서 OpenLiteSpeed 인덱스 출력
  • TC3: phpinfo 페이지에서 PHP 7.4 및 mysqli, pdo_mysql 확장 로드 확인
  • TC4: MariaDB에 루트 로그인 및 간단한 CRUD 쿼리 실행
  • TC5: Listener 포트를 80으로 변경 후 외부에서 HTTP 접속 확인

각 테스트는 성공/실패를 기록하고 실패 시 로그(error.log, mariadb log)와 포트/프로세스 상태를 점검하세요.


호환성 및 마이그레이션 팁

  • CentOS 8의 향후 지원 여부를 확인하세요. CentOS 8 EOL 환경에서는 AlmaLinux/ Rocky Linux로 전환하는 것을 고려할 수 있습니다.
  • Apache/Nginx → OpenLiteSpeed 전환 시 가상호스트 설정, rewrite 규칙, SSL 설정, PHP 핸들러 차이를 점검하세요.
  • 기존 PHP-FPM에서 LSPHP로 이전할 때는 php.ini 경로와 확장 로드 경로가 달라질 수 있으므로 설정 파일을 비교하세요.

요약

  • OpenLiteSpeed와 LSPHP(PHP 7.4), MariaDB를 CentOS 8에 설치하고 기본 설정을 완료했습니다.
  • 관리자 대시보드(포트 7080)와 HTTP 포트(80) 설정, 방화벽 규칙 추가, phpinfo로 검증을 수행했습니다.
  • 운영 전 보안(관리자 포트 제한, TLS, 백업, 로그 관리)을 반드시 적용하세요.

핵심 요점:

  1. 저장소 추가 → 패키지 설치 → 서비스 시작
  2. LSPHP를 External App으로 등록하고 Script Handler에 연결
  3. MariaDB 설치 후 mysql_secure_installation으로 기본 보안 완료
  4. 포트 및 방화벽 설정 후 phpinfo로 동작 검증

참고 링크:

감사합니다.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Debian 11에 Podman 설치 및 사용하기
컨테이너

Debian 11에 Podman 설치 및 사용하기

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정
시스템 관리

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드
그래픽 가이드

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드

Debian Etch에 Dansguardian+Squid(NTLM) 구성
네트워크

Debian Etch에 Dansguardian+Squid(NTLM) 구성

안드로이드 SD카드 설치 오류(Error -18) 완전 해결
안드로이드 오류

안드로이드 SD카드 설치 오류(Error -18) 완전 해결

KNetAttach로 원격 네트워크 폴더 연결하기
네트워킹

KNetAttach로 원격 네트워크 폴더 연결하기