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.
Contents
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.
Leave A Comment?