Moodle 설치 · 5 min read · Nov 02, 2025

우분투 24.04 서버에 Moodle LMS 설치하는 방법

Moodle은 전 세계 교육 기관에서 온라인 코스를 만들고, 콘텐츠를 관리하며, 협력 학습을 촉진하기 위해 사용하는 인기 있는 오픈 소스 플랫폼입니다. 우분투에서 Moodle을 실행하는 것은 우분투의 안정성, 보안성 및 다양한 소프트웨어 패키지에 대한 지원 때문에 일반적인 선택입니다. 이 과정은 웹 서버로 Apache 또는 Nginx, 데이터베이스로 MySQL 또는 PostgreSQL, 스크립팅 언어로 PHP와 같은 필수 구성 요소를 설치하는 것을 포함하며, 이 모든 것은 우분투에서 잘 지원됩니다. 이 설정은 기관이 특정 교육 요구에 맞게 조정할 수 있는 강력하고 확장 가능하며 사용자 정의 가능한 온라인 학습 환경을 만들 수 있도록 합니다.

이 튜토리얼에서는 우분투 24.04 서버에 Moodle을 설치하는 방법을 보여드리겠습니다. LAMP 스택으로 Moodle을 설치한 후, UFW 및 Certbot과 Letsencrypt를 통해 HTTPS로 Moodle을 안전하게 보호할 것입니다.

전제 조건

시작하기 전에 다음 사항을 확인하세요:

  • 우분투 24.04 서버.
  • 관리자 권한이 있는 비루트 사용자.
  • 서버 IP 주소를 가리키는 도메인 이름.
  • UFW 방화벽이 실행 중입니다.

종속성 설치

Moodle은 PHP로 작성된 오픈 소스 학습 플랫폼입니다. Moodle을 설치하려면 Apache/Nginx, MySQL/MariaDB/PostgreSQL 및 PHP가 필요합니다. 이 섹션에서는 우분투에 LAMP 스택(리눅스, 아파치, 마리아DB 및 PHP)을 설치하고 그 위에 Moodle을 설정합니다.

시작하려면 다음 명령을 실행하여 우분투 패키지 인덱스를 업데이트하세요.

sudo apt update

update repo

이제 아래 명령을 실행하여 LAMP 스택(Apache, MariaDB 및 PHP) 종속성을 설치하세요. 설치를 확인하려면 ‘Y’를 입력하세요.

sudo apt install apache2 mariadb-server php-cli php-intl php-xmlrpc php-soap php-mysql php-zip php-gd php-tidy php-mbstring php-curl php-xml php-pear php-bcmath libapache2-mod-php

install lamp stack

설치가 완료되면 아래 명령으로 Apache 서비스 상태를 확인하세요.

sudo systemctl is-enabled apache2  
sudo systemctl status apache2

다음에서 Apache 웹 서버가 실행 중임을 확인할 수 있습니다.

check apache2

다음 명령으로 MariaDB 데이터베이스 서버를 확인하세요. MariaDB 서버가 실행 중임을 확인할 수 있습니다.

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

check mariadb

마지막으로 아래 명령으로 PHP 버전과 활성화된 확장을 확인하세요.

php -v  
php -m

우분투 서버에 PHP 8.3이 설치되어 있음을 확인할 수 있습니다.

check php

MariaDB 서버 구성

종속성이 설치된 후, Moodle에 필요한 기본 MariaDB 저장 엔진을 ‘InnoDB‘로 변경해야 합니다. 이는 MariaDB 서버 구성 파일을 편집하여 수행할 수 있습니다. 그런 다음, ‘mariadb_secure_installation’ 유틸리티를 사용하여 MariaDB 서버 배포를 안전하게 보호할 것입니다.

‘nano’ 편집기로 MariaDB 서버 구성 파일 ‘/etc/mysql/mariadb.conf.d/50-server.cnf‘를 엽니다.

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

다음 구성을 ‘[mysqld]’ 섹션 아래에 추가하세요. 이렇게 하면 기본 저장 엔진이 ‘innodb‘로 변경됩니다.

innodb_file_format = Barracuda   
default_storage_engine = innodb  
innodb_large_prefix = 1  
innodb_file_per_table = 1

파일을 저장하고 편집기를 종료하세요.

이제 아래 ‘systemctl’ 명령을 실행하여 MariaDB 서버를 재시작하고 변경 사항을 적용하세요.

sudo systemctl restart mariadb

마지막으로 아래 ‘mariadb_secure_installation’ 명령을 실행하여 MariaDB 루트 사용자 설정 및 배포를 안전하게 보호하세요.

sudo mariadb_secure_installation

이 과정에서 다음과 같은 질문을 받게 됩니다:

  • 루트 비밀번호 없이 기본 MariaDB 서버 설치의 경우 비밀번호에 대한 질문이 있을 때 ENTER를 누르세요.
  • MariaDB 루트 사용자의 로컬 인증은 기본적으로 보호되므로, 인증 방법을 ‘unix_socket’으로 변경하라는 질문에 ‘n’을 입력하세요.
  • 새 MariaDB 루트 비밀번호를 생성하려면 ‘Y’를 입력하세요. 그런 다음, MariaDB 루트 사용자에 대한 강력한 비밀번호를 입력하고 반복하세요.
  • MariaDB 루트 사용자에 대한 원격 인증을 비활성화하라는 질문에 ‘Y’를 입력하여 동의하세요.
  • 기본 MariaDB 서버 설치에는 ‘test’ 데이터베이스가 있으며 익명 사용자가 이를 접근할 수 있습니다. 기본 데이터베이스 ‘test’를 제거하고 익명 권한을 제거하기 위해 두 설정 모두에 대해 ‘Y’를 입력하세요.
  • 마지막으로 테이블 권한을 다시 로드하라는 질문에 ‘Y’를 입력하여 확인하세요.

데이터베이스 및 사용자 생성

이제 MariaDB 서버를 구성했으므로, ‘mariadb’ 클라이언트를 통해 새 데이터베이스와 사용자를 생성해 보겠습니다.

아래 ‘mariadb’ 클라이언트 명령으로 MariaDB 서버에 로그인하세요. 프롬프트가 표시되면 MariaDB 루트 비밀번호를 입력하세요.

sudo mariadb -u root -p

이제 다음 쿼리를 실행하여 새 데이터베이스 ‘moodle‘, 사용자 ‘moodle‘를 생성하고 비밀번호를 자신의 정보로 변경하세요.

CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  
GRANT ALL ON moodle.* TO 'moodle'@'localhost' IDENTIFIED BY "MoodlePassw0rd";  
FLUSH PRIVILEGES;  
QUIT

create database

PHP 구성

이 섹션에서는 PHP 구성 ‘php.ini’를 편집하고 Moodle에 필요한 몇 가지 기본 값을 변경합니다.

‘nano’ 편집기로 PHP 구성 ‘/ etc/php/8.3/apache2/php.ini‘를 엽니다.

sudo nano /etc/php/8.3/apache2/php.ini

다음과 같이 기본 구성을 변경하세요. ‘memory_limit’ 및 ‘date_timezone’ 옵션을 자신의 정보로 조정하세요.

memory_limit = 256M  
upload_max_filesize = 60M  
max_execution_time = 300  
date.timezone = Europe/Amsterdam  
max_input_vars = 5000

작업이 끝나면 파일을 저장하고 종료하세요.

마지막으로 아래 명령을 실행하여 Apache 웹 서버를 재시작하고 PHP에 대한 변경 사항을 적용하세요.

sudo systemctl restart apache2

Moodle 소스 코드 다운로드

이 시점에서 LAMP 스택을 설치하고 구성했습니다. 이제 Moodle 소스 코드를 다운로드하고 Moodle 설치 디렉토리를 구성하겠습니다.

/var/www‘ 디렉토리로 이동하여 ‘wget’ 명령을 사용하여 Moodle 소스 코드를 다운로드하세요. 최신 버전의 링크를 얻으려면 Moodle 다운로드 페이지를 방문하세요. 이 경우 최신 안정 버전 Moodle 40.4를 다운로드합니다.

cd /var/www  
wget https://download.moodle.org/download.php/direct/stable404/moodle-latest-404.tgz

Moodle이 다운로드되면 아래 ‘tar’ 명령으로 압축을 풉니다. Moodle 소스 코드는 ‘/var/www/moodle‘ 디렉토리에 있습니다.

tar xvf moodle-latest-404.tgz

마지막으로 아래 명령을 실행하여 새 데이터 디렉토리 ‘/ var/www/moodledata‘를 생성하고, Moodle 디렉토리의 소유권을 ‘www-data’ 사용자로 변경하며, Moodle과 데이터 디렉토리가 모두 ‘www-data’ 사용자에 의해 쓰기 가능하도록 합니다.

sudo mkdir -p /var/www/moodledata  
sudo chown -R www-data:www-data /var/www/moodle /var/www/moodledata  
sudo chmod u+rwx /var/www/moodle /var/www/moodledata

Apache 가상 호스트 설정

Moodle을 다운로드한 후, Moodle을 실행하기 위해 새로운 Apache 가상 호스트 파일을 생성할 것입니다. 도메인이 준비되어 있고 우분투 서버 IP 주소로 해결되었는지 확인하세요.

먼저 아래 ‘a2enmod’ 명령을 실행하여 ‘rewrite’ 모듈을 활성화하세요.

sudo a2enmod rewrite

‘nano’ 편집기로 새로운 Apache 가상 호스트 파일 ‘/etc/apache2/sites-available/moodle.conf‘를 생성합니다.

sudo nano /etc/apache2/sites-available/moodle.conf

다음 구성을 삽입하고 도메인 이름을 자신의 정보로 변경하세요.

  
 DocumentRoot /var/www/moodle/  
 ServerName moodle.howtoforge.local  
 ServerAdmin [email protected]  
   
   
 Options +FollowSymlinks  
 AllowOverride All  
 Require all granted  
   
  
 ErrorLog /var/log/apache2/moodle_error.log  
 CustomLog /var/log/apache2/moodle_access.log combined  

작업이 끝나면 파일을 저장하고 편집기를 종료하세요.

이제 아래 명령을 실행하여 ‘moodle.conf’ 파일을 활성화하고 Apache 구문을 확인하세요. 올바른 Apache 구문이 있으면 ‘Syntax is OK’라는 출력을 볼 수 있습니다.

sudo a2ensite moodle.conf  
sudo apachectl configtest

마지막으로 아래 ‘systemctl’ 명령을 실행하여 Apache를 재시작하고 변경 사항을 적용하세요.

sudo systemctl restart apache2

UFW로 Moodle 보호

이 단계에서는 UFW(간단한 방화벽)를 통해 HTTP 및 HTTPS 프로토콜을 열 것입니다. 시작하기 전에 UFW가 실행 중인지 확인하세요.

아래 명령을 실행하여 UFW에서 ‘Apache Full’ 프로필을 활성화하세요. 이렇게 하면 HTTP 및 HTTPS 트래픽이 허용됩니다.

sudo ufw allow 'Apache Full'

이제 아래 명령으로 UFW에서 활성화된 규칙 목록을 확인하세요. ‘Apache Full’ 프로필이 활성화되어 있음을 확인할 수 있습니다.

sudo ufw status

HTTPS로 Moodle 보호

방화벽 외에도 SSL/TLS 인증서를 생성하고 Moodle을 HTTPS로 보호할 것입니다. 이 섹션에서는 Certbot과 Letsencrypt를 통해 Moodle에 HTTPS를 구현합니다. Moodle을 로컬에 설치하는 경우 이 단계를 건너뛰세요.

아래 명령으로 ‘certbot’ 및 ‘python3-certbot-apache’ 패키지를 설치하세요.

sudo apt install certbot python3-certbot-apache -y

설치가 완료되면 아래 ‘certbot’ 명령을 실행하여 Moodle에 대한 SSL/TLS 인증서를 생성하세요. 도메인 이름과 이메일 주소를 자신의 정보로 변경하세요.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d moodle.howtoforge.local

프로세스가 완료되면 SSL 인증서는 ‘/etc/letsencrypt/live/domain.com‘ 디렉토리에 저장되며, Moodle 설치는 자동으로 HTTPS로 보호됩니다.

Moodle 설치

https://moodle.howtoforge.local/와 같은 Moodle 도메인 이름을 방문하면 설치 마법사를 볼 수 있습니다.

기본 언어를 선택하고 다음을 클릭하세요.

language

Moodle의 데이터 디렉토리 ‘/var/www/moodledata’를 입력하세요.

moodle data

MariaDB를 데이터베이스 드라이버로 선택하세요.

db driver

MariaDB 데이터베이스 및 사용자 세부 정보를 입력하세요.

database

저작권 고지를 확인하려면 계속을 클릭하세요.

copyright notices

서버 검사 섹션에서 환경이 준비되었는지 확인하세요.

system checks

이제 Moodle 설치가 진행됩니다.

installation

설치가 완료되면 새로운 관리자 사용자, 이메일 및 Moodle 비밀번호를 입력하세요.

setup admin

이제 다음과 같은 Moodle 대시보드를 볼 수 있습니다:

moodle dashboard

결론

축하합니다! 우분투 24.04 서버에 Moodle 설치를 완료했습니다. LAMP 스택(리눅스, 아파치, 마리아DB 및 PHP)에서 Moodle 40.4를 설치하고, UFW(간단한 방화벽) 및 Certbot과 Letsencrypt를 통해 Moodle을 HTTPS로 안전하게 보호했습니다.

Share: X/Twitter LinkedIn

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

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