Moodle là một nền tảng mã nguồn mở phổ biến được các tổ chức giáo dục trên toàn thế giới sử dụng để tạo các khóa học trực tuyến, quản lý nội dung và tạo điều kiện cho việc học tập cộng tác. Chạy Moodle trên Ubuntu là một lựa chọn phổ biến do tính ổn định, bảo mật và hỗ trợ nhiều gói phần mềm của Ubuntu. Quá trình này bao gồm việc cài đặt các thành phần cần thiết như Apache hoặc Nginx làm máy chủ web, MySQL hoặc PostgreSQL làm cơ sở dữ liệu và PHP làm ngôn ngữ lập trình, tất cả đều được hỗ trợ tốt trên Ubuntu. Thiết lập này cho phép các tổ chức tạo ra một môi trường học tập trực tuyến mạnh mẽ, có thể mở rộng và tùy chỉnh, có thể được điều chỉnh theo nhu cầu giáo dục cụ thể.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt Moodle trên máy chủ Ubuntu 24.04. Bạn sẽ cài đặt Moodle với LAMP Stack, sau đó bảo mật Moodle bằng UFW và HTTPS thông qua Certbot và Letsencrypt.
Để bắt đầu, hãy chạy lệnh sau và cập nhật chỉ mục gói Ubuntu của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22200%22%3E%3C/svg%3E
Bây giờ hãy thực hiện lệnh bên dưới để cài đặt các phụ thuộc của LAMP Stack (Apache, MariaDB và PHP). Nhập 'Y' để xác nhận cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22196%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy kiểm tra trạng thái dịch vụ Apache bằng lệnh bên dưới.
Sau đây, bạn có thể thấy máy chủ web Apache đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22210%22%3E%3C/svg%3E
Kiểm tra máy chủ cơ sở dữ liệu MariaDB bằng lệnh sau. Bạn sẽ thấy máy chủ MariaDB đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22240%22%3E%3C/svg%3E
Cuối cùng, hãy kiểm tra phiên bản PHP và các tiện ích mở rộng đã bật bằng sau:
Bạn sẽ thấy PHP 8.3 được cài đặt trên máy chủ Ubuntu của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22447%22%3E%3C/svg%3E
Mở tệp cấu hình máy chủ MariaDB '/etc/mysql/mariadb.conf.d/50-server.cnf' bằng trình chỉnh sửa 'nano'.
Thêm cấu hình sau vào phần '[mysqld]'. Thao tác này sẽ thay đổi công cụ lưu trữ mặc định thành 'innodb'.
Lưu tệp và thoát khỏi trình chỉnh sửa.
Bây giờ hãy chạy lệnh 'systemctl' bên dưới để khởi động lại máy chủ MariaDB và áp dụng các thay đổi của bạn.
Cuối cùng, hãy chạy Lệnh 'mariadb_secure_installation' bên dưới để thiết lập người dùng gốc MariaDB và bảo mật việc triển khai của bạn.
Trong quá trình này, bạn sẽ được hỏi những thông tin sau:
Đăng nhập vào máy chủ MariaDB bằng lệnh máy khách 'mariadb' bên dưới. Nhập mật khẩu gốc MariaDB của bạn khi được nhắc.
Bây giờ hãy chạy các truy vấn sau để tạo cơ sở dữ liệu mới 'moodle', người dùng 'moodle' và đảm bảo thay đổi mật khẩu bằng thông tin của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22358%22%3E%3C/svg%3E
Mở cấu hình PHP '/etc/php/8.3/apache2/php.ini' bằng 'nano' biên tập viên.
Thay đổi cấu hình mặc định bằng lệnh sau. Hãy đảm bảo điều chỉnh các tùy chọn 'memory_limit' và 'date_timezone' theo thông tin của bạn.
Khi hoàn tất, hãy lưu tệp và thoát.
Cuối cùng, hãy chạy lệnh bên dưới để khởi động lại máy chủ web Apache và áp dụng các thay đổi của bạn vào PHP.
Vào thư mục '/var/www' và tải xuống mã nguồn Moodle bằng lệnh 'wget'. Đảm bảo truy cập trang Tải xuống Moodle để lấy liên kết cho phiên bản mới nhất. Trong trường hợp này, bạn sẽ tải xuống phiên bản Moodle 40.4 ổn định mới nhất.
Sau khi tải xuống Moodle, hãy giải nén bằng lệnh 'tar' bên dưới. Mã nguồn Moodle sẽ có trong thư mục '/var/www/moodle'.
Cuối cùng, thực hiện lệnh bên dưới để tạo thư mục dữ liệu mới '/var/www/moodledata', thay đổi quyền sở hữu thư mục Moodle thành người dùng 'www-data' và đảm bảo cả Moodle và thư mục dữ liệu đều có thể ghi được bởi người dùng 'www-data'.
Đầu tiên, hãy chạy lệnh 'a2enmod' bên dưới để kích hoạt mô-đun 'rewrite'.
Tạo tệp máy chủ ảo Apache mới '/etc/apache2/sites-available/moodle.conf' với 'nano' sau biên tập viên.
Chèn cấu hình sau và đảm bảo thay đổi tên miền bằng thông tin của bạn.
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.
Bây giờ hãy thực hiện lệnh sau để kích hoạt tệp 'moodle.conf' và xác minh cú pháp Apache của bạn. Nếu bạn có cú pháp Apache đúng, bạn sẽ thấy đầu ra 'Cú pháp OK'.
Cuối cùng, hãy chạy lệnh 'systemctl' bên dưới để khởi động lại Apache và áp dụng các thay đổi của bạn.
Chạy lệnh bên dưới để bật cấu hình 'Apache Full' trên UFW. Với lệnh này, lưu lượng HTTP và HTTPS sẽ được phép.
Bây giờ hãy kiểm tra danh sách các quy tắc đã bật trên UFW bằng lệnh sau. Bạn sẽ thấy cấu hình 'Apache Full' được bật.
Cài đặt các gói 'certbot' và 'python3-certbot-apache' bằng lệnh sau.
Sau khi cài đặt hoàn tất, hãy thực thi lệnh 'certbot' bên dưới để tạo chứng chỉ SSL/TLS cho Moodle. Hãy đảm bảo thay đổi tên miền và địa chỉ email bằng thông tin của bạn.
Khi quá trình hoàn tất, chứng chỉ SSL của bạn sẽ có tại thư mục '/etc/letsencrypt/live/domain.com' và cài đặt Moodle của bạn sẽ được bảo mật tự động bằng HTTPS.
Chọn ngôn ngữ mặc định của bạn và nhấp vào Tiếp theo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22301%22%3E%3C/svg%3E
Nhập thư mục dữ liệu của bạn cho Moodle '/var/www/moodledata'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22529%22%3E%3C/svg%3E
Chọn MariaDB làm cơ sở dữ liệu trình điều khiển.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E
Nhập thông tin chi tiết về cơ sở dữ liệu MariaDB và người dùng của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22536%22%3E%3C/svg%3E
Nhấp vào Tiếp tục để xác nhận thông báo bản quyền.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22369%22%3E%3C/svg%3E
Trong phần kiểm tra máy chủ, hãy đảm bảo môi trường của bạn đã sẵn sàng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22495%22%3E%3C/svg%3E
Bây giờ quá trình cài đặt Moodle sẽ được xử lý.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22510%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy nhập tên người dùng quản trị, email và mật khẩu mới cho Moodle.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22506%22%3E%3C/svg%3E
Bây giờ bạn sẽ thấy bảng điều khiển Moodle như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22356%22%3E%3C/svg%3E
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt Moodle trên máy chủ Ubuntu 24.04. Bạn sẽ cài đặt Moodle với LAMP Stack, sau đó bảo mật Moodle bằng UFW và HTTPS thông qua Certbot và Letsencrypt.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo bạn có những điều sau:- Máy chủ Ubuntu 24.04.
- Người dùng không phải root có quyền quản trị viên.
- Tên miền trỏ đến địa chỉ IP của máy chủ.
- Tường lửa UFW đang hoạt động.
Cài đặt các phụ thuộc
Moodle là nền tảng học tập nguồn mở được viết bằng PHP. Để cài đặt Moodle, bạn cần Apache/Nginx, MySQL/MariaDB/PostgreSQL và PHP. Trong phần này, bạn sẽ cài đặt LAMP Stack (Linux, Apache, MariaDB và PHP) trên Ubuntu và thiết lập Moodle trên đó.Để bắt đầu, hãy chạy lệnh sau và cập nhật chỉ mục gói Ubuntu của bạn.
Mã:
sudo apt update
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22200%22%3E%3C/svg%3E
Bây giờ hãy thực hiện lệnh bên dưới để cài đặt các phụ thuộc của LAMP Stack (Apache, MariaDB và PHP). Nhập 'Y' để xác nhận cài đặt.
Mã:
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
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22196%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy kiểm tra trạng thái dịch vụ Apache bằng lệnh bên dưới.
Mã:
sudo systemctl is-enabled apache2
sudo systemctl status apache2
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22210%22%3E%3C/svg%3E
Kiểm tra máy chủ cơ sở dữ liệu MariaDB bằng lệnh sau. Bạn sẽ thấy máy chủ MariaDB đang chạy.
Mã:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22240%22%3E%3C/svg%3E
Cuối cùng, hãy kiểm tra phiên bản PHP và các tiện ích mở rộng đã bật bằng sau:
Mã:
php -v
php -m
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22447%22%3E%3C/svg%3E
Cấu hình máy chủ MariaDB
Sau khi cài đặt các phụ thuộc, bạn cần thay đổi mặc định Công cụ lưu trữ MariaDB thành 'InnoDB', được yêu cầu bởi Moodle. Điều này có thể được thực hiện bằng cách chỉnh sửa cấu hình máy chủ MariaDB. Và sau đó, bạn cũng sẽ bảo mật việc triển khai máy chủ MariaDB bằng tiện ích 'mariadb_secure_installation'.Mở tệp cấu hình máy chủ MariaDB '/etc/mysql/mariadb.conf.d/50-server.cnf' bằng trình chỉnh sửa 'nano'.
Mã:
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
Mã:
innodb_file_format = Barracuda
default_storage_engine = innodb
innodb_large_prefix = 1
innodb_file_per_table = 1
Bây giờ hãy chạy lệnh 'systemctl' bên dưới để khởi động lại máy chủ MariaDB và áp dụng các thay đổi của bạn.
Mã:
sudo systemctl restart mariadb
Mã:
sudo mariadb_secure_installation
- Đối với cài đặt máy chủ MariaDB mặc định không có mật khẩu gốc, hãy nhấn ENTER khi được hỏi về mật khẩu.
- Xác thực cục bộ cho người dùng gốc MariaDB được bảo mật theo mặc định, hãy nhập 'n' khi được yêu cầu thay đổi phương thức xác thực thành 'unix_socket'.
- Nhập 'Y' để tạo mật khẩu gốc MariaDB mới. Sau đó, nhập mật khẩu mạnh cho người dùng gốc MariaDB của bạn và lặp lại.
- Khi được yêu cầu tắt xác thực từ xa cho người dùng gốc MariaDB, hãy nhập 'Y' để đồng ý.
- Cài đặt máy chủ MariaDB mặc định đi kèm với cơ sở dữ liệu 'test' và cho phép người dùng ẩn danh truy cập vào cơ sở dữ liệu đó. Nhập 'Y' cho cả hai thiết lập để xóa 'test' cơ sở dữ liệu mặc định và xóa đặc quyền ẩn danh.
- Cuối cùng, nhập 'Y' để xác nhận tải lại đặc quyền bảng.
Tạo cơ sở dữ liệu và người dùng
Bây giờ bạn đã cấu hình máy chủ MariaDB, hãy tạo cơ sở dữ liệu và người dùng mới thông qua máy khách 'mariadb'.Đăng nhập vào máy chủ MariaDB bằng lệnh máy khách 'mariadb' bên dưới. Nhập mật khẩu gốc MariaDB của bạn khi được nhắc.
Mã:
sudo mariadb -u root -p
Mã:
CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL ON moodle.* TO 'moodle'@'localhost' IDENTIFIED BY "MoodlePassw0rd";
FLUSH PRIVILEGES;
QUIT
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22358%22%3E%3C/svg%3E
Cấu hình PHP
Trong phần này, bạn sẽ chỉnh sửa cấu hình PHP 'php.ini' và thay đổi một số giá trị mặc định mà Moodle yêu cầu.Mở cấu hình PHP '/etc/php/8.3/apache2/php.ini' bằng 'nano' biên tập viên.
Mã:
sudo nano /etc/php/8.3/apache2/php.ini
Mã:
memory_limit = 256M
upload_max_filesize = 60M
max_execution_time = 300
date.timezone = Europe/Amsterdam
max_input_vars = 5000
Cuối cùng, hãy chạy lệnh bên dưới để khởi động lại máy chủ web Apache và áp dụng các thay đổi của bạn vào PHP.
Mã:
sudo systemctl restart apache2
Tải xuống mã nguồn Moodle
Lúc này, bạn đã cài đặt và cấu hình LAMP Stack. Hãy tải xuống mã nguồn Moodle và cấu hình thư mục cài đặt Moodle.Vào thư mục '/var/www' và tải xuống mã nguồn Moodle bằng lệnh 'wget'. Đảm bảo truy cập trang Tải xuống Moodle để lấy liên kết cho phiên bản mới nhất. Trong trường hợp này, bạn sẽ tải xuống phiên bản Moodle 40.4 ổn định mới nhất.
Mã:
cd /var/www
wget https://download.moodle.org/download.php/direct/stable404/moodle-latest-404.tgz
Mã:
tar xvf moodle-latest-404.tgz
Mã:
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
Thiết lập máy chủ ảo Apache
Sau khi tải xuống Moodle, bạn sẽ tạo một tệp máy chủ ảo Apache mới để chạy Moodle. Vì vậy, hãy đảm bảo rằng bạn đã sẵn sàng và phân giải tên miền của mình thành địa chỉ IP máy chủ Ubuntu.Đầu tiên, hãy chạy lệnh 'a2enmod' bên dưới để kích hoạt mô-đun 'rewrite'.
Mã:
sudo a2enmod rewrite
Mã:
sudo nano /etc/apache2/sites-available/moodle.conf
Mã:
DocumentRoot /var/www/moodle/
ServerName moodle.howtoforge.local
ServerAdmin [emailprotected]
Options +FollowSymlinks
AllowOverride All
Require all granted
ErrorLog /var/log/apache2/moodle_error.log
CustomLog /var/log/apache2/moodle_access.log combined
Bây giờ hãy thực hiện lệnh sau để kích hoạt tệp 'moodle.conf' và xác minh cú pháp Apache của bạn. Nếu bạn có cú pháp Apache đúng, bạn sẽ thấy đầu ra 'Cú pháp OK'.
Mã:
sudo a2ensite moodle.conf
sudo apachectl configtest
Mã:
sudo systemctl restart apache2
Bảo mật Moodle bằng UFW
Trong bước này, bạn sẽ mở các giao thức HTTP và HTTPS thông qua UFW (Uncomplicated Firewall). Đảm bảo rằng bạn đã chạy UFW trước khi bắt đầu.Chạy lệnh bên dưới để bật cấu hình 'Apache Full' trên UFW. Với lệnh này, lưu lượng HTTP và HTTPS sẽ được phép.
Mã:
sudo ufw allow 'Apache Full'
Mã:
sudo ufw status
Bảo mật Moodle bằng HTTPS
Ngoài tường lửa, bạn cũng sẽ tạo chứng chỉ SSL/TLS và bảo mật Moodle bằng HTTPS. Trong phần này, bạn sẽ triển khai HTTPS cho Moodle thông qua Certbot và Letsencrypt. Nếu bạn đang cài đặt Moodle cục bộ, hãy bỏ qua bước này.Cài đặt các gói 'certbot' và 'python3-certbot-apache' bằng lệnh sau.
Mã:
sudo apt install certbot python3-certbot-apache -y
Mã:
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [emailprotected] -d moodle.howtoforge.local
Cài đặt Moodle
Truy cập tên miền Moodle của bạn như https://moodle.howtoforge.local/ và bạn sẽ thấy trình hướng dẫn cài đặt.Chọn ngôn ngữ mặc định của bạn và nhấp vào Tiếp theo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22301%22%3E%3C/svg%3E
Nhập thư mục dữ liệu của bạn cho Moodle '/var/www/moodledata'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22529%22%3E%3C/svg%3E
Chọn MariaDB làm cơ sở dữ liệu trình điều khiển.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E
Nhập thông tin chi tiết về cơ sở dữ liệu MariaDB và người dùng của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22536%22%3E%3C/svg%3E
Nhấp vào Tiếp tục để xác nhận thông báo bản quyền.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22369%22%3E%3C/svg%3E
Trong phần kiểm tra máy chủ, hãy đảm bảo môi trường của bạn đã sẵn sàng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22495%22%3E%3C/svg%3E
Bây giờ quá trình cài đặt Moodle sẽ được xử lý.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22510%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy nhập tên người dùng quản trị, email và mật khẩu mới cho Moodle.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22506%22%3E%3C/svg%3E
Bây giờ bạn sẽ thấy bảng điều khiển Moodle như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22356%22%3E%3C/svg%3E