Hướng dẫn biên dịch và deploy Sakai trên Windows

Standard

Chào các bạn, sau vài ngày vật vã tìm cách cài cho được Sakai từ Sakai souce, mình đã rút ra được vài điều và muốn chia sẻ lại cho tất cả các bạn.

Bài viết của mình sẽ hướng dẫn các bạn biên dịch, deploy mã nguồn Sakai mới nhất 2.7.0 bằng Apache Maven,  Apache Tomcat,  Java trên Windows.

Chuẩn bị: Trước tiên các bạn down các gói cần thiết về.

Sakai 2.7.0:

http://source.sakaiproject.org/release/2.7.0/artifacts/sakai-src-2.7.0.zip

Maven 2.2.1:

http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-2.2.1-bin.zip

Tomcat 5.5.30: nhớ là Tomcat 5 đó nhé, bản cũ hơn bản này cũng được vì Sakai 2.7.0 không chạy được trên Tomcat 6 hay Tomcat 7

http://mirror-fpt-telecom.fpt.net/apache/tomcat/tomcat-5/v5.5.30/bin/apache-tomcat-5.5.30.zip

Java 6:

http://www.oracle.com/technetwork/java/javase/downloads/jdk6-jsp-136632.html

MySQL:

http://www.mysql.com/downloads/mysql/

MySQL Java Connector:

http://dev.mysql.com/downloads/mirror.php?id=390509#mirrors

Cài đặt:
Trước khi cài đặt lưu ý với các bạn một vấn đề: khi bạn cài các phần mềm trên bạn nên để trong thư mục có đường dẫn không có chứa khoảng trắng. Ví dụ:
Good: C:\opt\tomcat\, C:\sakaistuff\installs\tomcat\
Bad: C:\program files\tomcat\, C:\opt\apache tomcat 5.5.28\
Cài đặt Java: bạn cài đặt gói jdk vừa down vào thư mục, ví dụ của mình là C:\opt\java.
Cài đặt biến môi trường cho Java: để cài đặt biến môi trường bạn vào My Computer –> Click chuột phải chọn Properties –> Advanced system settings –> Environment Valuables ( cài này trên Windows 7, trên XP tương tự). Trong System Variables, bấm New –> Bạn điền tên biến và giá trị vào sau đó OK.
Với JAVA có biến sau:
Tên biến:

JAVA_HOME

Giá trị: đường dẫn tới thư mục cài java, ví dụ của mình là

C:\opt\java\jdk1.6.0_20

Thêm vào đuôi biến Path giá trị như sau: nhớ gõ dấu “;” để ngăn cách nhé.

C:\opt\java\jdk1.6.0_20\bin

Cài đặt Maven: giải nén gói maven vào thư mục C:\opt\maven. Sau đó cài đặt các biên môi trường sau:
Tên biến:

MAVEN_HOME

Giá trị: đường dẫn tới thư mục cài Maven, ví dụ của mình là

C:\opt\maven

Tương tự thêm vào đuôi biến Path giá trị:

C:\opt\maven\bin

Tên biến:

MAVEN_OPTS

Gia trị: bạn cứ copy y chang rồi dán vào, xuống phần cài đặt Tomcat mình sẽ giải thích rõ tại sao chọn thông số như vậy.

Xms256m –Xmx512m -XX:PermSize=64m -XX:MaxPermSize=128m

Tạo thư mục .m2 để chứa thư viện biên dịch bằng lệnh sau:

mkdir %HOMEDRIVE%%HOMEPATH%\.m2\repository

Trên Windows thư mục Home mặc định là thư mục user của bạn ví dụ của mình là: C:\Users\hoaihuongbk
Tạo một file settings.xml trong thư mục .m2 để khai báo với Maven biết server home Tomcat nằm ở đâu với nội dung như sau:

Anh2
Trong đó : c:\opt\tomcat là đường dẫn tới thư mục cài Tomcat trên máy bạn. Bạn cũng có thể thay chỗ đó bằng

${env.CATALINA_HOME}

để chỉ cần chỉnh sửa trong System Environment là xong.
Nếu network của bạn cần proxy thì bạn thêm vào đoạn code sau:

Anh3

Cài đặt Tomcat: tương tự như những cài đặt trước bạn cài tomcat vào thư mục C:\opt\tomcat và cài đặt biến môi trường như sau:
Tên biến:

CATALINA_HOME

Giá trị: đường dẫn tới thư mục cài tomcat trên máy bạn, của mình là

C:\opt\tomcat

Thêm vào đuôi biến Path giá trị:

C:\opt\tomcat\bin

Tạo file setenv.bat đặt trogn thư mục bin của tomcat với nội dung như sau:

set JAVA_OPTS=-server -Xms256m -Xmx512m -XX:PermSize=64m -XX:MaxPermSize=128m -XX:NewSize=192m -XX:MaxNewSize=384m -Djava.awt.headless=true -Dhttp.agent=Sakai -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false -Dsun.lang.ClassLoader.allowArraySyntax=true

Tới đây bạn để ý các giá trị Xms256m, Xmx512m: đó là giá trị quy định kích thước của đối tượng Java heap, khởi đầu là 256MB và lớn nhất là 512MB, cái này phụ thuộc vào dung lượng RAM trên máy bạn, nếu RAM 1GB thì nên để y như mình đề nghị, RAM 2GB thì bạn có thể chỉnh thành Xms512m, Xmx1024m, RAM 3G trở lên mình chưa thử, chú ý là giá trị Xms không được bằng hoặc lớn hơn giá trị Xmx. Tiếp đến giá trị -XX:PermSize=64m -XX:MaxPermSize=128m là giá trị vùng nhớ để load các class java, cũng tùy vào RAM của bạn mà nên để kích thước vừa phải, mình test trên RAM 1GB thì giá trị như trên, RAM 2GB thì có thể chỉnh thành -XX:PermSize=128m -XX:MaxPermSize=512m.
Một chú ý quan trọng là các giá trị trên phải đồng bộ giữa MAVEN_OPTS và JAVA_OPTS
Copy file MySQL Java Connecter (file *.jar nhé) vào thư mục:

C:\opt\tomcat\common\lib

Cấu hình Sakai: bạn giải nén sakai vào một thư mục nào đó mà bạn muốn với khuyến cáo đường dẫn như đầu bài viết. Ví dụ của mình là C:\opt\sakai.
Tạo thư mục sakai trong thư mục tomcat và copy file sakai.properties từ C:\opt\sakai\reference\docs vào thư mục sakai vừa tạo. Sau đó chỉnh sửa nội dung lại như sau:
Tìm và comment các thông số trong phần HSQLDB setting:

## HSQLDB settings – on by default
#vendor@org.sakaiproject.service.framework.sql.SqlService=hsqldb
#driverClassName@javax.sql.BaseDataSource=org.hsqldb.jdbcDriver
#hibernate.dialect=org.hibernate.dialect.HSQLDialect
#validationQuery@javax.sql.BaseDataSource=select 1 from
SYSTEM_USERS
# two hsqldb storage options: first for in-memory (no persistence between runs), second for disk based
#url@javax.sql.BaseDataSource=jdbc:hsqldb:.
#url@javax.sql.BaseDataSource=jdbc:hsqldb:${sakai.home}/db/sakai.db

Tìm và chỉnh sửa 2 dòng sau:

Set username@javax.sql.BaseDataSource=sakaiuser
Set password@javax.sql.BaseDataSource=sakaipwd

Trong đó “sakaiuser”, “sakaipwd” lần lượt là username và password để truy cập cơ sở dữ liệu sẽ được tạo trong hướng dẫn cài MySQL sau.
Tìm và uncomment các thông số trong phần MySQL

## MySQL settings – make sure to alter as appropriate
vendor@org.sakaiproject.db.api.SqlService=mysql
driverClassName@javax.sql.BaseDataSource=com.mysql.jdbc.Driver
hibernate.dialect=org.hibernate.dialect.MySQLDialect
url@javax.sql.BaseDataSource=jdbc:mysql://127.0.0.1:3306/sakai?
useUnicode=true&characterEncoding=UTF-8
validationQuery@javax.sql.BaseDataSource=select 1 from DUAL
defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED

Cài đặt MySQL: tương tự bạn cũng cài đặt MySQL vào thư mục C:\opt\mysql.
Tạo biến môi trường,
Tên biến:

MySQL_HOME

Giá trị: đường dẫn tới thư mục cài mysql, ví dụ của mình là

C:\opt\mysql

Thêm vào cuối biến Path:

C:\opt\mysql

Tạo cơ sở dữ liệu:

create database sakai default character set utf8;

Tiếp tục gõ các lệnh sau:

grant all on sakai.* to sakaiuser@’localhost’ identified
by ‘sakaipwd’;
grant all on sakai.* to sakaiuser@’127.0.0.1′ identified
by ‘sakaipwd’;
flush privileges;

Trong đó “sakaiuser”, “sakaipwd” trùng với giá trị lúc nãy đã cài đặt.
Biên dịch và deploy:
Tạo file Master POM cho Sakai: gõ các dòng lệnh sau trong cmd

cd c:\opt\sakai\master
mvn clean install

Deploy Sakai: gõ các dòng lệnh sau trong cmd

cd c:\opt\sakai
mvn clean install sakai:deploy

Nếu lần đầu tiên biên dịch, chương trình sẽ tự động down các gói thư viện cần thiết nên thời gian có thể hơi lâu, chừng 2 giờ đồng hồ, tranh thủ kiếm tách cafe nhâm nhi tí quay lại là có, hehe.
Sau khi biên dịch và deploy thành công, các bạn chạy Tomcat bằng lệnh sau:

startup.bat

Mở browser lên và gõ vào địa chỉ:

http://localhost:8080/portal

Thướng thức thành quả đạt được…
Tắt Tomcat: gõ dòng lệnh sau trong cmd

shutdown.bat

Bạn đừng nản lòng khi biên dịch lỗi hoặc xảy ra hiện tượng outOfMemory, các bạn chỉ cần chỉnh lại các giá trị bộ nhớ mà mình nói lúc nãy đó.
Còn nhiều vấn đề muốn nói nhưng thôi để các bạn nào quan tâm thì nghiên cứu thêm:

http://confluence.sakaiproject.org/display/DOC/Sakai+2.7

Chúc các bạn thành công !!!

16 thoughts on “Hướng dẫn biên dịch và deploy Sakai trên Windows

  1. Bài của bạn rất chi tiết, rất dễ hiểu.Tuy nhiên để pro hơn cũng cần cài đặt thêm tham số URIEncoding=”UTF-8″ cho các connection port 8080, 8009,..
    Và cũng cần thiết đặt dạng Service on Windows nữa như link http://confluence.sakaiproject.org/display/DOC/Install+Guide+-+Binary+Install+%282.6%29.
    Cuối cùng là thiết lập các giá trị -User.lang, -User.location để start đúng ngôn ngữ định dạng.
    Thank!

  2. hoaihuong8x

    Hehe thanks thhoa nhé, mình cũng mới mò thoai, với người mới bắt đầu với Sakai có lẻ những cài đặt như vậy là khá òi. Hi vọng có thể trao đổi với bạn về Sakai được không?

    • Mình sẳn sàng thui!Trao đổi kinh nghiệm về Sakai là điều nên làm, nên làm rộng rãi hơn nữa ở VN mình. Vì ở nước mình phát triển hệ thống này còn chậm và ít quá.

  3. hoaihuong8x

    Vậy thhoa có thể cho mình contact ( Y!M, Email) của bạn hem để có gì trao đổi trực tiếp! Ah mà thhoa ở TPHCM hay ở đâu?

  4. Tuan.Nguyen

    bạn ơi, mình đã deploy thành công sakai rồi. nhưng sao mình chạy localhost:8080/portal thì nó báo ko có đường dẫn này : Lỗi 404

  5. linhnd

    hj. Xin chào các bạn, mình mới tìm hiểu sakai được 3 ngày. Mình cài thì ok rồi nhưng lại rắc rối cái là mình lại cài uPortal nữa nên nó đụng cổng 8080, các bạn có cách nào cài sakai chạy trên cổng 8081 ko?

  6. trần trung hiếu

    chị ơi ! chị giúp em sửa lỗi này được không ạ !
    Hai bước đầu tiên c:\opt\sakai\master > mvn clean install và c:\opt\sakai > mvn clean install sakai:deploy thì successfull nhưng đến khi em startup.bat tomcat thì bị lỗi

    1. info main org.sakaiproject.db.impl.basicsqlservice – deploy()
    2. info main org.sakaiproject.log.impl.log4jConfigurationManage – deploy()
    3. info main org.sakaiproject.component.impl.basicconfigurationsevice – deploy()

    Em cảm ơn chị nhiều lắm !

  7. Nguyễn Đình Tiến

    Chào các bạn!
    Mình cũng mới tìm hiểu về SAKAI. Mình đang viết Đồ án Tốt nghiệp về Chức năng của nó.
    Trước là xin các anh chị và các bạn nếu có nguồn tài liệu quý nào về SAKAI, mong các anh chị và các bạn giúp em.
    Thứ hai là: Em đang gặp chút rắc rối với việc Tạo một thư mục (.m2) ở phần cài đặt MAVEN.
    Mong các anh chị và các bạn sớm phản hồi trong thời gian sớm nhất có thể.
    Em xin chân thành cảm ơn!

  8. Nguyễn Đình Tiến

    Ở phần cài đặ MAVEN, em nhập câu lệnh “mkdir %HOMEDRIVE%%HOMEPATH%\.m2\repository” vào CMD và vào Run, nó vẫn không tạo được file (.m2). Nhưng khi em vào CMD, em chỉ nhập: (mkdir .m2) thì mới tạo được File (.m2). Như vậy có thì sẽ có ảnh hưởng gì hay xảy ra lỗi gì trong quá trình cài đặt không ạ

  9. Nguyễn Đình Tiến

    Em xin lỗi vì lại làm phiền anh chị!
    Em đã gỡ được rắc rối trước.
    Bây giờ đang gặp khó khăn ở chỗ:

    Tạo cơ sở dữ liệu:
    create database sakai default character set utf8;
    Tiếp tục gõ các lệnh sau:
    grant all on sakai.* to sakaiuser@’localhost’ identified
    by ‘sakaipwd’;
    grant all on sakai.* to sakaiuser@’127.0.0.1′ identified
    by ‘sakaipwd’;
    flush privileges;
    Trong đó “sakaiuser”, “sakaipwd” trùng với giá trị lúc nãy đã cài đặt.
    Tạo CSDL như thế nào và các Câu lệnh đó được gõ vào chỗ nào?
    Em chân thành xin lỗi và cảm ơn anh chị!
    Mong cố gắng giúp em sớm nhất có thể!

  10. kk

    Bài khá kỹ rồi nhưng sao còn nhiều câu hỏi chưa giải dáp giúp người ta kìa
    Hic, tui cũng gặp lỗi:
    HTTP Status 404 – /portal
    type Status report
    message /portal
    description The requested resource (/portal) is not available.
    Apache Tomcat/5.5.35

  11. hoaihuong8x

    Xin lỗi các bạn lâu rồi không có vào blog và cũng lâu lắm rồi không có làm về Sakai nên cũng hem biết phải giúp các bạn như thế nào cả.
    Kinh nghiệm của bản thân khi gặp lỗi là gõ đúng lỗi đó lên google và thường những trang xuất hiện đầu tiên là những trang có xác suất có solution.🙂

  12. muafiu

    https://skydrive.live.com/view.aspx?cid=DFE9A14E27A91115&resid=DFE9A14E27A91115!397&app=WordPdf

    Mình mới làm 1 cái đầy đủ steps by steps cài đặt có hình ảnh đây ^^ .
    Chúc các bạn làm đề tài sakai đc điểm cao😦 .

    • Chào bạn muafiu, bạn cho mình hỏi xíu nha, mình đã làm được tới đoạn mvn clean install và đã BUILD SUCCESS, nhưng qua step sau là “mvn clean install sakai:deploy” thì mình bị FAIL và lỗi là “sakaiproject.maven.plugins:sakai:1.4.0:deploy are missing or invalid”, bạn có thể giúp mình cách fix cái lỗi này không. Cảm ơn bạn nhiều !

  13. Mình cũng vừa tìm hiểu được một trang có thể giúp các bạn cài SAKAI và chạy mysql trên phpmyadmin của XAMPP version 6.7 nè.
    Share cho mọi người cùng tìm hiểu nha.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s