Ubuntu 18.04에 Opigno LMS 설치 및 구성

TL;DR
Opigno LMS는 Drupal 기반의 오픈소스 학습관리시스템(LMS)입니다. 이 가이드는 Ubuntu 18.04 서버에 LAMP 스택을 설치하고, MariaDB를 설정한 뒤 Opigno를 배포하고 Apache 가상호스트를 구성하는 전체 과정을 단계별로 설명합니다. 설치 후 점검 체크리스트와 일반적인 문제 해결 방법, 보안 권장 사항도 포함되어 있습니다.
개요
Opigno LMS는 기업과 대학을 위한 전용 전자학습 솔루션입니다. 학습 경로 관리, 온라인 강좌 판매, 수료증 발급 등 교육 운영에 필요한 기능을 제공합니다. 이 튜토리얼은 Ubuntu 18.04 서버에서 Opigno를 설치하고 초기 설정을 완료하는 절차에 중점을 둡니다.
중요: 실제 운영 환경에서는 예시 비밀번호(‘password’)를 사용하지 말고 강력한 랜덤 패스워드를 설정하세요. 또한 서버 시간을 현지 시간대(예: Asia/Seoul)로 맞추는 것을 권장합니다.
요구사항
- Ubuntu 18.04가 실행되는 서버
- 루트(root) 비밀번호 또는 sudo 권한 있는 사용자
- 도메인(예: example.com) 또는 서버 공인 IP
- 기본적인 Linux 명령어 사용 지식
시작 전 점검 체크리스트
- 시스템 패키지 업데이트가 가능한가?
- 포트 80/443이 방화벽에서 허용되어 있는가?
- 도메인 DNS가 서버를 가리키는가?
- 백업 계획(특히 데이터베이스)이 준비되어 있는가?
시스템 업데이트
먼저 시스템을 최신 상태로 업데이트합니다:
apt-get update -y
apt-get upgrade -y
업데이트 후 변경사항을 적용하려면 서버를 재부팅하세요.
LAMP 스택 설치 (Apache, MariaDB, PHP)
아래 명령으로 Apache, MariaDB, PHP 및 필요한 확장들을 설치합니다:
apt-get install apache2 mariadb-server php7.2 libapache2-mod-php7.2 php7.2-common php7.2-sqlite3 php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-mysql php7.2-gd php7.2-xml php7.2-cli php7.2-zip unzip wget -y
설치가 완료되면 Apache와 MariaDB를 시작하고 부팅 시 자동 시작하도록 설정합니다:
systemctl start apache2
systemctl enable apache2
systemctl start mariadb
systemctl enable mariadb
PHP 설정 조정
Apache용 php.ini 파일을 열어 메모리/업로드 제한, 실행 시간, 타임존을 적절히 구성합니다. 한국 환경이면 타임존을 Asia/Seoul로 설정하세요:
nano /etc/php/7.2/apache2/php.ini
다음 값을 수정/추가합니다:
memory_limit = 256M
post_max_size = 100M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = Asia/Seoul
변경 후 파일을 저장하고 닫습니다.
MariaDB 보안 설정
MariaDB를 기본 상태로 두면 보안에 취약하므로 mysql_secure_installation 스크립트를 실행해 기본 보안 설정을 적용합니다:
mysql_secure_installation
스크립트가 묻는 질문에 따라 익명 사용자 제거, 원격 root 로그인 비허용, 테스트 DB 삭제 등을 수행합니다. 완료 후 MariaDB에 root로 접속하여 Opigno용 데이터베이스와 사용자를 생성합니다:
mysql -u root -p
MariaDB [(none)]> CREATE DATABASE opigno;
MariaDB [(none)]> CREATE USER 'opignouser'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON opigno.* TO 'opignouser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit
주의: 위 예제의 ‘password’는 반드시 강력한 암호로 바꾸세요.
Opigno 다운로드 및 설치
Opigno 최신 패키지를 공식 사이트에서 받아 Apache 웹 루트로 압축 해제합니다:
wget https://www.opigno.org/sites/default/files/opigno-with-dependencies-v2.5.zip
mkdir /var/www/html/opigno
unzip opigno-with-dependencies-v2.5.zip -d /var/www/html/opigno/
파일 소유권과 권한을 적절히 설정합니다:
chown -R www-data:www-data /var/www/html/opigno
chmod -R 755 /var/www/html/opigno
Apache 가상호스트 구성
Opigno를 가리키는 Apache 가상호스트 파일을 생성합니다:
nano /etc/apache2/sites-available/opigno.conf
다음 내용을 추가하세요(도메인과 이메일을 실제 값으로 변경):
ServerAdmin [email protected]
DocumentRoot /var/www/html/opigno
ServerName example.com
Options FollowSymlinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/opigno_error.log
CustomLog ${APACHE_LOG_DIR}/opigno_access.log combined
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
파일 저장 후 가상호스트 활성화 및 mod_rewrite 활성화, Apache 재시작:
a2ensite opigno.conf
a2enmod rewrite
systemctl restart apache2
Apache 상태 확인:
systemctl status apache2
콘솔 출력 예시는 서버에 따라 달라질 수 있습니다. 로그 파일(/var/log/apache2/opigno_error.log)에서 에러를 확인하세요.
웹 설치 마법사 접속
브라우저에서 http://example.com 으로 접속하면 Opigno 설치 마법사가 시작됩니다.
설치 과정에서 언어 선택, 데이터베이스 정보(opigno 데이터베이스와 opignouser), 사이트 정보(사이트명, 관리자 이메일/계정)를 입력하면 설치가 완료됩니다.
축하합니다 — Opigno LMS가 설치되어 실행됩니다.
설치 후 검증 체크리스트
- 로그인: 웹으로 관리자 계정으로 로그인 가능한가?
- 코스 생성: 간단한 샘플 코스 생성 및 접근 테스트 완료
- 이메일: 비밀번호 재설정 등 이메일 전송 기능 작동 여부 확인
- 파일 업로드: 강의 자료(예: 20MB) 업로드 및 다운로드 테스트
- 백업: 데이터베이스 덤프 및 파일 시스템 백업 테스트
일반적인 문제와 해결책
페이지가 500 또는 하얀 화면으로 표시될 때
- /var/log/apache2/opigno_error.log와 /var/log/apache2/opigno_access.log 확인
- PHP 확장(특히 mbstring, intl, curl, gd)이 설치되어 있는지 확인
- 파일 권한(www-data 소유) 확인: chown -R www-data:www-data /var/www/html/opigno
데이터베이스 연결 오류
- MariaDB 사용자/비밀번호가 정확한지 확인
- GRANT 권한이 올바르게 설정되었는지 확인
- mysql -u opignouser -p 로 직접 접속 시도하여 권한 확인
리라이트(Pretty URLs) 동작 안 할 때
- a2enmod rewrite 활성화 여부 확인 및 Apache 재시작
- 가상호스트에서 AllowOverride All 설정이 적용되었는지 확인
PHP 메모리 부족 에러
- php.ini의 memory_limit 증가(예: 512M) 검토
보안 권장 사항
- HTTPS 적용: Let’s Encrypt(certbot)를 사용해 TLS 적용
- 방화벽: UFW로 포트 22, 80, 443만 허용
- 예: ufw allow OpenSSH; ufw allow ‘Apache Full’; ufw enable
- Fail2ban 설치로 무차별 로그인 차단
- MariaDB root 접근은 로컬로 제한, 주기적 패스워드 변경
- 정기적 보안 업데이트 및 패치
- 운영 환경에서는 기본 계정명(admin) 대신 별도 관리자 계정 사용
운영 및 유지보수 팁
- 백업: 매일 DB 덤프, 주기적 파일 시스템 스냅샷
- 모니터링: CPU/메모리/디스크 사용량 경보 설정
- 로그 순환: logrotate로 Apache 로그 관리
- 업그레이드 전략: 테스트 서버에서 먼저 업데이트 후 프로덕션에 적용
대안 배포 방식
- Docker 기반 배포: 컨테이너로 Opigno와 DB를 분리 운영하면 이식성과 격리성이 향상됩니다.
- Composer/Drupal 방식으로 최신 모듈만 설치: 의존성 관리를 세밀하게 제어하고 싶은 경우 권장
- Ubuntu 최신 LTS(예: 20.04/22.04)에서 설치: 더 최신 PHP 지원 및 보안 업데이트를 쉽게 받음
역할별 체크리스트
운영(DevOps)
- 방화벽/SSL 설정
- 자동 백업 및 모니터링 구성
- 시스템 패치 적용
개발자
- 커스텀 모듈 배포 테스트
- 퍼포먼스 튜닝(캐시, PHP-FPM, OPCache)
교육 관리자
- 강좌/사용자 초기 구성
- 인증/수료증 템플릿 설정
업그레이드 및 마이그레이션 참고
- 업그레이드 전 전체 백업 필수
- Drupal/Opigno의 모듈 호환성 확인
- 데이터베이스 스키마 변경이 있는지 릴리스 노트 확인
수용 기준(테스트 케이스)
- 관리자 페이지 로그인 성공
- 강의 생성 및 수강생 등록이 가능
- 수료증 발급 흐름 정상 작동
- 파일 업로드(최소 20MB) 성공
- HTTPS를 통해 서비스 가능
요약
Ubuntu 18.04 서버에 Opigno LMS를 설치하려면 LAMP 스택을 구성하고 PHP 설정, MariaDB 보안 및 Apache 가상호스트를 올바르게 설정하는 것이 핵심입니다. 설치 후 검증, 보안 강화, 백업과 모니터링을 반드시 구성하세요. 문제가 발생하면 로그 확인과 PHP 확장 모듈 설치 여부, 권한 설정을 우선 점검하세요.
중요: 운영 환경에서는 예시 패스워드와 기본 설정을 그대로 사용하지 마시고, 반드시 강력한 보안 설정을 적용하세요.
간단 공지문(발표용, 100–200단어):
Opigno LMS를 Ubuntu 18.04 서버에 설치하고 운영할 수 있도록 단계별 가이드를 제공했습니다. 본 문서는 LAMP 구성에서 MariaDB 보안, Apache 가상호스트 설정, 웹 설치 마법사로의 접속까지 포함하며, 설치 후 점검 리스트와 보안 권장 사항, 문제 해결 팁을 함께 제시합니다. 조직 내 학습 환경을 자체 호스팅하려는 IT팀과 교육관리자에게 즉시 적용 가능한 실무 중심의 지침입니다.
SNS 미리보기(제안)
- 제목: Ubuntu 18.04에 Opigno LMS 빠르게 설치하기
- 설명: Opigno 설치부터 보안·운영 체크리스트까지 한 번에 정리한 실무 가이드입니다.
추가 질문이 있거나 Docker/Ubuntu 20.04 기반 배포 예시가 필요하면 알려주세요.