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
- Một  server  Ubuntu 18.04 với  user  sudokhông root và firewall . Bạn có thể làm theo hướng dẫn cài đặt server ban đầu Ubuntu 18.04 của ta để được hướng dẫn.
- Đã cài đặt hệ quản trị database quan hệ Postgres. Bạn có thể làm theo hướng dẫn Cách cài đặt và sử dụng PostgreSQL trên Ubuntu 18.04 của ta để được hướng dẫn. Bước 1 - Cài đặt PostgreSQL là đủ.
- Apache và PHP đã được cài đặt. Bạn có thể làm theo hướng dẫn Cách cài đặt Linux, Apache, MySQL, PHP (LAMP stack) trên Ubuntu 18.04 của ta để được hướng dẫn. Lưu ý Mahara khuyên bạn nên sử dụng Postgres chứ không phải MySQL, nhưng bạn có thể làm theo Bước 2 của hướng dẫn này để cài đặt và sử dụng MySQL thay thế .
- Tên domain  được  cấu hình  để trỏ đến  server  của bạn. Để trỏ domain  tới DigitalOcean Server, hãy làm theo hướng dẫn Cách trỏ đến  server  tên DigitalOcean từ công ty đăng ký domain  chung của  ta . Hướng dẫn này sẽ sử dụng mahara.your_domainlàm ví dụ.
-  Server  ảo được  cấu hình  cho domain  bằng lệnh ServerName. Để được hướng dẫn, hãy chuyển sang Bước 5 - Cài đặt Server ảo (Được khuyến nghị) trong Cách cài đặt Server Web Apache trên Ubuntu 18.04 .
- Chứng chỉ Let's Encrypt được cài đặt cho domain bạn đã cấu hình theo hướng dẫn Cách bảo mật Apache với Let's Encrypt trên Ubuntu 18.04 .
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 :
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:
... $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:
... $cfg->dataroot = '/path/to/uploaddir'; ... Thay đổi nó để trỏ đến folder dataroot của Mahara khi bạn đặt nó ở Bước 3 :
... $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:
... // $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 :
... $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:
... <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 :
... <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:
. . . 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 :
. . . 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 :
. . . 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:
... 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_sybase và magic_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.
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.
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.
Các tin liên quan
Cách cài đặt Jitsi Meet trên Ubuntu 20.042020-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 thiết lập môi trường JupyterLab trên Ubuntu 18.04
2020-08-26
Cách cài đặt Webmin trên Ubuntu 20.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 từ site chính thức của Mongodb
2020-07-31
Cách bảo mậ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 thiết lập Mattermost trên Ubuntu 20.04
2020-07-29
 

