Cách cài đặt Moodle 3.2 trên Ubuntu 16.04

theanh

Administrator
Nhân viên
Moodle là một phần mềm hệ thống quản lý học tập nguồn mở được viết bằng PHP, phát hành theo Giấy phép Công cộng GNU. Nó được sử dụng cho giáo dục từ xa, các dự án học trực tuyến, học tập kết hợp và các mục đích tương tự. Moodle là từ viết tắt của 'Môi trường học tập động hướng đối tượng mô-đun', được Martin Dougiamas phát triển để giúp các nhà giáo dục và giáo viên tạo ra các khóa học trực tuyến tập trung vào tương tác và xây dựng nội dung hợp tác.

Trong hướng dẫn này, tôi sẽ hướng dẫn bạn cách xây dựng trung tâm học tập của riêng bạn bằng Moodle. Chúng ta sẽ cài đặt và cấu hình Moodle trên máy chủ web Nginx, cơ sở dữ liệu MySQL và PHP-FPM7. Đối với hệ điều hành, chúng ta sẽ sử dụng Ubuntu 16.04 (Xenial Xerus).

Những gì chúng ta sẽ làm:
  1. Cài đặt Nginx.
  2. Cài đặt và cấu hình PHP-FPM7.0.
  3. Cài đặt và cấu hình MySQL.
  4. Tải xuống và cấu hình Moodle.
  5. Cấu hình SSL và Virtual Host.
  6. Cài đặt Moodle.
  7. Kiểm tra.
Điều kiện tiên quyết
  • Máy chủ Ubuntu 16.04.
  • Quyền root.

Bước 1 - Cài đặt Nginx​

Trong hướng dẫn này, Nginx được sử dụng làm máy chủ web cho Moodle. Nginx có sẵn trên kho lưu trữ Ubuntu và có thể dễ dàng cài đặt bằng lệnh apt.
Mã:
apt-get install -y nginx
Khi quá trình cài đặt hoàn tất, hãy khởi động Nginx và cho phép nó tự động khởi động khi khởi động.
Mã:
systemctl start nginx
systemctl enable nginx
Nginx sẽ chạy trên cổng 80, hãy kiểm tra xem cổng đã mở chưa bằng lệnh bên dưới và đảm bảo Nginx sử dụng cổng 80.
Mã:
netstat -plntu

Bước 2 - Cài đặt và cấu hình PHP-FPM7​

Moodle dựa trên PHP, vì vậy PHP phải được cài đặt trên hệ thống. Chúng tôi sẽ sử dụng PHP-FPM vì chúng tôi đang sử dụng máy chủ web Nginx. Đối với phiên bản này, chúng tôi sẽ sử dụng PHP-FPM7.0, được hỗ trợ bởi phiên bản 'Moodle 3.2 ổn định'.

Cài đặt PHP-FPM7.0 và tất cả các tiện ích mở rộng cần thiết của Moodle bằng lệnh apt duy nhất bên dưới.
Mã:
sudo apt-get install -y graphviz aspell php7.0-fpm php7.0-cli php7.0-pspell php7.0-curl php7.0-gd php7.0-intl php7.0-mysql php7.0-xml php7.0-xmlrpc php7.0-ldap php7.0-zip php7.0-json php7.0-opcache php7.0-readline php7.0-mbstring php7.0-soap
Khi quá trình cài đặt tất cả các gói hoàn tất, hãy chuyển đến thư mục cấu hình PHP và chỉnh sửa các tệp php.ini.
Mã:
cd /etc/php/7.0/
Chỉnh sửa tệp fpm php.ini bằng vim.
Mã:
vim fpm/php.ini
Bỏ chú thích dòng bên dưới và đổi giá trị thành 0.
Mã:
cgi.fix_pathinfo=0
Lưu php.ini và thoát khỏi trình soạn thảo.

Chỉnh sửa tệp cli php.ini.
Mã:
vim cli/php.ini
Bỏ chú thích dòng cgi.fix bên dưới và đổi giá trị thành 0.
Mã:
cgi.fix_pathinfo=0
Lưu tệp và thoát khỏi vim.

Tiếp theo, chỉnh sửa tệp cấu hình php-fpm www.conf.
Mã:
vim fpm/pool.d/www.conf
Bỏ chú thích dòng giới hạn bảo mật và đảm bảo giá trị là .php.
Mã:
security.limit_extensions = .php
Lưu tệp và thoát khỏi vim.

Cấu hình PHP-FPM đã hoàn tất. Bây giờ chúng ta có thể khởi động PHP-FPM và thêm nó để tự động khởi động khi khởi động.
Mã:
systemctl enable php7.0-fpm
systemctl start php7.0-fpm
Theo mặc định, PHP-FPM trên ubuntu sẽ cung cấp một tệp socket để Nginx kết nối, hãy đảm bảo bạn có kết quả cho tệp socket PHP bằng cách sử dụng lệnh netstat bên dưới.
Mã:
netstat -lx

Bước 3 - Cài đặt và cấu hình MySQL​

Chúng ta sẽ sử dụng MySQL làm hệ thống cơ sở dữ liệu cho Moodle (Moodle hỗ trợ MySQL và PostgreSQL). Chúng tôi sẽ sử dụng phiên bản MySQL mới nhất từ kho lưu trữ Ubuntu, hiện tại là MySQL 5.7.

Cài đặt MySQL từ kho lưu trữ Ubuntu bằng lệnh apt bên dưới.
Mã:
apt-get install -y mysql-server mysql-client
Bạn sẽ được hỏi về mật khẩu gốc MySQL, hãy nhập mật khẩu gốc MySQL mong muốn. Đảm bảo sử dụng mật khẩu phức tạp và không quá ngắn.



Nhập lại mật khẩu và nhấn 'Enter'.



MySQL đã được cài đặt bằng mật khẩu gốc của riêng bạn.

Bây giờ chúng ta cần thêm cấu hình mới cho cài đặt Moodle. Chỉnh sửa tệp cấu hình MySQL mysqld.cnf.

Đi đến thư mục cấu hình /etc/mysql/ và chỉnh sửa tệp 'mysqld.cnf' bằng vim.
Mã:
cd /etc/mysql/mysql.conf.d/
vim mysqld.conf
Dưới dòng '[mysqld]', dán cấu hình bên dưới.
Mã:
default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda
Lưu và thoát, sau đó khởi động lại và thêm MySQL để tự động khởi động khi khởi động.
Mã:
systemctl restart mysql
systemctl enable mysql
Bây giờ bạn có thể kiểm tra xem MySQL có đang chạy hay không bằng cách kiểm tra cổng máy chủ được dịch vụ sử dụng, cổng 3306.
Mã:
netstat -plntu


MySQL đã được cài đặt và khởi động.

Tiếp theo, chúng ta cần tạo một cơ sở dữ liệu mới và một người dùng cơ sở dữ liệu mới cho Moodle. Kết nối với máy chủ MySQL bằng lệnh 'mysql' bên dưới.
Mã:
mysql -u root -p
NHẬP MẬT KHẨU GỐC CỦA RIÊNG BẠN
Tạo một cơ sở dữ liệu mới có tên là 'moodledb' và một người dùng mới 'moodleuser' với mật khẩu 'hakaselabs123' để cài đặt moodle, sau đó cấp quyền cho người dùng cơ sở dữ liệu. Tất nhiên là bạn nên sử dụng một mật khẩu khác và an toàn hơn trong quá trình cài đặt :)

Chạy truy vấn mysql bên dưới.
Mã:
CREATE DATABASE moodledb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'moodleuser'@'localhost' IDENTIFIED BY 'hakaselabs123';
GRANT ALL PRIVILEGES ON moodledb.* TO 'moodleuser'@'localhost' IDENTIFIED BY 'hakaselabs123';
FLUSH PRIVILEGES;
Một người dùng và cơ sở dữ liệu mới cho moodle đã được tạo.


Bước 4 - Tải xuống và cấu hình Moodle​

Chúng ta sẽ tải xuống Moodle từ kho lưu trữ GitHub bằng git và chọn nhánh phiên bản ổn định.

Cài đặt git bằng lệnh apt bên dưới.
Mã:
apt-get install -y git
Đi đến thư mục '/var/www/' và sao chép kho lưu trữ moodle.
Mã:
cd /var/www/
git clone https://github.com/moodle/moodle.git
Đi đến thư mục moodle và liệt kê tất cả các nhánh có sẵn.
Mã:
cd moodle/
git branch -a
Bạn sẽ thấy một danh sách nhánh moodle dài, theo dõi nhánh phiên bản ổn định mới nhất bằng lệnh bên dưới.
Mã:
git branch --track MOODLE_32_STABLE origin/MOODLE_32_STABLE
Bây giờ hãy chuyển sang nhánh ổn định mới nhất bằng git checkout.
Mã:
git checkout MOODLE_32_STABLE
Bây giờ bạn đã ở trong nhánh ổn định mới nhất, bạn có thể sử dụng lệnh bên dưới để kiểm tra điều đó.
Mã:
git status
Bạn sẽ thấy kết quả bên dưới.
Mã:
Trên nhánh MOODLE_32_STABLE
Nhánh của bạn được cập nhật với 'origin/MOODLE_32_STABLE'.
không có gì để cam kết, thư mục làm việc sạch sẽ


Tiếp theo, tạo một thư mục mới cho dữ liệu Moodle '/var/moodledata' và thay đổi chủ sở hữu và quyền của thư mục.
Mã:
mkdir /var/moodledata
chown -R www-data:www-data /var/moodledata
chmod 777 /var/moodledata
Thay đổi chủ sở hữu và quyền của thư mục moodle thành người dùng và nhóm 'www-data'.
Mã:
chown -R www-data:www-data /var/www/moodle
chmod 755 /var/www/moodle


Cấu hình trước Moodle đã hoàn tất.

Bước 5 - Tạo chứng chỉ SSL và cấu hình Nginx Virtual Host​

Chúng ta sẽ chạy Moodle với máy chủ web Nginx dưới kết nối HTTPS. Nếu bạn đang ở trên máy chủ còn hoạt động, bạn có thể sử dụng tệp chứng chỉ của riêng mình hoặc thêm chứng chỉ miễn phí của riêng mình từ let's encrypt. Tôi đang ở đây trên máy tính cục bộ của mình, vì vậy tôi chỉ muốn tự tạo tệp chứng chỉ tự ký mới.

Tạo một thư mục SSL mới và tạo các tệp chứng chỉ tự ký bằng lệnh openssl bên dưới.
Mã:
mkdir -p /etc/nginx/ssl
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/moodle.crt -keyout /etc/nginx/ssl/moodle.key
Thay đổi quyền của khóa riêng.
Mã:
chmod 600 /etc/nginx/ssl/moodle.key


Tiếp theo, lấy thư mục cấu hình Nginx và tạo một tệp máy chủ ảo mới cho Moodle trong thư mục 'sites-available'.
Mã:
cd /etc/nginx/
vim sites-available/moodle-hakaselabs
Dán cấu hình máy chủ ảo Nginx bên dưới.
Mã:
# Trình xử lý ngược dòng PHP
upstream php-handler {
 server unix:/run/php/php7.0-fpm.sock;
}

# Nginx chuyển hướng HTTP sang HTTPS - moodle.hakase-labs.com
server {
 listen 80;
 server_name moodle.hakase-labs.com;
 # thực thi https
 trả về 301 https://$server_name$request_uri;
}
 
# Cấu hình HTTPS
server {
 server_name moodle.hakase-labs.com;
 
 listen *:443 ssl http2;
 listen [::]:443 ssl http2;
 
 # Cấu hình SSL 
 ssl on;
 ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES128-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA128:DHE-RSA-AES 128-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA128:ECDHE-RSA-AES128-SHA384:ECDHE-RSA-AES128-SHA128:ECDHE-RSA-AES128-SHA:ECDHE-RSA -AES128-SHA:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128 -GCM-SHA384:AES128-GCM-SHA128:AES128-SHA128:AES128-SHA128:AES128-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 ssl_prefer_server_ciphers bật;
 ssl_session_cache chia sẻ:SSL:10m;
 add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
 add_header X-Frame-Options DENY;
 add_header X-Content-Type-Options nosniff;
 ssl_session_tickets tắt;
 #ssl_stapling bật;
 #ssl_stapling_verify bật;
 resolver_timeout 5 giây;
 ssl_certificate /etc/nginx/ssl/moodle.crt;
 ssl_certificate_key /etc/nginx/ssl/moodle.key;
 
 # Thư mục dữ liệu gốc Moodle
 root /var/www/moodle;
 viết lại ^/(.*\.php)(/)(.*)$ /$1?file=/$3 cuối cùng;
 
 vị trí ^~ / {
 try_files $uri $uri/ /index.php?q=$request_uri;
 index index.php index.html index.htm;
 
 location ~ \.php$ {
 include snippets/fastcgi-php.conf;
 fastcgi_pass php-handler;
 }
 }
}
Lưu tệp và thoát khỏi vim, sau đó kích hoạt máy chủ ảo và kiểm tra tệp cấu hình Nginx, đảm bảo không có lỗi.
Mã:
ln -s /etc/nginx/sites-available/moodle-hakaselabs /etc/nginx/sites-enabled/
nginx -t
Khởi động lại máy chủ web Nginx.
Mã:
systemctl restart nginx


Các tệp Chứng chỉ SSL đã được tạo và máy chủ ảo Nginx cho Moodle đã được cấu hình.

Bước 6 - Cài đặt Moodle​

Mở trình duyệt web của bạn và nhập URL Moodle của máy chủ vào thanh địa chỉ và nhấn 'Enter'. Trong hướng dẫn này, tôi sẽ sử dụng tên miền của riêng mình: moodle.hakase-labs.com.

Bạn sẽ thấy trang cài đặt moodle.

Chọn ngôn ngữ, tôi sẽ sử dụng 'Tiếng Anh' và nhấp vào 'Tiếp theo'.



Cấu hình URL Moodle, trong trường hợp của tôi là 'moodle.hakase-labs.com', thư mục gốc web moodle '/var/www/moodle' và thư mục dữ liệu moodle '/var/moodledata'.

Sau đó nhấp vào 'Tiếp theo'.



Cấu hình 'Trình điều khiển cơ sở dữ liệu', sử dụng máy chủ cơ sở dữ liệu mysql bên dưới và nhấp vào 'Tiếp theo'.



Nhập thông tin cơ sở dữ liệu cho Moodle.
  • Máy chủ cơ sở dữ liệu: localhost
  • Tên cơ sở dữ liệu: moodledb
  • Người dùng cơ sở dữ liệu: moodleuser
  • Mật khẩu cơ sở dữ liệu: hakaselabs123
  • Tiền tố bảng: moodle_
  • Cổng cơ sở dữ liệu: 3306
  • Ổ cắm Unix: /var/run/mysql/mysqld.sock
Nhấp vào 'Tiếp theo' để tiếp tục.



Chấp nhận Thỏa thuận bản quyền. Chỉ cần nhấp vào 'Tiếp tục'.



Kiểm tra hệ thống, kiểm tra cấu hình máy chủ và tất cả các tiện ích mở rộng PHP cần thiết cho moodle.

Đảm bảo tất cả kết quả là 'OK' rồi nhấp vào 'Tiếp tục' để cài đặt.



Bạn sẽ thấy rất nhiều mô-đun đang được cài đặt, hãy đảm bảo tất cả kết quả là 'thành công'.

Nhấp vào 'Tiếp tục' một lần nữa.



Tiếp theo, chúng ta cần cấu hình người dùng quản trị và mật khẩu.

Điền thông tin quản trị của bạn và nhấp vào 'Cập nhật hồ sơ'.



Đối với 'Cài đặt trang đầu', hãy điền thông tin trang của riêng bạn và nhấp vào 'Lưu thay đổi'.



Bạn sẽ được chuyển hướng đến người dùng quản trị 'Bảng điều khiển' bên dưới.



Cài đặt Moodle đã hoàn tất.

Bước 7 - Kiểm tra​

Kiểm tra trang chủ Moodle - moodle.hakase-labs.com.



Trang đăng nhập Moodle - moodle.hakase-labs.com/login.



Bảng điều khiển quản trị người dùng Moodle.



Trang tùy chọn người dùng Moodle.



Trang quản trị trang web Moodle.



Moodle đã được cài đặt trên Ubuntu 16.04 với Nginx, PHP-FPM 7 và máy chủ MySQL 5.7, hay nói cách khác là "Moodle với LEMP Stack".

Tham khảo​

 
Back
Bên trên