Thứ hai, 21/09/2020 | 00:00 GMT+7

Cách cài đặt và cấu hình Mahara trên Ubuntu 18.04

Mahara là một hệ thống mạng xã hội và ePortfolio open-souce tự nhận mình là “môi trường học tập cá nhân lấy người học làm trung tâm”. Mahara đặc biệt phổ biến trong các tổ chức học thuật, nơi nó cung cấp cho người học một nền tảng để quản lý và chia sẻ kiến thức cũng như sự phát triển của họ.

Trong một môi trường học tập từ xa, Mahara có thể giúp các nhà giáo dục thúc đẩy một lớp học kỹ thuật số và tổ chức sự tiến bộ của học sinh. Không giống như một Hệ thống Quản lý Học tập (LMS) truyền thống, Mahara phân tán và tập trung vào user hơn. Lượng sáng tạo của user tương phản với các hệ thống thể chế khác.

Mahara cũng có nhiều ứng dụng không dành cho sinh viên. Bạn có thể sử dụng nó để tạo blog, trình tạo sơ yếu lý lịch, repository file hoặc khung năng lực.

Trong hướng dẫn này, bạn sẽ cài đặt Mahara và cấu hình nó để sử dụng cơ sở dữ liệu Postgres làm nguồn xác thực. Sau khi hoàn thành, bạn sẽ có quyền truy cập quản trị vào ePortfolio dựa trên server .

Yêu cầu

Bước 1 - Tạo database và user cho Mahara

Bước đầu tiên của bạn là tạo database Postgres và user cho Mahara.

Từ dòng lệnh của server , hãy chuyển sang user postgres :

  • sudo -i -u postgres

Lựa chọn -i cung cấp một shell tương tác, trong khi sudo được sử dụng với lựa chọn -u cho phép bạn chuyển đổi user .

Bây giờ hãy tạo một user Postgres; đảm bảo thay thế mahara bằng tên user bạn muốn :

  • createuser -SRDP mahara

Postgres sẽ nhắc bạn Enter password for a new role: role ở đây đề cập đến user mới mà bạn đang cố gắng tạo. Cung cấp password bạn chọn, sau đó nhập lại password khi được yêu cầu .

Bây giờ, hãy tạo một database để cài đặt Mahara của bạn. Sử dụng lệnh sau, thay thế maharadb bằng một tên ưu tiên cho database và mahara mới của bạn bằng user mới mà bạn vừa tạo:

  • createdb -O mahara -EUTF8 maharadb

Đến đây bạn có thể thoát khỏi user postgres :

  • exit

Lưu ý: Bạn nên sử dụng Postgres cho database Mahara của bạn , nhưng nếu bạn quyết định sử dụng MySQL , bạn cần cài đặt user và database mới cho Mahara. Để làm như vậy, hãy đăng nhập vào account root MySQL của bạn bằng lệnh sau:

  • mysql -u root -p

Cung cấp password root MySQL của bạn để có quyền truy cập. Bây giờ hãy tạo database Mahara của bạn. Thay maharadb bằng một tên khác:

  • create database maharadb character set UTF8;

Tiếp theo, tạo một user MySQL mới cho Mahara, đặt password và cấp cho nó quyền truy cập vào database maharadb của bạn. Hãy nhớ cung cấp password mạnh thay cho password và thay thế mahara bằng tên user mong muốn của bạn:

  • grant all on maharadb .* to 'mahara '@'localhost' identified by 'password';

 

Đến đây bạn đã tạo database cho Mahara và tạo một role . Đến đây bạn có thể cài đặt và cấu hình Mahara.

Bước 2 - Download Mahara

Đến đây bạn đã tạo và cấu hình database cho Mahara, hãy download chính Mahara. Bạn có thể download một bản dựng tiêu chuẩn từ server của Mahara và bạn có thể tìm thấy bản dựng Mahara mới nhất tại đây .

Sau khi bạn có liên kết .tar.gz tới bản phát hành ổn định mới nhất, hãy download bằng lệnh wget . Đảm bảo thay thế /19.10/19.10.2/+download/mahara-19.10.2.tar.gz bằng bản phát hành bạn đã chọn:

  • wget https://launchpad.net/mahara/19.10/19.10.2/+download/mahara-19.10.2.tar.gz

Thao tác này sẽ download file nén có nhãn mahara- 19.10.2 .tar.gz . Extract file nén để tạo cấu trúc folder Mahara:

  • tar xzvf mahara-19.10.2.tar.gz
  • ls

Lệnh ls kiểm tra việc extract . Đến đây bạn sẽ thấy những mới mahara- 19.10.2 folder :

Output
mahara-19.10.2.tar.gz mahara-19.10.2 

Hãy sao chép Mahara vào /var/www/ mahara.your_domain . mahara.your_domain phải trùng với folder bạn đã tạo trong bước cấu hình Server ảo trong phần Yêu cầu .

Lưu ý: Mahara phải cài đặt vào một folder trống. Nếu bạn đã có file ở đây, hãy xem xét việc thay đổi DocumentRoot của bạn và sử dụng một folder mới.

Bây giờ sao chép folder Mahara:

  • sudo cp -a mahara-19.10.2/. /var/www/mahara.your_domain/

Lựa chọn -a đảm bảo hệ thống sao chép các quyền đối với file cùng với file và folder . Các . ở cuối file nguồn đảm bảo mọi thứ trong folder nguồn, bao gồm cả các file ẩn, được sao chép vào folder đích.

Mahara yêu cầu các phần mở rộng PHP bổ sung để hoạt động chính xác.

Chạy các lệnh sau để cài đặt tất cả các phụ thuộc cần thiết:

  • sudo apt update
  • sudo apt install php-gd php-pgsql php-xmlrpc php-xml php-curl php-mbstring

Nhập y cho bất kỳ dấu nhắc nào để kết thúc quá trình cài đặt.

Bạn đã cài đặt Mahara trên server của bạn . Tiếp theo, bạn sẽ tạo folder dataroot.

Bước 3 - Tạo Thư mục Dataroot

Đến đây bạn đã cài đặt mã Mahara, hãy tạo một folder dataroot. Đây là nơi Mahara sẽ ghi các file đã tải lên cũng như một số file khác mà nó cần để chạy. Do đó, web server cần có khả năng ghi vào nó.

Thư mục dataroot cũng phải nằm ngoài folder mà bạn có mã Mahara. Bạn nên tránh hoàn toàn có nó bên trong folder public_html của bạn .

Hãy tạo folder trong /var/maharadata :

  • sudo mkdir /var/maharadata

Cập nhật quyền sở hữu với chown :

  • sudo chown -R www-data:www-data /var/maharadata

Điều này cho phép web server ghi vào folder . Bây giờ ta có thể hoàn tất việc cấu hình Mahara.

Bước 4 - Cài đặt file cấu hình Mahara

Trong bước này, bạn sẽ thực hiện một số điều chỉnh cuối cùng đối với file config.php của Mahara. Những điều chỉnh này sẽ kết nối database của bạn và mã hóa password của bạn.

Chuyển sang folder mã Mahara:

  • cd /var/www/mahara.your_domain/htdocs

Tạo file config.php của bạn bằng cách sao chép file config-dist.php trong folder htdocs .

Thay đổi folder và sao chép file :

  • cp config-dist.php config.php

Bây giờ hãy mở config.php bằng nano hoặc editor bạn muốn :

  • nano config.php

Tìm phần sau trong file và áp dụng các thay đổi cần thiết. Để lại $cfg->dbtype dưới dạng postgres trừ khi bạn đang sử dụng MySQL, trong trường hợp đó hãy thay đổi nó thành mysql . Thay đổi maharadb , mahara , và dbpassword để phù hợp với giá trị mà bạn sử dụng trong bước 1 cho tên database , người sử dụng và password , tương ứng:

./htdocs/config.php
... $cfg->dbtype   = 'postgres'; $cfg->dbhost   = 'localhost'; $cfg->dbport   = null; // Change if you are using a non-standard port number for your database $cfg->dbname   = 'maharadb'; $cfg->dbuser   = 'mahara'; $cfg->dbpass   = 'dbpassword'; ... 

Trong cùng một file , hãy tìm phần sau:

/var/www/mahara/htdocs/config.php
... $cfg->dataroot = '/path/to/uploaddir'; ... 

Thay đổi nó để trỏ đến folder dataroot của Mahara khi bạn đặt nó ở Bước 3 :

/var/www/mahara/htdocs/config.php
... $cfg->dataroot = '/var/maharadata'; ... 

Cuối cùng, hãy cập nhật passwordsaltmain bằng một chuỗi bí mật ngẫu nhiên. Điều này mã hóa password user được lưu trữ. Tìm và bỏ comment sau:

/var/www/mahara/htdocs/config.php
... // $cfg->passwordsaltmain = 'some long random string here with lots of characters'; ... 

Bạn có thể sử dụng hàm rand OpenSSL để tạo một chuỗi ngẫu nhiên để sử dụng làm chuỗi muối bí mật của bạn . Mở một terminal mới, kết nối lại với server của bạn và chạy lệnh sau để tạo chuỗi này:

  • openssl rand -base64 32

Tùy chọn -base64 32 đảm bảo một chuỗi được mã hóa Base64 dài 32 ký tự. Cập nhật giá trị cho passwordsaltmain thành your_generated_salt :

/var/www/mahara/htdocs/config.php
... $cfg->passwordsaltmain = 'your_generated_salt'; ... 

Cảnh báo: Sau khi đặt, bạn không được mất chuỗi này hoặc bạn cần đặt lại tất cả password user . Thực hành tốt để giữ một bản backup an toàn cho file config.php của bạn

Lưu ý: Bạn có thể cần đặt chế độ productionmode thành false khi sử dụng Mahara làm trang web phát triển hoặc thử nghiệm. Đặt giá trị này thành false sẽ cho phép hiển thị cảnh báo và thông báo lỗi trên màn hình để hỗ trợ việc kiểm tra.

Lưu và đóng file .

Với Mahara được cấu hình, bạn đã sẵn sàng phục vụ Mahara bằng web server Apache.

Bước 5 - Cấu hình Apache

Trong yêu cầu , bạn đã cấu hình domain và trỏ domain đó đến server này. Bạn cũng đã cài đặt Apache và cài đặt HTTPS bằng Let's Encrypt. Bây giờ hãy sử dụng Apache để phục vụ Mahara.

Nếu file cấu hình Server ảo của bạn có tên mahara.your_domain .conf Let's Encrypt đã tạo một file cấu hình mới có tên mahara.your_domain -le-ssl.conf để xử lý các yêu cầu HTTPS cho domain của bạn.

Mở file đó. Đảm bảo thay thế mahara.your_domain bằng tên thực của file của bạn:

  • sudo nano /etc/apache2/sites-available/mahara.your_domain-le-ssl.conf

Tệp sẽ trông giống như sau:

/etc/apache2/sites-available/your_domain-le-ssl.conf
... <IfModule mod_ssl.c> <VirtualHost *:443>         ServerAdmin webmaster@localhost         ServerName mahara.your_domain         DocumentRoot /var/www/mahara.your_domain         ErrorLog ${APACHE_LOG_DIR}/error.log         CustomLog ${APACHE_LOG_DIR}/access.log combined  SSLCertificateFile /etc/letsencrypt/live/mahara.your_domain/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/mahara.your_domain/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf </VirtualHost> </IfModule> ... 

Chỉ thị ServerName xác định domain cơ sở phù hợp với định nghĩa server ảo này. Đây cũng phải là domain bạn đã chọn để bảo mật bằng certificate SSL trong phần Yêu cầu .

Lưu ý: Cấu hình Apache của bạn không được chứa ServerAliases . Mahara mong đợi được truy cập thông qua một url . Nếu bạn sử dụng alias server , bạn sẽ gặp phải các vấn đề như phải đăng nhập hai lần và phá vỡ các tính năng Đăng nhập một lần (SSO).

Tuy nhiên, nếu bạn cần alias vì lý do nào đó, bạn có thể cài đặt chỉ thị VirtualHost thứ hai riêng biệt ngoài chỉ thị ở trên.

Thực hiện các bổ sung sau vào file :

/etc/apache2/sites-available/your_domain-le-ssl.conf
... <IfModule mod_ssl.c> <VirtualHost *:443>         ServerAdmin webmaster@localhost         ServerName mahara.your_domain         DocumentRoot /var/www/mahara.your_domain/htdocs          <Directory />             Options FollowSymLinks             AllowOverride None         </Directory>          <Directory /var/www/your_domain/htdocs>             Options Indexes FollowSymLinks MultiViews             AllowOverride None             Order allow,deny             allow from all         </Directory>          ErrorLog ${APACHE_LOG_DIR}/error.log         CustomLog ${APACHE_LOG_DIR}/access.log combined  SSLCertificateFile /etc/letsencrypt/live/mahara.your_domain/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/mahara.your_domain/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf </VirtualHost> </IfModule> ... 

Đầu tiên, bạn cập nhật DocumentRoot để bao gồm /htdocs . Sau đó, bạn thêm hai khối mới.

Khối <Directory /> đề cập đến root hệ thống file . Nó chỉ định các chỉ thị áp dụng cho tất cả các file và folder ở bất kỳ đâu trên server . Việc chỉ định các lệnh cho khối này cho phép ta bảo vệ server của bạn khỏi sự xâm nhập bằng cách đặt các lệnh mặc định như AllowOverride None .

Khối <Directory /var/www/ mahara.your_domain /htdocs> tham chiếu đến root tài liệu cho Mahara. Các chỉ thị được khai báo ở đây sẽ overrides các chỉ thị được khai báo trên khối <Directory /> . Các chỉ thị này là yêu cầu cơ bản để cấu hình Apache phục vụ Mahara.

Lưu và đóng file .

Đến đây bạn đã sẵn sàng để cấu hình dịch vụ PHP của bạn .

Bước 6 - Điều chỉnh cài đặt PHP

Bước cuối cùng của ta là cập nhật file php.ini của Apache. Điều này sẽ thay đổi độ dài ghi log của ta và thay đổi kích thước tải lên và kích thước POST tối đa.

Mở tập tin:

  • sudo nano /etc/php/7.2/apache2/php.ini

Đây là một file lớn. Ta hãy xem xét từng bản cập nhật một.

Tìm dòng log_errors và đảm bảo nó trùng với mã được đánh dấu:

/etc/php/7.2/apache2/php.ini
. . . log_errors = On . . . 

Đặt log_errors thành Bật sẽ cho phép PHP ghi lại các lỗi gặp phải khi chạy Mahara để hỗ trợ gỡ lỗi.

Bây giờ hãy tìm dòng bắt đầu upload_max_filesize = 2M . Thay thế 2M bằng 50M :

7.2 / apache2 / php.ini '> / etc / php / 7.2 /apache2/php.ini
. . . upload_max_filesize = 50M . . . 

Điều này sẽ tăng kích thước file tải lên tối đa lên 50 megabyte.

Bây giờ tìm dòng bắt đầu post_max_size = 8M . Thay 8M bằng 100M :

7.2 / apache2 / php.ini '> / etc / php / 7.2 /apache2/php.ini
. . . post_max_size = 100M . . . 

upload_max_filesize account có kích thước tối đa được phép cho các file được đăng, trong khi post_max_size là kích thước tối đa được phép cho tất cả dữ liệu nội dung POST . Vì vậy, bạn sẽ luôn muốn con số thứ hai này cao hơn. Các cài đặt này sẽ cho phép Mahara chấp nhận tải file lên ở mức tối đa đã đặt.

Bây giờ hãy di chuyển đến cuối file và thêm các lệnh sau:

/etc/php/7.2/apache2/php.ini
... register_globals = Off magic_quotes_runtime = Off magic_quotes_sybase = Off magic_quotes_gpc = Off allow_call_time_pass_reference = Off 

register_globals = Off tắt register_globals . Việc kích hoạt nó có ý nghĩa bảo mật như được nêu rõ trong Hướng dẫn sử dụng PHP .

Đặt magic_quotes_runtime thành Off ngăn PHP tự động thoát khỏi các dấu ngoặc kép có dấu gạch chéo ngược từ bất kỳ hàm nào đến từ nguồn bên ngoài ( POST / GET ). magic_quotes_runtime , magic_quotes_sybasemagic_quotes_gpc không được dùng nữa.

allow_call_time_pass_reference cũng không được dùng nữa.

Lưu và đóng file .

Bây giờ khởi động lại Apache:

  • sudo systemctl restart apache2

Điều này hoàn thành cài đặt server của bạn. Đến đây bạn đã sẵn sàng chạy trình cài đặt Mahara và nhập ePortfolio của bạn thông qua trình duyệt web.

Bước 7 - Chạy trình cài đặt Mahara

Với Apache và PHP được cấu hình đúng cách, hãy tiến hành hoàn tất quá trình cài đặt Mahara thông qua trình cài đặt dựa trên web của nó.

Trong trình duyệt của bạn, chuyển đến domain server của bạn. Một màn hình sẽ xuất hiện hiển thị thông tin cấp phép của Mahara và một nút để tiếp tục cài đặt.

Màn hình cài đặt Mahara

Nhấp vào nút Install Mahara và đợi cho đến khi trình cài đặt hoàn tất việc thực hiện tất cả các cài đặt. Sau khi hoàn tất, hãy cuộn xuống. Bạn sẽ thấy phần cho biết Đã cài đặt thành công Mahara. Tiếp tục . Nhấp vào Tiếp tục để tiếp tục.

Mahara sẽ nhắc bạn nhập password mới và địa chỉ email chính. Hãy tiếp tục và gửi biểu mẫu.

Màn chào mừng của Mahara

Bạn đã sẵn sàng để bắt đầu sử dụng Mahara. Nhưng trước khi bắt đầu khám phá ePortfolio mới của bạn , bạn có thể cần cài đặt một vài tính năng cuối cùng.

Cài đặt Email

Đối với cài đặt production , hãy đảm bảo Mahara có thể gửi email. Điều này hữu ích cho việc gửi các thông báo như email xác nhận sau khi user đăng ký trên trang web. Bạn có thể chỉ định một server SMTP gửi đi với cài đặt administrator . Nhấp vào menu thả xuống ở phía trên bên phải và chọn Định cấu hình trang web -> Tùy chọn trang web -> Email .

Cài đặt một công việc Cron

Cuối cùng, hãy xem xét cài đặt một công việc cron để truy cập htdocs/lib/cron.php mỗi phút. Nếu không cài đặt điều này, bạn sẽ thấy rằng nguồn cấp RSS sẽ không cập nhật và một số thông báo qua email sẽ không được gửi đi. Tiếp tục và nhập lệnh sau. Bạn sẽ nhận được một tùy chọn để chọn editor mà bạn chọn. Trong ví dụ này, ta đang tiến hành với trình soạn thảo nano :

  • sudo crontab -e

Thêm dòng sau vào cuối file thay thế mahara.your_domain bằng tên của folder mà bạn đã cài đặt Mahara ở Bước 2 :

* * * * * php /var/www/mahara.your_domain/htdocs/lib/cron.php 

Với email và cron job của bạn đã được cấu hình , bây giờ bạn đã sẵn sàng để sử dụng Mahara.

Kết luận

Mahara là một nền tảng mạnh mẽ và phổ biến. Đây là một nguồn tài nguyên tuyệt vời cho người dạy và người học, đặc biệt là trong môi trường học tập từ xa. Mahara cũng phổ biến bên ngoài giáo dục, nơi user tạo blog và người xây dựng sơ yếu lý lịch.

User cũng có thể chọn từ nhiều chủ đề trong khi administrator có thể khám phá một thư viện lớn các plugin .

Sau khi làm quen với giao diện user , hãy xem xét theo dõi bài viết Các bước tiếp theo trên trang web của Mahara để có thêm ý tưởng.


Tags:

Các tin trước

Cách cài đặt Jitsi Meet trên Ubuntu 20.04 2020-09-18
Cách xử lý sandbox với Systemd trên Ubuntu 20.04 2020-09-16
Cách cài đặt và cấu hình Neo4j trên Ubuntu 20.04 2020-09-15
Cách cài đặt Webmin trên Ubuntu 20.04 2020-08-26
Cách thiết lập môi trường JupyterLab trên Ubuntu 18.04 2020-08-26
Cách cài đặt Node.js trên Ubuntu 18.04 2020-08-06
Cách cài đặt MongoDB trên Ubuntu 20.04 2020-07-31
Cách cấu hình truy cập từ xa cho MongoDB trên Ubuntu 20.04 2020-07-31
Cách bảo mật MongoDB trên Ubuntu 20.04 2020-07-31
Cách thiết lập Mattermost trên Ubuntu 20.04 2020-07-29