OpenSource/Moodle

CentOS 8 Stream에서 Moodle 4.4 설치 방법

TABSPACE 2024. 5. 28. 01:36

 

웹서버 apache 설치

sudo yum install httpd

 

PHP8.3설치

sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf -y install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo dnf module list php
sudo dnf module reset php
sudo dnf module install php:remi-8.3

 

moodle에서 요구하는 PHP확장모듈 설치

yum install php-zip php-mysqli php-gd php-intl php-sodium php-soap php-opcache

 

moodle에서 요구하는 php설정 변경

vi /etc/php.ini

// line 436의 max_input_vars = 1000을 권장값인 5000으로 수정
 max_input_vars = 5000

// line 865의 upload_max_filesize = 2MB 를 원하는 최대업로드 사이즈로 수정.
 upload_max_filesize = 2048M

 

php설정 변경 적용위해 아파치 및 fpm재기동

sudo systemctl restart httpd
sudo systemctl restart php-fpm.service

 

웹서버 방화벽 개방

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent

sudo firewall-cmd --reload

 

아파치 실행

systemctl enable httpd
systemctl restart httpd

 

moodle web root 경로 생성 및 moodledata 디렉터리 생성 및 권한 설정

cd /
mkdir data
cd /data

mkdir moodledata
chmod 777 moodledata

 

apache vhost설정

vi /etc/httpd/conf/httpd.conf

//가장 마지막줄에 아래 내용 추가
Include /etc/httpd/conf/vhost.conf

<Directory "/data">
        AllowOverride None
        Require all granted
</Directory>

vi /etc/httpd/conf/vhost.conf

//아래 내용 추가
## lms.tabspace.kr start
<VirtualHost *:80>
 ServerAdmin abuse@tabspace.kr
 DocumentRoot /data/moodle
 ServerName lms.tabspace.kr
 ServerAlias www.lms.tabspace.kr
 ErrorLog logs/lms.tabspace.kr-error_log
 CustomLog logs/lms.tabspace.kr-access_log common
</VirtualHost>
## lms.tabspace.kr end

 

apache 재시작

systemctl restart httpd

 

git 설치

sudo yum install git

 

moodle 4.4 다운로드 및 디렉터리 권한 설정

- 버전업데이트의 용이성으로 인해, git으로의 설치를 권장함.

cd /data
git clone -b MOODLE_404_STABLE git://git.moodle.org/moodle.git
chmod -R 0777 /data/moodle

 

[참고] Moodle 공식 git에서 최신의 stable버전을 확인. 글작성시점 기준으로는 4.4버전이 최신

https://git.moodle.org/gw?p=moodle.git;a=summary

 

Official Moodle git projects

This is the primary location of the official moodle.git repository and related projects. Moodle repository is mirrored at github.com

git.moodle.org

 

 

mariadb 설치

yum repository 추가

wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
chmod a+x mariadb_repo_setup
./mariadb_repo_setup --mariadb-server-version="mariadb-10.11"


yum install MariaDB-server MariaDB-client MariaDB-common

 

mariadb start

systemctl restart mariadb
systemctl enable mariadb
systemctl status mariadb

 

mariadb root password 변경

mariadb-admin -uroot password '변경할비밀번호'

 

mariadb 접속

mariadb -u root -p

use mysql

 

moodle용 db생성

CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

moodle용 mariadb user생성

CREATE USER 'moodle'@'%' IDENTIFIED BY '비밀번호';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'moodle'@'%'
FLUSH PRIVILEGES;

 

ssl 인증서 발급을 위한 certbot 설치

sudo dnf install epel-release
sudo dnf install certbot python3-certbot-apache mod_ssl


sudo certbot --apache

// AH00526: Syntax error on line 85 of /etc/httpd/conf.d/ssl.conf:
// SSLCertificateFile: file '/etc/pki/tls/certs/localhost.crt' does not exist or is empty
// certbot이 실행안되고 위와 같이 오류난경우, 로컬 키 강제생성
sudo openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt

// 만약 apache 재실행 안되는 경우, 기본 httpd.conf에 ServerName을 localhost로 추가함
vi /etc/httpd/conf/httpd.conf
     98 ServerName localhost
     
     
# apache 재시작
systemctl restart httpd

 

 

웹브라우저에서 moodle을 호스팅하고자 하는 서버로 접속

언어선택

 

 

경로확인

 

mariadb선택

 

데이터베이스 접속정보 입력

 

 

 

 

 

 

 

 

 

투어가 실행되면 Moodle 4.4 설치완료

 

 

moodle 스케쥴링을 위한 crontab 설정

crontab -e
* * * * *    /usr/bin/php /data/moodle/admin/cli/cron.php >/dev/null