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
sudo
khô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_domain
là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 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 từ site chính thức của Mongodb
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