ỨNG DỤNG MÃ NGUỒN MỞ DRUPA XÂY DỰNG WEBSITE CÁC TRƯỜNG TRUNG HỌC PHỔ THÔNG
Trang 1BÁO CÁO THỰC TẬP CHUYÊN NGHÀNH
ĐỀ TÀI: ỨNG DỤNG MÃ NGUỒN MỞ DRUPAL
XÂY DỰNG WEBSITE CÁC
TRƯỜNG TRUNG HỌC PHỔ THÔNG
Giảng viên hướng dẫn: TS.Phan Anh Phong
Nghệ An, tháng 4 năm 2015
Trang 2LỜI CẢM ƠN
Lời đầu tiên, em xin được gửi lời cảm ơn chân thành tới các Thầy, các Cô trongtrường Đại học Vinh, đặc biệt là các Thầy Cô trong khoa Công nghệ thông tin –những người đã trực tiếp giảng dạy, giúp đỡ chúng em trong suốt những năm thánghọc tập ở trường, cảm ơn nhà trường và khoa CNTT đã tạo điều kiện cho chúng em
có cơ sở để chuẩn bị tốt cho công việc học tập và rèn luyện các kỹ năng cần thiếtkhi trở thành người kỹ sư CNTT thực sự
Sinh viên CNTT ngày nay phải không ngừng học hỏi, cập nhật những cái mới
và biết ứng dụng những kiến thức đã được học vào thực tiễn của cuộc sống Đây lànhững bước đầu tiên để chúng em đi sâu vào tìm hiểu trong lĩnh vực công nghệthông tin, trên cơ sở những kiến thức đã được học trong những năm học vừa qua
Để hoàn thành báo cáo này, ngoài sự cố gắng nỗ lực của bản thân còn có sự tậntình giúp đỡ và giảng dạy của các thầy, cô giáo trong khoa CNTT Trường Đại họcVinh Chúng em xin được gửi lời cảm ơn chân thành tới thầy Phan Anh Phong đãnhiệt tình hướng dẫn chúng em trong quá trình thực hiện đề tài này
Vì thời gian và trình độ còn hạn chế nên chắc chắn em không tránh khỏi nhữngthiếu sót Chúng em rất mong nhận được những góp ý của các thầy cô và các bạn để
để tài này được hoàn thiện hơn
Trang 3LỜI CẢM ƠN 3
LỜI MỞ ĐẦU 4
CHƯƠNG 1: TỔNG QUAN VỀ DRUPAL 5
1.1 Drupal là gì? 6
1.2 Tổng Quan 9
1.2.1 Ứng Dụng 10
1.2.2 Đặc điểm chính 11
1.2.3 Điểm mạnh của Drupal 11
1.2.4 Nhược điểm 12
1.3 Nguyên tắc 13
1.4 Chức năng Drupal 15
1.5 Lý do sử dụng Drupal 16
CHƯƠNG 2: CÁCH CÀI ĐẶT DRUPAL 17
2.1 Cài đặt Drupal 18
2.1.1 Giới thiệu WarmServer 19
2.1.2 Cài đặt WarmServer 20
2.1.3 Cài đặt Drupal 21
2.2 Cách thức Drupal hoạt động 22
2.2.1 User, Permission, Role 23
2.2.2 Comment 24
2.2.3 Taxonomy 25
2.2.4 Database 26
2.2.5 Path 27
2.2.6 Theme 28
2.2.7 Region, Block, Menu 29
CHƯƠNG 3: WEBSITE TRƯỜNG THPT 30
3.1 Mô hình dữ liệu Logic 32
3.2 Mô tả chức năng của hệ thống 33
3.2.1 Mô tả tổng quát hệ thống 34
3.2.2 Mô tả chức năng của hệ thống 35
3.3 Giao diện người dùng 36
3.3.1 Giao diện chính 37
3.3.2 Giao diện viết bài 38
3.3.3 View hiển thị tất cả các bài viết 38
CHƯƠNG 4: TÀI LIỆU THAM KHẢO 39
KẾT LUẬN 40
Trang 4
CHƯƠNG 1: TỔNG QUAN VỀ DRUPAL
1.1 Giới thiệu về phần mềm mã nguồn mở
Mã nguồn mở (open source) là những phần mềm được công bố toàn bộ mã
nguồn để cộng đồng cùng sử dụng và phát triển
Lợi ích lớn nhất trong việc chuyển đổi sang phần mềm tự do nguồn mở là giảm tổng chi phí sở hữu, từ các yếu tố sau:
- Miễn phí bản quyền phần mềm
- Miễn phí các phiên bản nâng cấp trong toàn bộ vòng đời sử dụng sản phẩm
- Giảm chi phí phát triển phần mềm đáp ứng theo yêu cầu nghiệp vụ (sử dụng phần mềm,mô-đun có sẵn để phát triển tiếp, sửa đổi điều chỉnh cho phù hợp với nghiệp vụ)
- Kéo dài thời gian sử dụng/tái sử dụng các phần cứng, thiết bị trong khi vẫn đảm bảo hiệu năng toàn hệ thống
Tăng cường độ tin cậy (có thể kiểm chứng không có mã độc, “cửa sau” với mã nguồn được phân phối kèm), ổn định (tuân theo các chuẩn mở ứng dụng lâu dài), tính an toàn, bảo mật (theo báo cáo của Gartner & nhiều tổ chức phân tích độc lập) toàn hệ thống
1.2 Drupal là gì?
Drupal là một khung sườn phát triển phần mềm hướng mô-đun, một hệ quản trị
nội dung miễn phí và mã nguồn mở
Drupal cho phép người quản trị hệ thống tạo và tổ chức dữ liệu, tùy chỉnh cách trình bày,
tự động hóa các tác vụ điều hành và quản lý hệ thống
Drupal có cấu trúc lập trình rất tinh vi, dựa trên đó, hầu hết các tác vụ phức tạp có thể được giải quyết với rất ít đoạn mã được viết, thậm chí không cần
Đôi khi, Drupal cũng được gọi là "khung sườn phát triển ứng dụng web", vì kiến trúc thông minh và uyển chuyển của nó
Drupal được chạy trên rất nhiều môi trường khác nhau, bao gồm Windows, Mac OS
X, Linux, FreeBSD, OpenBSD và các môi trường hỗ trợ máy phục vụ
web Apache (phiên bản 1.3+) hoặc IIS (phiên bản 5+) có hỗ trợ ngôn ngữ PHP (phiên bản 4.3.3+) Drupal kết nối với cơ sở dữ liệu MySQL hoặc PostgreSQL để lưu nội dung
và các thiết lập
Tên Drupal được phát âm là "Droo - puhl", bắt nguồn từ cách phát âm của từ druppel
theo tiếng Anh đọc theo kiểu Hà Lan gần giống như từ "Drop" trong tiếng Anh vì thế logo của Drupal có hình dạng của giọt nước
Trang 5Từ tháng 7 năm 2007 đến tháng sáu năm 2008, mã nguồn Drupal đã được tải về từ
website http://drupal.org hơn 1,4 triệu lần.
Hiện nay, có một cộng đồng rộng lớn đang giúp đỡ phát triển Drupal
1.3 Tổng quan
1.3.1 Ứng dụng
Website thảo luận, website cộng đồng
Website nội bộ (Intranet), website doanh nghiệp
Website cá nhân
Website thương mại điện tử
Thư mục tài nguyên
Hệ thống quản lý công trình phát triển phần mềm
Hệ thống quản lý quan hệ khách hàng
Hệ thống quản lý thông tin MIS
Hệ thống quản lý đào tạo trực tuyến
Hệ thống quản lý nhân lực trực tuyến
Cấu trúc linh hoạt giúp các lập trình viên mở rộng chức năng không hạn chế theo nhucầu sử dụng
Drupal cực kỳ thân thiện với công cụ tìm kiếm, đó là một lợi thế rất lớn khi SEO luôn là một vấn đề được quan tâm đối với bất kỳ trang web nào
Tính năng Multiple giúp bạn có nhiều website với một lần cài đặt Drupal Giúp bạn điều khiển và quản lý dễ dàng hơn
Drupal chạy được cả trên server Linux và Windows trong khi Jooma chỉ chạy tốt trênserver Linux
Trang 61.3.4 Nhược điểm
o Drupal được đánh giá là khó sử dụng với người dùng mới Việc tạo các Menu khiến người dung cảm thấy thực sự bối rối Có lẽ sự bối rối này chính vì thói quen sử dụngJoomla
o Drupal có ít các thành phần mở rộng (extensions) hơn Joomla Mỗi khi có phiên bản Drupal mới bạn phải chờ các nhà cung cấp nâng cấp extensions của họ để tương thích
o Cách bố trí của website Drupal khiến người mới sử dụng khó tìm kiếm và đánh giá nên dùng extensions nào
Drupal hỗ trợ các chuẩn cũ và mới, trong đó có HTML và CSS
Đòi hỏi ít tài nguyên:
Để đạt hiệu quả cao nhất, Drupal khuyến khích các mã lệnh tiết kiệm (thí dụ như dùng
ít truy vấn CSDL) Drupal cũng chỉ cần rất ít đòi hỏi về server, chỉ yêu cầu những cấuhình phổ biến Cụ thể là Drupal cần hoạt động trơn tru với Apache, PHP và MySQLhoặc Postgresql
Dễ dùng: Dễ dùng đối với nhà phát triển, nhà quản lí và người dùng.
Cộng tác: Hỗ trợ các hệ thống chia sẻ thông tin.
1.5 Chức năng của Drupal
Drupal có thể được sử dụng để xây dựng hầu hết các loại website, từ website cá nhân cho đến những ứng dụng bán hàng phức tạp
Drupal giúp người dùng có thể phát triển tính năng cách độc lập, đóng gói trong các
module Hiện nay, ở drupal.org, cộng đồng đã đóng góp rất nhiều module với tập các
tính năng đồ sộ Nếu sử dụng thành thạo và khéo léo các module được cộng đồng đóng góp, các ứng dụng web sẽ được phát triển nhanh hơn trên nền tảng Drupal
Ngoài ra, với kiến trúc module, người dùng có thể xây dựng các bản phân phối bằng cách liên kết các module, cung cấp các thiết lập mặc định để xây dựng nên các ứng dụng chạy trên nền Drupal đáp ứng được các nhu cầu cụ thể
Trang 71.6 Lý do sử dụng Drupal
Drupal là một trong những CMS miễn phí lớn hàng đầu thế giới với cộng đồng
thành viên vững mạnh, bởi các tính năng hoàn hảo của nó: cấu trúc linh hoạt, cơ chế hook
đa dạng, cũng như khả năng tùy chỉnh để đáp ứng mọi yêu cầu thiết kế Vài năm trước đây, drupal vẫn còn khá mới mẻ và xa lạ với cộng đồng lập trình VN, lý do chính là do nhu cầu của người dùng web vẫn chưa cao, và cuộc chạy đua về giá khiến các nhà phát triển website luôn lựa chọn cho mình những cms đơn giản để thiết kế nhanh gọn hơn Tuy nhiên hiện nay không ít doanh nghiệp đã nhận ra sự cần thiết của một website
chuyên nghiệp, dễ nâng cấp và sử dụng lâu dài hơn thay cho các website cơ bản
Điều đáng chú ý nhất ở CMS Drupal trước hết là tính bảo mật cao Hệ thống API đa dạng
từ form api, database api, sẵn sàng cho các lập trình viên sử dụng, đã tích hợp sẵn các thuật toán filter mã độc SQL injection hầu như là không thể xảy ra với một website đượclập trình tốt Đây cũng là lý do drupal được chọn làm nền tảng của trang whitehouse
So với các cms phổ biến khác như wordpress, drupal có một thế mạnh hơn hẳn là có cơ chế hook đa dạng, bạn có thể can thiệp và xử lý trước và sau khi một node được save, một comment được đăng, hay một user vừa được đăng ký Bên cạnh đó, cấu trúc drupal
có thể tùy chỉnh thêm field vào các type - tính năng có sẵn trong drupal core
Ngoài ra, vì có hệ thống khá đồ sộ nên drupal core đã tích hợp sẵn một số tính năng để tăng performance như module cache, với tùy chỉnh đa dạng: cache page, cache block, cache theo phân quyền người dùng, cùng hệ thống cache api Hình ảnh update lên cũngđược xử lý để giảm kích thước thông qua image api, cho phép scale & crop ảnh tự động
Ngoài ra bạn còn có thể dễ dàng phân nhóm người dùng, mỗi nhóm với phân quyền riêngcủa họ - đây cũng là một chức năng có sẵn trong drupal core Cuối cùng, nếu bạn muốn xây dựng website chuyên về thương mại điện tử, hay mạng xã hội, thì drupal vẫn có những gói package dành riêng cho những website đó Có thể nói, thiết kế website drupal
là xu hướng đã đang và sẽ còn phát triển trong làng thiết kế web hiện nay
Trang 8CHƯƠNG 2: CÀI ĐẶT DRUPAL
2.1 Cài đặt Drupal
2.1.0 Tìm hiểu về Local Host
Localhost là từ ghép của hai chữ “local” và “host“ Local dịch theo nghĩa tin học là máy
tính của bạn, Host theo nghĩa tin học là máy chủ Vậy localhost nghĩa là một máy chủ được vận hành trên máy tính của bạn
Localhost giống hosting ở chỗ nó cũng giúp bạn lưu trữ dữ liệu website, tuy nhiên dữ liệunày được lưu ngay tại ổ cứng của bạn, còn hosting lưu tại máy chủ của nhà cung cấp hosting
Localhost bao gồm nhiều ứng dụng đi kèm với nhau và tất cả các ứng dụng đó sẽ kết hợp với nhau để tạo ra một môi trường có thể chạy mã nguồn Drupal trên máy tính của chính bạn bao gồm:
Phần mềm Webserver tên Apache, đây là webserver thông dụng nhất
Phần mềm PHP để xử lý mã PHP vì Drupal viết bằng ngôn ngữ PHP
Phần mềm MySQL Server để lưu trữ và xử lý cơ sở dữ liệu, do Drupal sử dụng MySQL làm nền tảng cơ sở dữ liệu Cơ sở dữ liệu thường được mình viết theo chữ tiếng Anh là database
Phần mềm PHPMyAdmin để xem và quản lý cơ sở dữ liệu MySQL
Như vậy, đối chiếu với yêu cầu cơ bản của một website Drupal thì localhost đã hoàn toàn đáp ứng được
Trang 9Mỗi phần mềm thì đều có những đặc điểm riêng đa phần là khác nhau (chủ yếu ở giao diện, phương thức sử dụng thao tác) nhưng quan trọng nhất đối với chúng ta là phần mềm
đó phải được phát triển cập nhật liên tục vì nó phải phù hợp và tương thích với những
phiên bản PHP mới và MySQL mới Và thực chất thì Wampserver dễ cài đặt và sử dụng
hơn rất nhiều, nó được đông đảo cộng đồng sử dụng
2.1.1 Giới thiệu WarmSever
WAMP là chữ viết tắt của Windows, Apache, MySQL, PHP / Perl / Python WAMP
là một hình thức của máy chủ nhỏ có thể chạy trên hầu như bất kỳ hệ điều hành
Windows WAMP gồm Apache 2, PHP 5 (cổng SMTP bị vô hiệu hóa), và MySQL (phpMyAdmin và SQLitemanager được cài đặt để quản lý cơ sở dữ liệu của bạn) được cài đặt sẵn Một biểu tượng trên khay hệ thống hiển thị trạng thái của WAMP, cho phép bạn biết:
Nếu WAMP hoạt động nhưng không có dịch vụ được mở (biểu tượng sẽ xuấthiện màu đỏ)
Nếu WAMP đang chạy và một dịch vụ được mở (biểu tượng sẽ xuất hiện màuvàng)
Nếu WAMP đang chạy với tất cả các dịch vụ mở (biểu tượng sẽ xuất hiện màutrắng)
Apache và MySQL được coi là dịch vụ (có thể bị vô hiệu hóa bằng cách nhấp chuộttrái vào biểu tượng trên thanh tác vụ, rê chuột trên các dịch vụ mà bạn muốn vô hiệuhóa và chọn “Stop Server”)
Các tập tin hoặc các trang web được lưu trữ trên máy chủ WAMP trên máy của bạn,
các bạn có thể truy cập vào bằng đường dẫn http:/localhost hoặc http://127.0.0.1 trong
thanh địa chỉ của trình duyệt web của bạn
WAMP phải được chạy để truy cập vào một trong các địa chỉ trên Nếu bạn muốnchia sẻ tập tin hay trang web với những người khác, click vào biểu tượng nằm trênkhay hệ thống của bạn và chọn vào “Put Online ” Bạn phải có quyền truy cập vàoInternet mới có thể tiếp tục
C10 SP1 giành cho máy chạy Windown 32
bits : http://www.microsoft.com/download/en/details.aspx?id=8328
VC10 SP1 giành cho máy chạy Windown 64
bits : http://www.microsoft.com/download/en/details.aspx?id=1352
Trang 10Sau khi đã cài đặt bộ framework này thì chúng ta bắt tay vào cài đặt WampServer ngaythôi:
Bước 1: Truy cập vào trang chủ của Phần mềm tại địa chỉ http://www.wampserver.com/en/
Bước 2 : Chọn Tab menu “Download” Hoặc kéo xuống phần như hình :
Bước 3: Tiến hành chạy file cài đặt : Wampserver sau khi tải từ trên trang chủ củachương trình
– Như vậy là đã hoàn thiện cài đặt xong chương trình Wamserver cho máy tính của chúng ta
– Tiếp theo là tiến hành chạy chương trình: Từ màn hình Desktop ta chọn chạy chương trình ” Wamserver”
– Khi biểu tượng WampSever chuyển từ màu Đỏ- sang màu Vàng
– rồi chuyển sang màu Xanh thì coi như đã cài đặt chương trình thành công và chạy thànhcông chương trình
– Nên chú tắt các chương trình có khả năng gây xung đột với chương trình dẫn đến không chạy như Skype trùng prot 80 Nếu chương trình chuyển sang màu vàng nhưng không chuyển sang màu xanh khi chạy thì chúng ta nên tắt skypre hoặc các chương trình tương tự rồi Restart toàn bộ chương trình thì có thể chạy được
– Ta chọn Localhost để chạy Sever
– Chọn PhpMyAndmin để quản trị database
– Ngoài ra còn có nhiều tùy chọn khác như: Start All Services để khởi chạy server, Stop All Services để dừng chạy Server, và Resrart All Services để ngừng chạy Server Như vậy giờ bạn có thể bắt đầu cài đặt website động offline trên Localhost
Trang 112.1.3 Cài đặt drupal
Bước 1: Download & Extract Drupal
Truy cập vào website https://drupal.org/download để tải về bộ cài đặt Drupal.
Nhấp vào button Download Drupal 7.26 Website sẽ chuyển đến trang download Drupal sourcecode Hiện tại bản mới nhất của Drupal là 7.26 Bạn chọn và tải bản này về
Sau khi tải về và giải nén, ta copy sourcecode và bỏ vào thư mục cài đặt Wamp của máy
chúng ta :C/wamp/www/
Ở đây tôi đặt tên thư mục chưa sourcecode Drupal là mywebsite.
Bước 2 Tạo Database: tạo một Database mới có tên là mywebsite Đã nói ở phần cài đặt
local host
Bước 3 Điền thông tin & Cài đặt
Trang 12Chúng ta đã đi được hơn 2/3 chặng đường Bây giờ chúng ta sẽ chính thức cài đặt Drupal
website.Truy cập vào đường dẫn http://localhost:4242/mywebsite/install.php để vào trang cài đặt Drupal.Chọn gói cài đặt là Standard Nhấn Save and Continue.
Chọn ngôn ngữ mặc định là English Nhấn Save and Continue.
Tại mục cài database, bạn chọn các thông số như sau:
Databasetype: MySQL, MariaDB, or equivalent
Databasename: mywebsite
Database username: root
Database password: để trống
Trang 13Nhấn Save & Continue
Chờ trong 1’30s để hoàn tất quá trình cài đặt
Đến bước này, bạn chỉ cần điền các thông tin liên quan đến website
Trang 14Nhấn Save & Continue
Trang 152.2 Các thành phần chính trong Drupal
2.2.0 Modul
Module là phần mềm (mã) mở rộng các tính năng Drupal và/hoặc các chức năng Các
module core được tích hợp trong bộ tải về của Drupal, và bạn có thể bật chức năng của của nó mà không cần cài đặt phần mềm bổ sung Các module đóng góp được tải về trong mục download các module của drupal.org, và cài đặt trong thư mục cài đặt Drupalcủa bạn Bạn cũng có thể tạo ra các module riêng của bạn, điều này đòi hỏi một sự hiểu biết thấu đáo về Drupal, lập trình PHP, và các module của Drupal API
Một modul gồm các thuộc tính cơ bản sau:
Name: Tên chính thức của modul, ảnh hưởng trực tiếp tới các hàm kết nối với hệ thống
Display name: Tên gợi nhớ, được trình bày ở trang điều hành modul
Description: Giới thiệu ngắn gọn về chức năng của modul, được trình bày ở trang điều hành modul
Vesion: mã số phiên bản của modul
Dependencle: tên của modul mà modul đang thiết kế yêu cầu Modul sẽ không được kích hoạt nếu các modul yêu cầu không tồn tại hoặc chưa được kích hoạt
Package: phân nhóm chức năng chứa đựng modul
Trang 162.2.1 User, Permisstion, Role
Mỗi người truy cập vào trang web của bạn, cho dù họ có tài khoản và đăng nhập hoặcghé thăm trang web nặc danh, được xem là một người sử dụng Drupal Mỗi người sửdụng có số ID, và người người sử dụng không phải vô danh có tên người dùng và địachỉ email Các thông tin khác cũng có thể được liên kết với người sử dụng bởi cácmodule, ví dụ, nếu bạn sử dụng các module Profile core, bạn có thể định nghĩa thêmcác trường trong profile người dùng
Người dùng vô danh có ID=0 Người sử dụng có ID=1 là tài khoản người dùng bạntạo ra khi bạn cài đặt Drupal và là người dùng đặc biệt có quyền làm mọi thứ trêntrang web
Những người dùng khác được gán quyền thông qua Role
2.2.2 Node, Comment
Một Node trong Drupal là một thuật ngữ chung cho một phần của nội dung trên trang
web của bạn (Lưu ý rằng sự từ "Node" không phải là từ có ý nghĩa trong toán học như một phần của mạng.) Một số ví dụ về các Node:
• Các trang của các quyển sách(Pages in books)
• Các chủ đề thảo luận trong diễn đàn (Discussion topics in forums)
• Các trang trong blog(Entries in blogs)
• Các bài viết tin tức (News article stories)
Mỗi Node trên trang web của bạn có một kiểu nội dung (Content type) Nó cũng có
ID, Tiêu đề, Ngày viết, Tác giả (một người dùng trên trang web), Nội dung… Bằng cách sử dụng Module (CCK)
Trang 17Comment cũng là một loại nội dung bạn có thể có trên trang web của bạn (nếu bạn đã
kích hoạt module comment ) Mỗi comment gắn với một Node cụ thể
2.2.3 Taxonomy
Drupal có một hệ thống phân loại nội dung, mà được gọi là Taxonomy Bạn có thể định
nghĩa từ vựng của riêng bạn (vocabularies – groups of taxonomy terms), và thêm terms cho mỗi từ vựng
Từ vựng có thể là ngang hàng hoặc phân cấp, có thể cho phép lựa chọn một hoặc nhiều,
và cũng có thể được "free tagging" (có nghĩa là khi tạo hoặc chỉnh sửa nội dung, bạn có thể thêm terms mới) Mỗi từ vựng có thể được gắn với một hoặc nhiều loại nội dung, và theo cách này, các Node trên trang web của bạn có thể được nhóm lại thành các loại, được dán nhãn, hoặc được phân loại trong bất kỳ cách nào bạn chọn
Trang 18Comment và User cũng có các bảng cơ sở dữ liệu riêng của nó, và Role, Permission,
và các thiết lập khác cũng được lưu trữ trong các bảng cơ sở dữ liệu