웹사이트 검색

Ubuntu 20.04에 Moodle 학습 플랫폼을 설치하는 방법


Moodle은 웹 및 모바일용으로 구축된 세계에서 가장 인기 있고 강력하며 무료인 오픈 소스 온라인 학습(e-러닝) 관리 플랫폼입니다. 이는 학교, 대학 및 관련 기관이 코스 및 커리큘럼을 중단하지 않고 학생들에게 언제 어디서나 유연한 학습 플랫폼을 제공할 수 있도록 다양한 활동과 교육 도구를 제공합니다.

일반적인 기능 중 일부에는 현대적이고 사용하기 쉬운 인터페이스, 개인화된 대시보드, 공동 작업 도구 및 활동, 올인원 달력, 편리한 파일 관리, 간단하고 직관적인 텍스트 편집기, 알림 및 진행 상황 추적이 포함됩니다.

중요한 것은 Moodle이 추가 활동, 블록, 테마 등을 지원하는 수천 개가 넘는 플러그인을 사용하여 확장성이 뛰어나다는 것입니다.

이 문서에서는 Ubuntu 20.04NGINX 및 MySQL/MariaDB 데이터베이스가 포함된 Moodle 학습 플랫폼의 최신 버전을 설치하는 방법과 이전 버전.

서버 요구 사항:

  • LEMP 스택이 설치된 새로 설치된 Ubuntu 20.04 서버.

Ubuntu 서버에 LEMP 스택을 설치한 후에는 아래 설명에 따라 서버에 Moodle 설정을 계속 진행할 수 있습니다.

이 페이지에서

  • Moodle 애플리케이션을 위한 DNS 레코드 설정
  • 우분투 서버에 무들 설치
  • 무들 애플리케이션을 제공하도록 NGINX 구성
  • 웹 설치 프로그램을 통해 Moodle 설치 완료하기
  • Let’s Encrypt를 사용하여 Moodle 애플리케이션에서 HTTPS 활성화

Moodle 애플리케이션을 위한 DNS 레코드 설정

1. 사용자가 Moodle 인스턴스에 액세스하려면 이에 대한 하위 도메인을 생성해야 하므로 DNS 를 생성해야 합니다. 이를 달성하기 위한 레코드입니다. 이 가이드의 경우 테스트 도메인은 testprojects.me이므로 learning.testprojects.me와 같은 하위 도메인을 만들어야 합니다.

따라서 도메인 등록 기관의 웹 콘솔에 로그인하여 도메인의 고급 설정에 액세스하고 A 유형의 새 레코드 추가를 클릭하세요. 호스트는 학습해야 합니다. (또는 원하는 단어), 값은 Ubuntu 서버의 공용 IP 주소여야 합니다.

우분투 서버에 무들 설치

2. 다음으로, 그림과 같이 적절한 패키지 관리자를 사용하여 Moodle에 필요한 PHP 확장 프로그램과 라이브러리를 설치해야 합니다.

sudo apt update
sudo apt install php-common php-iconv php-curl php-mbstring php-xmlrpc php-soap php-zip php-gd php-xml php-intl php-json libpcre3 libpcre3-dev graphviz aspell ghostscript clamav

3. 다음으로 Moodle 시스템용 데이터베이스를 만듭니다. MySQL 데이터베이스 관리 셸에 로그인하고 다음과 같이 데이터베이스를 만듭니다.

sudo mysql

MariaDB [(none)]> CREATE DATABASE moodle;
MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'moodleadmin'@'localhost' IDENTIFIED BY 'Secur3P@zzwd';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit;

4. 앞서 언급했듯이 이 가이드에서는 최신 버전인 Moodle(작성 당시 버전 3.9)을 다운로드하여 설치합니다. 다음 wget 명령을 실행하여 Moodle 패키지를 가져오고 tar 명령을 사용하여 각각 추출합니다. 그런 다음 ls 명령을 사용하여 그림과 같이 무들 디렉터리가 /var/www/html/ 아래에 있는지 확인합니다.

wget -c https://download.moodle.org/download.php/direct/stable39/moodle-latest-39.tgz
sudo tar -zvxf moodle-latest-39.tgz -C /var/www/html/
ls /var/www/html/

5. 다음으로, 다음 명령을 실행하여 Moodle 디렉터리에 적절한 권한을 설정합니다.

sudo chown www-data:www-data -R /var/www/html/moodle
sudo chmod 775 -R /var/www/html/moodle

6. 다음으로 Moodle이 업로드된 파일을 저장하고 그림과 같이 권한을 설정할 수 있는 Moodle data 디렉터리를 만듭니다.

sudo mkdir -p /var/moodledata
sudo chmod 775 -R /var/moodledata
sudo chown www-data:www-data -R  /var/moodledata

7. 그런 다음 패키지와 함께 제공된 샘플 구성 파일에서 Moodle 기본 구성 파일을 만들고 엽니다.

cd /var/www/html/moodle/
sudo cp config-dist.php config.php
sudo vim config.php

데이터베이스 구성 섹션을 찾은 후 다음 스크린샷과 같이 모든 Moodle 데이터가 저장될 데이터베이스를 구성합니다.

$CFG->dbtype    = 'mariadb';      // 'pgsql', 'mariadb', 'mysqli', 'sqlsrv' or 'oci'
$CFG->dblibrary = 'native';     // 'native' only at the moment
$CFG->dbhost    = 'localhost';  // eg 'localhost' or 'db.isp.com' or IP
$CFG->dbname    = 'moodle';     // database name, eg moodle
$CFG->dbuser    = 'moodleadmin';   // your database username
$CFG->dbpass    = 'Secur3P@zzwd';   // your database password
$CFG->prefix    = 'mdl_';       // prefix to use for all table names

또한 표시된 대로 Moodle 웹사이트 위치와 Moodle 데이터 디렉터리 위치를 구성합니다.

$CFG->wwwroot   = 'http://learning.testprojects.me';
$CFG->dataroot  = '/var/moodledata';

파일을 닫고 저장하세요. 그런 다음 다음 섹션에 설명된 대로 Moodle 사이트를 서버로 제공하도록 NGINX를 구성하세요.

무들 애플리케이션을 제공하도록 NGINX 구성

8. NGINX가 Moodle 사이트에 서버를 제공하려면 NGINX 구성 아래 디렉토리에 새 서버 블록 구성을 만들어야 합니다. >/etc/nginx/conf.d/.

sudo vim /etc/nginx/conf.d/moodle.conf

다음 구성을 복사하여 붙여넣고 learning.testprojects.me를 하위 도메인으로 바꿉니다. 게다가, fastcgi_pass 지시어는 PHP-FPM이 FastCGI 요청을 받아들이는 주소를 가리켜야 합니다(/etc/php/7.4/fpm/pool.d/www.conf 를 확인하세요). 파일을 참조하세요).

server{
   listen 80;
    server_name learning.testprojects.me;
    root        /var/www/html/moodle;
    index       index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ ^(.+\.php)(.*)$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_index           index.php;
        fastcgi_pass           unix:/run/php/php7.4-fpm.sock;
        include                 /etc/nginx/mime.types;
        include                 fastcgi_params;
        fastcgi_param           PATH_INFO       $fastcgi_path_info;
        fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

파일을 저장하고 닫습니다.

9. 그런 다음 위의 변경을 수행한 후 NGINX 구성이 올바른지 확인한 다음 NGINX 서비스를 정상적으로 다시 시작합니다.

sudo nginx -t
sudo systemctl reload nginx

웹 설치 프로그램을 통해 Moodle 설치 완료하기

10. 이제 웹 브라우저를 열고 하위 도메인(예: learning.testprojects.me)을 사용하여 탐색하여 Moodle 웹 설치 프로그램에 액세스합니다.

http://learning.testprojects.me

환영 페이지가 로드되면 메시지를 자세히 읽고 계속을 클릭하세요.

11. 다음으로 설치 프로그램은 시스템이 요구 사항을 충족하는지 확인합니다. 모든 것이 정상이면 아래로 스크롤하여 계속을 클릭하여 실제 파일 설치 및 데이터베이스 설정을 시작합니다. 개요.

설치 프로그램은 사이트가 HTTPS에서 실행되지 않는다는 경고를 표시하므로 지금은 경고를 무시하세요. 마지막 섹션에서는 무료 Let's Encrypt 인증서를 사용하여 Moodle에서 HTTPS를 활성화하는 방법을 다룹니다.

설치가 완료되면 계속을 클릭하세요.

12. 다음으로 계정 사용자 이름, 비밀번호, 이름과 성, 이메일 주소를 생성하여 Moodle 사이트의 관리자 계정을 구성합니다. 그런 다음 아래로 스크롤하여 계정 업데이트를 클릭하세요.

13. 다음으로, 다음 스크린샷과 같이 Moodle 사이트 첫 페이지 설정을 구성합니다. 그런 다음 아래로 스크롤하여 업데이트를 클릭하세요.

14. 웹 설치 프로그램이 자동으로 새로운 Moodle 사이트에 로그인합니다. 화면의 지시에 따라 사이트 등록을 완료할 수 있습니다.

Let's Encrypt를 사용하여 Moodle 애플리케이션에서 HTTPS 설정

15. Moodle 사이트를 보호하려면 HTTPS를 활성화해야 합니다. 이 가이드에서는 Let’s Encrypt 무료이며 신뢰할 수 있는 SSL/TLS 인증서를 사용합니다. Let’s Encrypt를 사용하는 또 다른 이점은 자동화된다는 것입니다.

따라서 터미널로 돌아가서 다음 명령을 실행하여 Ubuntu에 certbot(Let's Encrypt 인증서를 자동으로 사용하여 수동으로 관리되는 사이트에서 HTTPS를 활성화하는 무료 오픈 소스 도구)를 설치하세요.

sudo snap install --classic certbot

16. 그런 다음 다음 명령을 실행하여 인증서를 얻고 CertbotNGINX 구성을 편집하여 새 인증서를 자동으로 구성하도록 합니다.

sudo certbot --nginx

17. 다음으로 Moodle 사이트 구성 파일로 돌아갑니다.

sudo vim /var/www/html/moodle/config.php 

다음 스크린샷과 같이 URL을 HTTP에서 HTTPS로 변경합니다.

$CFG->wwwroot   = 'https://learning.testprojects.me';

18. 마지막으로 Moodle 사이트가 현재 HTTPS에서 실행되고 있는지 브라우저에서 확인하세요.

https://learning.testprojects.me

지금은 여기까지입니다! 자세한 내용, 구성 옵션 및 사용 가이드를 보려면 Moodle 3.9 문서를 참조하세요.