Hướng dẫn cài đặt Open edX trên Ubuntu 16.04

Chào các bạn,

Bài viết hôm nay mình sẽ hướng dẫn các bại cài đặt OpenedX trên Ubuntu 16.04.

Giới thiệu

EdX là một chương trình được thành lập và duy trì bởi Harvard, MIT và các học hiện hàng đầu trên thế giới mục đích nhằm cung cấp các khóa học online miễn phí đến tất cả mọi người. Open edX là bộ mã nguồn dùng để cung cấp các hóa học này tới người dùng, Open edX cho phép tất cả mọi người tạo các khóa học trên máy chủ riêng của họ và tùy chỉnh Open edX để phù hợp với nhu cầu và điều kiện của đơn vị triển khai Open edX.

Cài đặt Open edX

Hiện tại Open edX chỉ chạy trên 2 phiên bản Ubuntu là 12.04 và 16.04, các phiên bản khác không hỗ trợ chính thức, do vậy chúng ta sẽ dùng Ubuntu Server 16.04 để cài đặt Open edX.

Đầu tiên chúng ta thực hiện upgrade Ubuntu lên phiên bản mới nhất

sudo apt-get update -y
sudo apt-get upgrade -y
reboot

Sau đó các bạn xem qua các phiên bản Open edX đã được Release và chọn version muốn cài đặt và Copy Release Tag, các bạn thay thế Release Tag tương ứng với phiên bản bạn muốn cài đặt vào trong lệnh sau

export OPENEDX_RELEASE=release-tag

Sau đó cài đặt Bootstrap và Ansible bằng lệnh:

wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/ansible-bootstrap.sh -O - | sudo bash

Thực hiện Generate Password và Secret key cho các API của Open edX

wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/generate-passwords.sh -O - | bash

Các bạn lưu ý nhớ lưu giữ file my-passwords.yml, các key trong file này sẽ cần để cấu hình và truy cập các dịch vụ sau khi cài đặt.

Sau đó, thực hiện cài đặt Open edX bằng lệnh

wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/native.sh -O - | bash

Lệnh này sẽ chạy hơi lâu nên các bạn lưu ý bỏ trong screen để tránh bị lỗi ngắt kết nối khi cài đặt

Sau khi cài đặt thành công, truy cập vào đường dẫn http://[your-ip-address]

 

Sau khi cài đặt, Open edX sẽ khởi động với hostname mặc định là “localhost”, các bạn phải điều chỉnh lại hostname thành URL hoặc IP của server, mở file /edx/app/edxapp/lms.env.json và đổi các giá trị sau thành URL của bạn:

"ANALYTICS_DASHBOARD_URL": "http://openedx.domain.com:18110/courses",
"CMS_BASE": "openedx.domain.com:18010",
"COMMENTS_SERVICE_URL": "http://openedx.domain.com:18080",
"COURSE_CATALOG_API_URL": "http://openedx.domain.com:8008/api/v1",
"CREDENTIALS_INTERNAL_SERVICE_URL": "http://openedx.domain.com:8005",
"CREDENTIALS_PUBLIC_SERVICE_URL": "http://openedx.domain.com:8005",
"ECOMMERCE_API_URL": "http://openedx.domain.com:18130/api/v2",
"ECOMMERCE_PUBLIC_URL_ROOT": "http://openedx.domain.com:18130",
"EDXNOTES_INTERNAL_API": "http://openedx.domain.com:18120/api/v1",
"EDXNOTES_PUBLIC_API": "http://openedx.domain.com:18120/api/v1",
"ENTERPRISE_API_URL": "https://openedx.domain.com:80/enterprise/api/v1",
"PREVIEW_LMS_BASE": "preview.openedx.domain.com:18020",
"JWT_ISSUER": "http://openedx.domain.com:80/oauth2",
"LMS_BASE": "openedx.domain.com:80",
"LMS_ROOT_URL": "https://openedx.domain.com:80",
"OAUTH_OIDC_ISSUER": "http://openedx.domain.com:80/oauth2",
"SITE_NAME": "openedx.domain.com",

Sau đó restart lại Open edX bằng lệnh

sudo /edx/bin/supervisorctl restart edxapp:

Tạo tài khoản Open edX

Để tạo tài khoản SuperUser, các bạn thực hiện như sau:

cd /edx/app/edxapp/edx-platform
sudo -u www-data /edx/bin/python.edxapp ./manage.py lms --settings aws create_user -s -p edx -e user1@domain.com
sudo -u www-data /edx/bin/python.edxapp ./manage.py lms --settings aws changepassword user1
sudo -u www-data /edx/bin/python.edxapp ./manage.py lms --settings aws shell

from django.contrib.auth.models import User
me = User.objects.get(username="user1")
me.is_superuser = True
me.is_staff = True
me.save()
exit()

*Lưu ý: Username chính là user1 trong user1@domain.com, các bạn khi thực hiện thay đổi user thì lưu ý thay đổi luôn phần bôi đen theo nhé

Sau đó login vào đường dẫn:

http://openedx.domain.com:18010/home

Tại đây các bạn đã có thể tạo các khóa học và xem lại tại

http://openedx.domain.com

Một số lỗi khi cài đặt Open edX

1. Python package version không đúng với yêu cầu của Open edX.

Một số package của Python yêu cầu chính xác version để tránh xung đột, do đó nếu bạn gặp lỗi kiểu như thế này

Could not find a version that satisfies the requirement lxml==3.7.0 (from -r requirements.txt (line 4)) (from versions: )
No matching distribution found for lxml==3.7.0

bạn có thể xóa package và cài lại đúng version Open edX yêu cầu, ví dụ package lxml yêu cầu version 3.7.0 nhưng bạn đã cài đặt phiên bản mới nhất là 4.2.5

pip uninstall lxml
pip install --upgrade lxml==3.7.0

2. Không kết nối được với Rabbit cluster

Lỗi như sau:

connected to epmd (port 4369) on cluster_node1
epmd reports node 'rabbit' running on port 25672
TCP connection succeeded but Erlang distribution failed
suggestion: hostname mismatch?
suggestion: is the cookie set correctly?
suggestion: is the Erlang distribution using TLS?

Rabbitmq bị một lỗi khi cài đặt, đó là nếu Hostname của bạn khác localhost thì khi Open edX cài đặt Rabbitmq sẽ dùng Hostname đó làm Hostname cho node của Rabbitmq, vì vậy nếu connect mà không khai báo thêm @hostname thì sẽ bị lỗi missmatch Hostname, trong khi Task Ansible của Open edX sử lệnh rabbitmqctl mặc định không khai báo Hostname vì vậy sẽ bị Failed.

Nếu gặp lỗi này,  set hostname = localhost và cài chạy lại script cài đặt

echo localhost > /etc/hostname
hostname localhost
sysctl kernel.hostname=localhost

Sau đó thực hiện chạy lại

wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/native.sh -O - | bash

3. Không start được Apparmor

Nếu bị lỗi “apparmor.service: control process exited“, các bạn chạy lệnh sau:

find /etc/apparmor.d/ -iname "*snap*"
/etc/apparmor.d/usr.lib.snapd.snap-confine.real
/etc/apparmor.d/cache/usr.lib.snapd.snap-confine.real
/etc/apparmor.d/local/usr.lib.snapd.snap-confine.real

move tất cả các file tìm được vào folder /root/ và chạy lại lệnh cài đặt

Kết luận

Như vậy là đã hoàn thành quá trình cài đặt Open edX, hy vọng qua bài viết này sẽ giúp các bạn cài đặt Open edX thành công.

Rate This Article

Leave A Comment?