웹사이트 검색

CentOS 8에서 Nginx와 함께 Moodle 학습 플랫폼을 설치하는 방법


Moodle은 강력한 온라인 학습 사이트 구축을 위한 세계에서 가장 인기 있는 학습 관리 시스템입니다. 선택할 수 있는 다양한 활동과 교육 도구가 포함되어 있으며 평가 관리를 지원하고 맞춤형 인증서와 함께 제공됩니다. 또한 강력한 화상 회의 도구를 사용하여 학생들과 실시간으로 커뮤니케이션할 수 있습니다. 게다가 모바일 지원이 가능하므로 학생들은 모바일 장치에서 학습할 수 있습니다.

무들 서버 요구 사항

  • 운영 체제: LEMP 스택이 설치된 CentOS 8 또는 RHEL 8 서버의 최소 설치.
  • 디스크 공간: Moodle의 경우 200MB, 콘텐츠를 저장하는 데에는 5GB가 아마도 현실적인 최소 공간일 것입니다.
  • 프로세서: 1GHz(최소), 2GHz 듀얼 코어 이상이 권장됩니다.
  • 메모리: 512MB(최소), 1GB 이상이 권장됩니다. 8GB 이상은 대규모 프로덕션 서버에 있을 가능성이 높습니다.

이 페이지에서

  • Moodle 웹사이트용 도메인 DNS 레코드 생성
  • CentOS 8 서버에 Moodle 학습 플랫폼 설치
  • Moodle 웹사이트를 제공하도록 NGINX 구성하기
  • 웹 설치 프로그램을 통해 Moodle 설치 완료
  • Let’s Encrypt를 사용하여 Moodle 사이트에서 HTTPS 활성화

Moodle 웹사이트용 도메인 DNS 레코드 생성

1. 사용자가 Moodle 온라인 학습 사이트에 액세스하는 데 사용할 하위 도메인을 만드는 것부터 시작하세요. 예를 들어 도메인 이름이 testprojects.me인 경우 learning.testprojects.me라는 하위 도메인을 만들 수 있습니다.

도메인 이름의 고급 DNS 설정을 열고 다음 이미지와 같이 A 레코드를 추가하세요.

CentOS 8 서버에 Moodle 설치

2. Moodle을 설치하기 전에 서버에 필수 PHP 확장 프로그램이 있는지 확인하고 다음 명령을 실행하여 설치할 수 있습니다.

dnf 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 -u root -p

그런 다음 데이터베이스, 데이터베이스 사용자를 생성하고 사용할 보안 비밀번호를 생성합니다.

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

4. 이제 공식 무들 프로젝트 웹사이트에서 최신 버전의 Moodle(작성 당시 3.9)을 다운로드하고 아카이브 파일을 추출한 다음 이를 웹 루트(/var/www/html/) 디렉토리로 옮긴 다음, 다음과 같이 웹 서버가 Moodle 디렉토리에 액세스할 수 있도록 적절한 권한과 소유권을 설정하십시오.

wget -c https://download.moodle.org/download.php/direct/stable39/moodle-latest-39.tgz
tar -xzvf  moodle-latest-39.tgz
mv moodle /var/www/html/
chmod 775 -R /var/www/html/moodle
chown nginx:nginx -R /var/www/html/moodle

5. 다음으로, Moodle 인터페이스에 의해 업로드되거나 생성되는 파일의 위치인 moodledata 디렉토리를 생성한 다음 적절한 권한을 할당하고 웹 서버가 이에 대한 읽기 및 쓰기 액세스를 허용하는 소유권:


mkdir -p /var/www/html/moodledata
chmod 770 -R /var/www/html/moodledata
chown :nginx -R /var/www/html/moodledata

6. 그런 다음 Moodle 설치 디렉터리로 이동하고 샘플 config.dist.php<에서 config.php 파일을 만듭니다. 파일을 제공한 다음 데이터베이스 연결 매개변수, 사이트 위치, 무들데이터 디렉토리를 찾을 수 있는 위치 등 Moodle 플랫폼에 대한 일부 주요 설정을 구성하기 위해 이를 열어서 편집합니다.

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

올바른 데이터베이스 유형, 올바른 데이터베이스 호스트, 데이터베이스 이름, 데이터베이스 사용자 및 사용자 비밀번호를 설정하십시오.

$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    = 'moodledb';     // database name, eg moodle
$CFG->dbuser    = 'moodleadmin';   // your database username
$CFG->dbpass    = 'p@zzwd0L2';   // your database password
$CFG->prefix    = 'mdl_';       // prefix to use for all table names

7. 또한 Moodle 사이트에 액세스하는 데 사용되는 URL을 설정합니다. 이는 Moodle 웹 파일이 있는 wwwroot의 위치를 지정합니다. 또한 dataroot(modledata 디렉터리):

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

Moodle 웹사이트를 제공하도록 NGINX 구성하기

8. 이 섹션에서는 Moodle 애플리케이션을 제공하기 위해 NGINX를 구성해야 합니다. 표시된 대로 NGINX 구성에서 이를 위한 서버 블록을 생성해야 합니다.

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

서버 블록 구성 파일에 다음 구성을 복사하여 붙여넣습니다. 서버 이름을 위에서 생성한 하위 도메인 이름으로 바꾸고 fastcgi_passphp-fpm을 가리켜야 합니다(참고 CentOS 8에서 PHP-FPM/etc/nginx/conf.d/에 정의된 주소를 사용하여 FastCGI 요청을 수락합니다. php-fpm.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            php-fpm;
        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를 다시 시작하고 최근 변경 사항을 적용하려면 php-fpm 서비스를 사용하세요.

nginx -t
systemctl restart nginx
systemctl restart php-fpm

10. 시스템에서 SELinux를 활성화한 경우 다음 명령을 실행하여 Moodle 웹 파일에 액세스하기 위한 올바른 컨텍스트를 설정합니다. 섬기는 사람:

setsebool -P httpd_can_network_connect on
chcon -R --type httpd_sys_rw_content_t /var/www/html

11. 또한 NGINX에 대한 트래픽을 허용하려면 방화벽에서 HTTPHTTPS 서비스가 열려 있는지 확인하세요. 웹 서버:

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

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

12. Moodle 웹 설치 프로그램에 액세스하려면 웹 브라우저를 열고 위에서 만든 하위 도메인을 사용하여 탐색하세요.

http://learning.testprojects.me

시작 페이지가 로드되면 이용약관을 자세히 읽고 계속을 클릭하세요.

13. 다음으로 웹 설치 프로그램은 시스템이 지정된 버전의 Moodle 사이트를 실행하기 위한 요구 사항을 충족하는지 확인합니다. 아래로 스크롤하시면 더 많은 정보를 보실 수 있습니다.

14. 설치 프로그램은 HTTPS가 활성화되지 않았다고 불평하고 지금은 해당 오류를 무시하고(다음 섹션에서는 Moodle에서 HTTPS를 활성화하는 방법을 보여줍니다) 다음을 클릭합니다. 계속하여 웹 파일의 실제 설치를 시작합니다.

15. 이제 설치 프로그램은 다음 스크린샷과 같이 Moodle 파일의 실제 설치를 시작합니다. 완료되면 계속을 클릭하세요.

16. 다음 단계에서는 사용자 이름, 비밀번호, 이름, 성, 이메일 주소를 업데이트하여 Moodle 사이트의 관리자 계정을 업데이트해야 합니다. 그런 다음 페이지를 아래로 스크롤하고 프로필 업데이트를 클릭합니다.

17. 그런 다음 Moodle 사이트 첫 페이지 설정을 업데이트하세요. 그런 다음 아래로 스크롤하여 업데이트를 클릭하여 Moodle 사이트 사용을 시작하세요.

18. 다음으로 화면의 지시에 따라 사이트를 등록해야 합니다. 대시보드를 클릭하면 대시보드로 이동할 수 있습니다.

Let's Encrypt를 사용하여 Moodle 사이트에서 HTTPS 설정

HTTPS는 사이트에 첫 번째 보안 계층을 추가하여 사용자와 Moodle 애플리케이션(특히 수신을 받는 NGINX 웹 서버) 간의 보안 통신을 가능하게 합니다. 요청하고 응답을 전달합니다).

상업용 CA에서 SSL/TLS 인증서를 구매하거나 모든 최신 웹 브라우저에서 무료로 인식되는 Let's Encrypt를 사용할 수 있습니다. 이 가이드에서는 Let's Encrypt를 사용합니다.

19. Let's Encrypt 인증서 배포는 certbot 도구를 사용하여 자동으로 관리됩니다. 다음 명령을 사용하여 certbot 및 기타 필수 패키지를 설치할 수 있습니다.

dnf install certbot python3-certbot-nginx

20. 그런 다음 다음 명령을 실행하여 Let's Encrypt 인증서를 얻고 Certbot이 NGINX 구성을 자동으로 편집하여 이를 제공하도록 합니다(또한 구성합니다). HTTP가 자동으로 HTTPS로 리디렉션됩니다.

certbot --nginx

21. 그런 다음 다음 명령을 실행하여 Let's Encrypt SSL/TLS 인증서의 자동 갱신을 활성화합니다.

echo "0 0,12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null

22. 다음으로 Moodle 구성을 업데이트하여 HTTPS 사용을 시작하세요.

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

wwwroot URL을 HTTP에서 HTTPS로 변경합니다.

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

23. 마지막으로, Moodle 사이트가 현재 HTTPS에서 실행되고 있는지 확인하세요.

지금은 그게 다야! 새로운 학습 플랫폼 실행에 대한 자세한 내용과 구성 옵션을 보려면 Moodle 웹사이트로 이동하여 공식 문서를 읽어보세요.