Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
LỜI CẢM ƠN
Trước hết tôi xin chân thành cảm ơn các thầy cô giáo khoa công nghệ
thông tin trường ĐH Phương Đông đã trang bị cho tôi những kiến thức cơ bản
để có thể thực hiện tốt đồ án này.
Tôi xin chân thành cảm ơn TS Cao Kim Ánh đã tận tình giúp đỡ và hướng
dẫn tôi hoàn thành đồ án này.
Mặc dù rất nỗ lực, song do thời gian không cho phép nên tôi chưa thể
hoàn thiện được đầy đủ các chức năng của hệ thống, cũng như còn nhiều điều
thiếu sót. Rất mong nhận được ý kiến đóng góp từ phía các thầy cô và các bạn
để đồ án này sẽ hoàn thiện hơn. Trong tương lai tôi sẽ cố gắng đưa dự án này
vào thực tiễn, đóng góp phần nhỏ bé của mình cho nền giáo dục nước nhà.
Hà Nội, ngày 03 tháng 05 năm 2009.
Sinh viên thực hiện:
MAI THÀNH HIẾU
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 1
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
LỜI MỞ ĐẦU
Với sự phát triển mạnh mẽ của công nghệ thông tin và sự lớn mạnh, rộng
khắp của mạng máy tính toàn cầu. Việc ứng dụng tin học vào các lĩnh vực của
cuộc sống ngày càng được quan tâm và sử dụng hiệu quả, đem lại lợi ích to lớn
về mọi mặt. Sự lớn mạnh của mạng máy tính đã xóa bỏ mọi ranh giới về không
gian và thời gian để đem con người và tri thức xích lại gần nhau hơn. Thông qua
mạng máy tính, con người có thể được tiếp xúc với mọi loại tri thức như tri thức
văn hóa, xã hội, khoa học và kỹ thuật
Trong lĩnh vực giáo dục, với sự thay đổi không ngừng của công nghệ và
kỹ thuật, mạng Internet sẽ là nơi học tập, trao đổi kinh nghiệm và truyền đạt
những tri thức mới một cách nhanh chóng và hiệu quả nhất. Hệ thống giáo dục
của chúng ta trong những năm gần đây cũng đã có sự chuyển mình theo xu thế
mới. Các trường học từ tiểu học cho đến đại học đã áp dụng đưa tin học vào
giảng dạy như là một môn học bắt buộc. Hình thức thi cử cũng đã chuyển dần từ
thi tự luận sang hình thức thi trắc nghiệm. Đây là hình thức kiểm tra rất khoa
học, đánh giá được chính xác năng lực của thí sinh, giảm bớt các khâu dư thừa
trong thi cử từ đó giảm thiểu được tiêu cực. Kì thi đại học - cao đẳng trước kia
năm nào cũng diễn ra rất căng thẳng thì nay tình hình đã có vẻ dễ thở hơn rất
nhiều.
Để góp một phần công sức nhỏ nhoi của mình vào công cuộc cái cách
giáo dục của đất nước tôi đã phát triển hệ thống thi trắc nghiệm Online: EZ-
TEST nhằm giúp đỡ cho các bạn học sinh, sinh viên có điều kiện làm quen với
hình thức thi trắc nghiệm đồng thời cũng là cách để các bạn tự kiểm tra kiến
thức cho mình trước các kì thi lớn.
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 2
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
Hệ thống EZ-TEST được phát triển dựa trên công nghệ mã nguồn mở
LAMP (Linux, Apache, MySQL và PHP) nên khi triển khai sẽ hoàn toàn miễn
phí. Trong tương lai, tôi cũng hi vọng phát triển và hoàn thiện thêm nhiều tính
năng mới và hữu dụng cho hệ thống để có thể triển khai miễn phí cho các trung
tâm giáo dục và các trường học trên cả nước.
Hà Nội, ngày 03 tháng 05 năm 2009.
Sinh viên:
MAI THÀNH HIẾU
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 3
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
Phần I
TỔNG QUAN VỀ HỆ THỐNG
1.1. GIỚI THIỆU CHUNG.
Hệ thống quản lý giáo dục và đào tạo trên mạng là một hệ thống phục vụ
cho mục đích đào tạo và học tập trực tuyến. Tham gia vào hệ thống, người dùng
có thể theo đuổi các khóa học với những chủ đề bất kỳ mà họ muốn. Hệ thống
cũng cung cấp các tính năng quản lý học viên, việc học tập và thực hiện các kỳ
thi, các bài kiểm tra trên mạng.
Đào tạo trực tuyến cho phép cung cấp nội dung các chương trình đào tạo,
thi và kiểm tra, theo dõi tình hình học tập của học viên thông qua việc kết nối
mạng, quá trình quản lý và kiểm tra trực tuyến cũng được thực hiện trên mạng
máy tính.
Học tập trực tuyến là quá trình học tập, tham khảo và đọc tài liệu, giáo
trình, thông qua mạng internet. Người sử dụng có thể giao tiếp với nhau thông
qua mạng máy tính để trao đổi thông tin, trao đổi kinh nghiệm, hỏi đáp thắc mắc
với những người khác, thực hiện các bài kiểm tra về các khoá học của mình
ngay trên máy tính( test online).
Học tập trực tuyến mang lại hiệu quả cao hơn, giảm các chi phí và tăng
khả năng tiếp thu kiến thức. Học tập trực tuyến còn giúp mọi người tiếp cận với
các nguồn tri thức phong phú, mới và tiếp cận với các công nghệ hiện đại.
Ngày nay, với sự phát triển mạnh mẽ của các ứng dụng máy tính cũng
như mạng truyền thông, nhu cầu học tập trực tuyến ngày càng không thể thiếu
được đối với tất cả mọi người.
Trong tương lai, việc học tập trực tuyến sẽ trở nên rất phổ biến, vượt qua
mọi rào cản về không gian và thời gian cũng như tình trạng kinh tế, xã hội để
phổ biến kiến thức cho mọi người.
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 4
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
Trong thời gian làm đồ án tốt nghiệp, tôi đã xây dựng một hệ thống
website phục vụ nhu cầu học tập, tra cứu, trao đổi kiến thức trên mạng với thành
phần chính là hệ thống thi trắc nghiệm trực tuyến phục vụ cho nhu cầu học tập,
trao đổi, đánh giá của các bạn học sinh và sinh viên.
1.2. GIỚI THIỆU E-LEARNING.
1.2.1. E-learning là gì?
E-learning đang là một thuật ngữ xuất hiện ngày càng nhiều trong lĩnh
vực giáo dục và đào tạo dựa trên công nghệ mạng Internet/Intranet.
E-learning là một hình thức giáo dục và đào tạo dựa trên mạng máy tính
trong đó bao gồm: Nội dung sẽ được truyền tải dưới nhiều dạng khác nhau, quản
lý nội dung đào tạo, cộng đồng các học viên, những người tham gia xây dựng và
phát triển.
E-learning là hình thức truyền tải nội dung bằng phương tiện điện tử qua
trình duyệt web, ví dụ như Netscape Navigator, hay Internet Explorer thông qua
mạng Internet hay Intranet, hoặc thông qua các phương tiện khác như CD-ROM
, DVD, CD, VCD.Việc truyển khai sẽ trở nên dễ dàng và thuận tiện hơn khi chất
lượng đường truyền ngày càng tăng, cùng với môi trường trực quan và tương tác
tự nhiên trên Web.
Lý do và sự xuất hiện của E-learning?
Khi các công ty trên thế giới phát triển trên quy mô toàn cầu thì các ràng
buộc về mặt thời gian và vị trí làm cho việc sử dụng các hình thức đào tạo
truyền thống đem lại rất ít hiệu quả. Do vậy hiện nay nhiều công ty đã lựa chọn
các chương trình đào tạo E-learning để đào tạo nhân viên cho mình.
Với sự phát triển của công nghệ nói chung và Internet nói riêng, những
người sử dụng Internet trên khắp thế giới đang nhận ra khả năng của Internet có
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 5
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
thể đem lại cho họ tri thức và các kỹ năng cần thiết cho những cơ hội trong thế
kỷ 21. E-learning không phải là hình thức đào tạo truyền thống, mà nó đem lại
cho mọi người cơ hội học tập nhiều hơn, với chi phí thấp hơn cũng như sự tiện
lợi hơn so với những gì mà chúng ta có các đây vài năm.
1.2.2. Những ưu điểm của học tập trực tuyến.
Tính mềm dẻo, tính truy cập, tính tiện lợi: Người sử dụng có thể học tập,
tham khảo bất kỳ tài liệu nào, thuộc bất cứ lĩnh vực vào các thời điểm bất kỳ,
không giới hạn thời gian.
Không phụ thuộc vào hệ điều hành (cross platform): E-learning có thể
được truy cập bằng các phần mềm duyệt Web trên bất kỳ nền tảng nào:
Windows, Mac, Unix, OS/2, Amiga, … Có thể truyền tải chương trình đào tạo
của mình tới bất cứ máy tính nào trên Internet hay Intranet mà không phải xây
dựng các chương trình khác nhau cho từng hệ điều hành.
Phần mềm duyệt Web và các kết nối Internet được sử dụng rộng rãi: Máy
tính hầu hết đều có một trình duyệt, như Nestcape Navigator và kết nối vào
mạng Intranet của trường, hoặc truy cập trực tiếp vào Internet.
Sự phân tán rộng rãi với chi phí thấp: Không cần phải có một cơ chế phân
tán nào, E-Learning có thể được truy cập từ bất cứ một máy tính nào ở bất cứ
đâu trên thế giới, với chi phí rất thấp.
Dễ dàng cập nhật: Nếu có những thay đổi đối với những chương trình đào
tạo, học tập sau khi đã cài đặt ban đầu, thì những thay đổi sẽ được thực hiện trên
máy chủ có chứa các chương trình đào tạo được cập nhật rất mới mẻ. Các khóa
học, giáo trình, tài liệu liên quan luôn được cập nhật, nâng cấp và bổ sung, sửa
đổi.
Giảm giá thành và tiết kiệm thời gian: Không cần phải có bất cứ chi phí đi
lại nào cho người sử dụng ở xa vì Web luôn có trong máy tính kể cả máy tính
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 6
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
xách tay cũng như máy tính để bàn, và tiết kiệm được chi phí mua sách, tài liệu
tham khảo
1.2.3. Nhược điểm của học tập trực tuyến.
Hạn chế băng thông: Những hạn chế của băng thông làm chậm tốc độ tải
âm thanh, video, và các dạng dữ liệu đồ họa (nhất là các giáo trình điện tử được
thiết kế theo dạng multimedia) làm cho người sử dụng mất nhiều thời gian cho
việc chờ đợi để tải về máy của mình. Vấn đề này càng phức tạp hơn đối với
mạng công cộng internet nói chung và điều kiện truy cập internet ở Việt Nam
nói riêng, nơi mà hiện tượng tắc nghẽn thường xuyên xảy ra. Tuy nhiên, với sự
phát triển mạng mẽ của công nghệ, trong tương lai, những vấn đề này sẽ được
giải quyết.
Các chương trình học tập trực tuyến ngày nay chưa sinh động, quá tĩnh:
Khi công nghệ ngày càng phát triển thì mức độ tương tác của e-learning lại bị
giới hạn rất nhiều. Trở ngại này ảnh hưởng khá nhiều đến hiệu suất đào tạo.
Không phải tất cả những kiến thức của mọi lĩnh vực đều được truyền đạt
hết thông qua máy tính, nhất là trong những vấn đề cần phải có sự tương tác tiếp
xúc của con người, học tập trực tuyến chỉ là hình thức hỗ trợ cho việc trao đổi,
học tập chứ không thay thế được hoàn toàn những hình thức đã thực sự tốt.
Các chương trình sử dụng cho học tập trực tuyến phải luôn luôn cập nhật
thường xuyên, phải có một đội ngũ những người duy trì và phát triển hệ thống
trong một thời gian dài.
1.3. TÌM HIỂU VỀ GIÁO TRÌNH ĐIỆN TỬ
Giáo trình điện tử là những tài liệu chỉ dẫn, giảng dạy, tài liệu tham khảo
được xây dựng và phát triển dựa trên những tiện ích và công nghệ máy tính, giáo
trình điện tử không lưu trữ trong các trang sách, hay tài liệu bằng giấy mà nó sẽ
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 7
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
tương tác với người dùng thông qua máy tính. Giáo trình điện tử có thể được lưu
trữ trong CDROM, trong máy tính hay trên mạng Internet
Với sự phát triển mạnh mẽ của công nghệ máy tính, việc xây dựng và
phát triển các giáo trình điện tử ngày càng đuợc quan tâm vị lợi ích to lớn mà
giáo trình điện tử mang lại cho người sử dụng.
1.3.1. Một số ưu điểm của giáo trình điện tử.
Khả năng miêu tả bài học trực quan, sinh động, ứng dụng các công nghệ
multimedia vào các giáo trình giúp cho sự tiếp thu bài học tốt hơn, ví dụ như các
đoạn phim minh hoạ bài giảng, hướng dẫn học tập bằng tiếng nói.
Thuận tiện, vị giáo trình điện tử lưu trữ trên các thiết bị như CDROM, ổ
cứng, mạng ineternet nên rất thuận tiện cho việc học tập, nghiên cứu ở mọi
không gian, thời gian, chỉ cần người sử dụng có máy tính chứa các chức năng
cần thiết để sử dụng giáo trình điện tử.
Thời gian tồn tại của một giáo trình lâu hơn so với việc lưu trữ các giáo
trình, tài liệu bằng giấy, hoặc các trang sách.
1.3.2. Nhược điểm
Đối với những giáo trình điện tử ứng dụng multimedia thì thường có dung
lượng lớn, so với điều kiện đường truyền hiện nay ở nứơc ta thì tốc độ tải các
giáo trình điện tử còn chậm.
Nhiều giáo trình điện tử có giá thành cao. Ví dụ như các giáo trình
English Study, bộ giáo trình của SCC/IBT.
Những vùng công nghệ thông tin chưa phát triển thì các giáo trình điện tử
sẽ không phát huy được tác dụng.
Những giáo trình điện tử phải được cập nhật, bổ sung tri thức liên tục,
nhất là trong lĩnh vực công nghệ thông tin.
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 8
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
1.3.3. Một số công cụ trợ giúp xây dựng giáo trình điện tử:
Giáo trình điện tử hiện nay được tạo ra từ rất nhiều tiện ích khác nhau có
trong máy tính, phổ biến trong các công cụ dùng để truyền đạt tri thức trên mạng
này là PowerPoint, Adobe Flash, Adobe Acrobat Ngoài ra còn sử dụng các
công cụ hỗ trợ khác như các tiện ích thu phát âm thanh, thu phát các đoạn
phim
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 9
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
Phần II.
NỀN TẢNG VÀ CÔNG CỤ XÂY DỰNG HỆ THỐNG
2.1. GIỚI THIỆU MÃ NGUỒN MỞ VÀ PHẦN MỀM TỰ DO.
2.1.1. Mã nguồn mở.
Thuật ngữ “mã nguồn mở” được dùng để chỉ một phần mềm được phát
hành kèm theo mã nguồn tạo ra nó. Người dùng có thể tự do sử dụng, sửa đổi và
hoàn thiện nó mà không phải lo lắng về các vấn đề pháp lý. Phần mềm nguồn
mở cho phép người dùng phân phối lại, tái tạo, sửa đổi nội dung để phù hợp với
yêu cầu công việc đồng thời cải tiến phần mềm.
Tư tưởng phân phối mã nguồn kèm theo chương trình là nhằm khuyến
khích sự hợp tác làm việc và những đóng góp tình nguyện trong việc sửa đổi, cải
tiến phần mềm, phát triển thêm những tính năng mới và chia sẻ thông tin với
mọi người.
Nhờ có sự hợp tác làm việc của các lập trình viên, cũng như sự đóng góp
của những người tình nguyện, phần mềm đến với người dùng ngày càng hoàn
thiện thêm về mặt chất lượng và trở nên tốt hơn các phần mềm nguồn đóng
tương ứng. Người dùng được khuyến khích tùy biến chương trình theo nhu cầu
của bản thân, đây thực sự là một tư tưởng tốt đẹp.
Các dự án mã nguồn mở đã huy động được tài năng của rất nhiều người,
với rất nhiều kỹ năng khác nhau, ngoài kỹ năng lập trình. Rất nhiều dự án mã
nguồn mở đã được xây dựng nhờ các họa sỹ, nhạc sỹ, nhà thiết kế và những
người biên soạn tài liệu nhờ đó đã tạo ra những sản phẩm hoàn chỉnh.
2.1.2. Phần mềm tự do.
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 10
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
Trong những năm 1960 các phần mềm thường được phân phối tự do bởi
các công ty như IBM hoặc được chia sẻ giữa những người sử sụng phần mềm
với nhau. Phần mềm này được cung cấp kèm theo mã nguồn để có thể sửa đổi
và cải tiến; đây chính là hạt giống đầu tiên cho phần mềm nguồn mở. Tuy nhiên,
theo thời gian các thiết bị phần cứng trở nên rẻ hơn và lợi nhuận của các công ty
giảm xuống trong những năm 1970 khiến các nhà sản xuất coi phần mềm là sản
phẩm kinh doanh.
Vào thang 9, năm 1983 Richard Matthew Stallman, lập trình viên của
phòng thí nghiệm MIT Artiffical Intelligence đã sáng lập ra dự án GNU để tạo
ra một hệ điều hành miễn phí giống như UNIX. Stallman quan tâm đến sự phát
triển nhanh chóng của các phần mềm sở hữu và việc người dùng không có khả
năng xem và sửa đổi các phần mềm nằm trên máy họ. Những nhà phát triển
cũng bị hạn chế và điều này trái ngược với sự tự do về mã nguồn có trước đó.
Bằng việc sáng lập ra dự án GNU, Stallman đã phát động phong trào phần mềm
tự do và đến tháng 10 năm 1985 ông sáng lập ra Tổ chức phần mềm tự do.
Stallman đã đặt nền móng cho những định nghĩa và tính chất cho phần
mềm nguồn mở, cũng như những khái niệm về “copyleft”. Ông là tác giả chính
cho một số giấy phép “copyleft”, bao gồm GNU/GPL (General Public License),
giấy phép phần mềm tự do được sử dụng rộng rãi nhất hiện nay.
Hệ thống EZ-TEST là một phần mềm mã nguồn mở, tuân thủ theo giấy phép
GNU/GPL.
2.2. GIỚI THIỆU HỆ ĐIỀU HÀNH UBUNTU (LINUX).
Ubuntu là một hệ điều hành hoàn toàn mở, được xây dựng dưạ trên nhân
(kernel) Linux. Cộng đồng người dùng Ubuntu được hình thành bởi những tư
tưởng đã gắn kèm theo triết lý Ubuntu (Ubuntu Philosophy) là : người dùng
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 11
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
được sử dụng phần mềm miễn phí, mỗi một phần mềm đều có thể sử dụng dưới
giao diện ngôn ngữ bản địa của người dùng và quan trọng nhất là người dùng
hoàn toàn tự do chỉnh sửa và thay đổi phần mềm để phù hợp với nhu cầu sử
dụng của ḿnh. Vì những lý do đã nêu trên đây :
Ubuntu sẽ được luôn luôn phân phối miễn phí và cũng chẳng thêm phí
nào cho phiên bản dành cho các công ty, Enterprise edition.
Ubuntu sẽ luôn luôn bao gồm các bản phiên dịch tốt nhất và sẽ luôn luôn
tạo ra một cơ cấu truy cập (accessibility infrastructure) tốt nhất theo khả năng
cung cấp của cộng đồng lập trình phần mềm tự do, nhằm mục đích cho phép
càng nhiều người càng có thể sử dụng Ubuntu.
Các phiên bản Ubuntu được công bố đều đặn, với tần xuất định trước; mỗi
6 tháng sẽ ra một phiên bản mới. Người dùng có thể dùng phiên bản Ubuntu ổn
định hoặc dùng phiên bản đang phát triển. Mỗi phiên bản sẽ được hỗ trợ tối
thiểu trong vòng 18 tháng.
Ubuntu hoàn toàn tuân theo những nguyên tắc phát triển phần mềm mă
nguồn mở và khuyến khích mọi người dùng phần mềm mă nguồn mở, cải thiện
chúng và phân phối lại cho những người khác.
Cộng đồng Ubuntu bao gồm người phát triển, lập trình viên, người thử
nghiệm, người soạn tài liệu kỹ thuật, người dùng thử các tài liệu kỹ thuật, người
dịch và, quan trọng nhất, những người dùng Ubuntu hằng ngày.
2.3 APACHE, PHP & MYSQL.
2.3.1. Apache Web Server.
a. Giới thiệu về Apache Web Server:
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 12
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
Apache là một phần mềm Web server được cung cấp bởi tập đoàn Apache
Group. Đây là một Web server được hỗ trợ để chạy chủ yếu trên UNIX va
LINUX và rất được phổ biến bởi tính chặt chẽ, uyển chuyển và linh hoạt. Hiện
nay Apache là một Web server đang quản lý hơn 50% số Web site đang có trên
thế giới.
b. Tổ chức Web site:
Trước khi bắt đầu xây dựng một Web site, người sử dụng có thể muốn tìm
hiểu tổ chức của nó. Khi có nhiều hơn các khả năng suy nghĩ về các cách tổ
chức cấu trúc một Web site, người sử dụng có thể suy nghĩ về nó như một viễn
cảnh đi lại. Trong những suy nghĩ thêm của nó về khía cạnh này, sẽ nảy sinh ra
những câu hỏi: Người sử dụng có thể làm gì để dễ dàng giữ gìn Web site của
mình? Các quy ước nào sẽ làm đơn giản Web site của họ?
c. Cài đặt Apache.
Để cài đặt Apache trên Ubuntu, từ giao diện Terminal gõ:
$sudo apt-get install apache2
Hệ thống sẽ tự động kết nối đến kho phần mềm, download về và cài đặt.
Sau khi cài đặt thông thường Apache sẽ được cấu hình tự động kết nối qua cổng
80 và tiến hành chạy như một dịch vụ mặc định của hệ điều hành.
Trường hợp Apache chưa được khởi động, ta có thể khởi động Apache
bằng lệnh sau trong giao diện Terminal:
$ sudo /etc/init.d/apache2 start
Để kiểm tra xem Apache đã hoạt động hay chưa, ta mở trình duyệt lên và
gõ vào địa chỉ URL: http://localhost
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 13
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
Nếu thành công, ta sẽ nhận được lời chào từ Apache như sau:
Nếu không người sử dụng sẽ nhận được một thông báo lỗi, có thể xem lại
file error.log trong thư mục log. Một khi các cài đặt cơ sở đang làm việc, người
sử dụng phải cấu hình các thuộc tính của nó bằng cách sửa đổi nội dung các file
trong thư mục conf.
d. Virtual Host:
Vitual Host là một sức mạnh thật sự của Apache. Virtual Host cho phép
Apache Web Server chạy cùng lúc nhiều Web site. Apache là một HHTP server
đầu tiên cung cấp các hỗ trợ cho việc xây dựng một virtual site. Trong khi các
server của NCSA và các server khác cũng cung cấp sự hỗ trợ virtual site nhưng
Apache cung cấp một khả năng thi hành tốt hơn và có nhiều điểm đặc trưng hơn
các server khác.
Chỉ mới nhìn qua, dường như sự thuận lợi chính của virtual site là chỉ để
tô điểm, nó cho phép nhiều Web site được đánh địa chỉ tên miền của nó trên các
máy đơn đã được chia sẻ. Tuy nhiên sự thuận lợi của nó nhiều kết quả rõ ràng
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 14
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
nằm trong cách quản trị Web site và cách những máy khác sử dụng nó. Một
Virtual host thường được tạo ra nhằm mục đích như sau:
Khách hàng có thể dễ dàng truy cập các Web site của mình trên các server
cho thuê. Từ khi người thuê server có thể sử dụng tên miền của chính mình, các
địa chỉ có khuynh hướng ngắn đi. Điều này đã giúp đỡ việc đưa ra tính chuyên
nghiệp đồng nhất trên thế giới. Những người sử dụng thích nhớ những địa chỉ
ngắn hơn từ khi tên miền có một vài sự thích hợp với tên của các tập đoàn công
ty.
Rút gọn tối đa các máy tính và phần cứng mạng, nhiều site tốc độ chậm
có thể nằm ở tại một máy đơn, điều này làm giảm bớt giá thành của việc đưa
một site lên mạng.
Giảm bớt giá thành về con người kết hợp với các hệ thống quản trị. Thay
cho việc quản lý và cấu hình một server chuyên dụng cho các tên miền. Một
Web server chỉ cần duy trị vài file cấu hình và một số các box. Điều này sẽ dẫn
đến việc giảm một số hệ thống cần để duy tu nó, như vậy việc duy trị một mảng
sẽ đơn giản hơn và ít tốn kém hơn.
Bởi vì hầu hết các Web site khi tạo ra đều không đủ đường truyền lưu
thông để sử dụng hết các tài nguyên trên một máy đơn, điều đó là sự khát khao
từ một người quản trị cá nhân cho phép một server đơn giản trên mạng và chạy
như nhiều máy khác nhau thay vì dành cho phần cứng và tiền bạc để mỗi site
được đưa lên, một vài server cấu hình các lệnh để đưa ra các kết quả như nhau:
một virtual site. Bởi vì phí tổn để cài đặt một server có thể chia xẻ cho nhiều
site, thời gian để cấu hình và quản lý Web site được giảm đi rất nhiều.
Virtual host đã đem lại một khía cạnh chắc chắn của việc tạo ra một trang
Web di động. Khi một site là ảo, nó dễ dàng di chuyển đến một Web server
khác trong cùng một mạng hoặc ở một nơi nào khác. Đây chính là vấn đề của
việc chuyển chỗ các trang HTML của các site đến một máy mới và điều chỉnh
các thông tin DNS (Domain Name Server) của site đưa lên một server mới. Để
việc thích nghi với DNS được cập nhật, đơn giản chỉ cần tạo ra sự đổi hướng
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 15
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
trên server cũ . Điều này cho phép sự lưu thông được trôi chảy mà không có sự
sai sót, đó là một vấn đề quan trọng với các site đang lớn mạnh đang được lưu
thông để tạo ra kinh doanh.
Về mặt lịch sử, khi người sử dụng muốn một site đang host sử dụng tên
miền của họ, sự lựa chọn có thể được là mua hoặc thuê một máy tính và dùng nó
để cấu hình như một Web server. Phải chịu các phí tổn để tiêu tốn cho việc quản
lý server này. Các phí tổn này dễ thường là rất lớn, việc này đã thúc đẩy các nhà
cung cấp dịch vụ Internet (ISP) thêm vào các cách để hỗ trợ nhiều Web site trên
một host, điều này dẫn đến một vài giải pháp gần đây, chẳng hạn như Home
Page Approach.
Home Page Approach tạo ra một địa chỉ giống như:
/>Home Page Approach là một cách thích hợp để phục vụ các trang người
dùng cục bộ. Nhưng khi dùng nó để phục vụ cung cấp thông tin lớn và đang
được truy cập thường xuyên bởi một số lớn người sử dụng thì việc này sẽ tạo ra
một địa chỉ tồi mà rất khó nhớ, tên nhập vào dài, dễ xảy ra sai sót phía người sử
dụng và trông không được chuyên nghiệp lắm.
Xây dựng một virtual host:
Các phạm vi liên quan của virtual host, virtual site và multihomed server
thông thường được sử dụng thay thế cho nhau. Để dễ hie?u hơn, chỉ cần suy
nghĩ chúng như sau:
Để tạo một virtual site, thì cần phải cấu hình một virtual host, để virtual
host làm việc cần phải tạo một mutihomed server, như vậy rõ ràng là có sự khác
nhau giữa chúng.
Một máy tính multihomed là môt máy tính có thể trả lời cùng một lúc đến
nhiều địa chỉ IP. Một máy tính mày có thể được truy cập bởi nhiều tên (chẳng
hạn như www.mailhost.foo.com và www.foo.com) mà nó thi hành cho các địa
chỉ IP như nhau không thể là một máy tính Multihomed.
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 16
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
Việc đặt bí danh, một khả năng cung cấp bởi DNS trong một bảng ghi tài
nguyên CNAME , hoặc liệt kê các tên máy tính trên etc/host/file đằng sau các
địa chỉ IP thị chỉ tiện lợi cho người sử dụng đang truy cập vào một tài nguyên
trên mạng. Thông thường người ta mất nhiều thời gian để nhớ tên, và một vài
tên chẳng hạn như WWW hoặc FTP thì là tiêu chuẩn đặc trưng cho các máy tính
mà nó đưa lên mạng các dịch vụ với tên tương tự. Người sử dụng chỉ cần nhớ
tên miền nơi các tài nguyên nơi các tài nguyên đó sử dụng tên truyền thống
(chẳng hạn www.aple.com, www.mailhost.com hoặc ftp.aple.com ) Một máy
Multihomed cần nhiều hơn thế, nó phải trả lời cho cùng lúc hai hoặc nhiều địa
chỉ IP chẳng hạn địa chỉ IP 1.2.3.4 là địa chỉ được ấn định bởi mạng làm việc
Internet của người sử dụng cung cấp khi họ sign up với chúng.
e .Virtual site:
Virtual site là một Web site mà nó cùng nằm trên một server với các Web
site khác. Mỗi Web site thị được truy cập bằng tên của chúng và chia xẻ tất cả
tài nguyên phần cứng với các virtual site khác. Mặc dù tất các yêu cầu đều được
trả lời bằng các xử lý như nhau trên HTTP server, nhưng các trang chủ khác
nhau được trả về cho mỗi site phụ thuộc vào tên hoặc địa chỉ IP sử dụng khi truy
cập các thông tin.
Một vấn đề về mạng khác là việc phải đánh địa chỉ trước khi có thể
multihome là DNS. DNS cung cấp một tên máy đến dịch vụ chuyển sang IP.
Khi tên máy được đánh số, con người thích sử dụng tên máy hơn. DNS chuyển
các tên sang số và các số sang tên. Sự thay đổi này có ý nghĩa là nếu người sử
dụng kết nối với Internet, và đang chạy với một tên server . Nếu không thị
ngược lại không một ai khác chạy nó. Nếu người sử dụng không phải đang chạy
với DNS của chính mình, họ sẽ cần phải ngang hàng với quyền quản trị mạng
của chính mình để thi hành bất kỳ sự thêm vào hoặc thay đổi DNS.
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 17
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
f. Cấu hình Apache:
Web server sẽ đọc 3 file chứa các chỉ thị cấu hình. Bất kỳ một chỉ nào nào
được hiển thị trong các file này đều sẽ được thực hiện.
Conf/httpd.conf: Chứa các chỉ thị mà nó điều khiển sự thi hành của
server. Tên file có thể được lướt qua với ký hiệu khả chuyển -f.
Conf/srm.conf: Chứa các chỉ thị mà nó điều khiển sự chỉ định các
tài liệu mà server cung cấp cho các client. Tên file có thể được lướt qua với chỉ
thị ResourceConfig.
Conf/access.conf: Chứa các chỉ thị mà nó điều khiển sự truy cập
các tài liệu. Tên file có thể được bỏ qua với chỉ thị AccessConfig.
g. Apache và các dịch vụ hỗ trợ:
HTTPD:
Tên dòng lệnh:
httpd [ -X ] [ -R libexecdir ] [ -d serverroot ] [ -f config]
[ -C directive ] [ -c directive ] [ -D parameter ]
Mô tả:
Là một chương trình HTTP server. Nó được thiết kế để chạy như một tiến
trình deamon một mình. Khi dùng đến dịch vụ này, nó sẽ tạo ra một nhóm các
tiến trình con để đáp ứng các yêu cầu. Để ngừng dịch vụ này, nó sẽ gửi một tín
hiệu TERM đến tiến trình cha. PIG của tiến trình này sẽ ghi lên một file và dưa
vào file cấu hình. HTTPD sẽ được gọi bởi Internet deamon inetd mỗi khi có một
kết nối đến dịch vụ HTTP đã được thiết lập.
Các đối số cụ thể của dòng lệnh
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 18
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
-R libexecdir: Tham số này chỉ có hiệu lực nếu Apache được cài đặt với tập
SHARED_CORE cho phép, nó tác động đến nhân nhị phân của Apache để thay
thế vào trong một file đối tượng chia xẻ động (DSO). File này được dò tìm trên
một đường dẫn hardcoded bên dưới ServerRoot mặc định
-d serverroot: Thiết lập giá trị ban đầu của chỉ thị ServerRoot đến serverroot.
Chức năng này có thể bị bỏ qua bởi dòng lệnh ServerRoot trong file cấu hình.
Mặc định server root là usr/local/apache.
-f : Thực thi các lệnh trong file config khi Startup. Nếu file config không bắt đầu
với a/, lúc đó nó sẽ lấy một một đường dẫn có liên quan đến ServerRoot. Mặc
định của nó là conf/httpd.conf.
-C directive: Thực hiện cấu hình các chỉ thị trước khi đọc file config.
-c directive: Thực hiện cấu hình các chỉ thị sau khi đọc file config.
-D parameter: Thiết lập một thông số cấu hình mà nó có thể sử dụng với cặp thẻ
<IfDefine> … </IfDefine> trong các file cấu hình để bỏ qua có điều kiện hoặc
thực hiện các lệnh.
APACHECTD:
Tên dòng lệnh:
apachectl command [ ]
Mô tả:
Là một đầu vào các HTTP server. Nó được thiết kế để giúp người quản trị
điều khiển các chức năng của Apache HTTPD deamon.
Với các lệnh:
Start: Khởi động Apache deamon. Đưa ra một thông báo lỗi nếu chương trình
đang chạy.
Stop: Ngừng dịch vụ Apache deamon.
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 19
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
Restart: Khởi động lại Apache deamon bằng cách gửi cho nó một SIGHUP.
Lệnh này tự động kiểm tra các file cấu hình qua văn bản cấu hình trước khi bắt
đầu khởi động lại để chắc chắn rằng Apache vẫn còn đang hiện diện trong máy.
Fullstatus: Hiển thị đầy đủ các báo cáo trạng thái từ mod_status. Để lệnh này
được thi hành, cần phải cho phép mod_status trên server và một trình duyệt
text_based chẳng hạn như Lynx có sẵn trong hệ thống. URL sử dụng nó để truy
cập bản báo cáo trạng thái có thể được thiết lập bằng giá trị STATUSURL có
sẵn trong script.
Status: Hiển thị ngắn gọn bảng trạng thái giống như chức năng fullstatus trừ phi
danh sách các yêu cầu phục vụ thời bị bỏ quên.
Configtest: Chạy một đoạn văn bản các cụ pháp của file cấu hình. Nó phân tích
các file cấu hình và các bảng Syntax Ok hoặc thông tin chi tiết về các lỗi cú
pháp đặt biệt.
Help: Hiển thị các thông báo lỗi được sắp xếp.
APXS
Tên dòng lệnh:
apxs -g [ -S variable=value ] -n name
apxs -q [ -S variable=value ] query
apxs -i [ -S variable=value ] [ -n name ] [ -a ] [ -A ] dsofile
apxs -e [ -S variable=value ] [ -n name ] [ -a ] [ -A ] dsofile
Mô tả:
Là một công cụ để xây dựng và các đặt các mô đun mở rộng cho Apache
HTTP server. Được thực hiện bằng cách cài đặt một DSO từ một hay nhiều
nguồn hoặc đối tượng file mà sau đó nó có thể nạp vào Apache trong thời gian
chương trình đang chạy qua chỉ thị LoadModule từ mod_so.
Để sử dụng kỹ thuật mở rộng này, máy tính của người sử dụng phải hỗ trợ
DSO và Apache HTTPD nh? phân phải được xây dựng với mô đun mod_so.
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 20
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
Công cụ apxs sẽ tự động nhắc nhở nếu là các trường hợp ngược lại. Ta cần phải
kiểm tra việc này bằng dòng lệnh:
$ httpd -l
mô đun mod_so phải có trong danh sách được hiển thị. Nếu các yêu cầu này
được thỏa mãn, thị có thể dễ dàng mở rộng các chức năng của Apache server
bằng cách cài đặt các mô đun của mình với kỹ thuật DSO bằng công cụ apxs
này.
Ví dụ:
$ apxs -i -a -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
cp mod_foo.so /path/to/apache/libexec/mod_foo.so
chmod 755 /path/to/apache/libexec/mod_foo.so
[activating module `foo' in /path/to/apache/etc/httpd.conf]
$ apachectl restart
/path/to/apache/sbin/apachectl restart: httpd not running, trying to start
[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module
foo_module
/path/to/apache/sbin/apachectl restart: httpd started
Các đối số File có thể là bất kỳ một file nguồn c (.c), file đối tượng (.o)
hoặc ngay cả một thư việc lưu trữ (.a). Công cụ apxs tự động công nhận các
phần mở rộng này và tử động sử dụng các file nguồn C cho việc biên dịch trong
khi nó chỉ sử dụng các file đối tượng và lưu trữ cho giai đoạn liên kết. Nhưng
khi sử dụng nhiều đối tượng trước biên dịch , phải chắc chắn rằng chứng được
liên kết cho PIC để có thể sử dụng chúng cho một DSO. Cho ví dụ với GCC,
người sử dụng luôn chỉ phải sử dụng -fpic. Đối với các các biên dịch C khác yêu
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 21
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
cầu phải tham khảo tài liệu hướng dẫn của nó hoặc chờ đợi các cờ apxs, để biên
dịch các file đối tượng.
Các đối số cụ thể của dòng lệnh:
- n name: Thiết lập tên mô đun cho chức năng -i (cài đặt) và -g (tạo khuôn mẫu).
Sử dụng nó để chỉ ra tên mô đun. Chức năng -g là bắt buộc, chức năng -I thị có
tác dụng khiến công cụ apxs cố gắng xác định tên từ nguồn hoặc ít nhất cũng
đoán được từ tên file.
-q : Thực hiện ruy vấn cho apxs về các cài đặt nào đó. Tham số truy vấn có thể
là một hoặc nhiều các giá trị:
CC TARGET
CFLAGS SBINDIR
CFLAGS_SHLIB INCLUDEDIR
LD_SHLIB LIBEXECDIR
LDFLAGS_SHLIB SYSCONFDIR
LIBS_SHLIB PREFIX
Sử dụng các chức năng này để hướng dẫn xác định các thông số cài đặt:
INC = I 'apxs -q INCLUDEDIR'
bên trong các Makefile nếu cần hướng dẫn các truy cập đến các file tiêu đề của
Apache.
-S variable = value: Chức năng này thay đổi các cài đặt apx đi kèm với các giá
trị đặc biệt theo sau như:
" Chức năng tạo ra một khuôn mẫu:
-q: chức năng tạo ra một thư mục con và 2 file trong đó: Một file nguồn ví dụ
mô đun tên là mod_name.c mà nó có thể sử dụng như một khuôn mẫu cho việc
tạo các mô đun của chính người sử dụng hoặc như một quá trình khởi động
nhanh cho việc chạy các kỹ thuật apxs. Và một mẫu thư Makefile với mục đích
là dễ tạo và cài đặt các mô đun này.
" Chức năng biên dịch DSO:
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 22
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
-c : Chức năng này chỉ ra thao tác biên dịch. Đầu tiên nó biên dịch các file
nguồn C (.c) của files vào trong các file đối tượng tương ứng (.o) và sau đó cài
đặt một DSO vào trong dsofile bằng cách liên kết các file đối tượng này cùng
với các file đối tượng còn lại (.o và .a) của files.
-o dsofile: Chỉ ra tên file của file DSO đã tạo. Nếu không có sự chỉ định và tên
file không thể đoán được từ bảng liệt kê các file, tên dự phòng mod_unknow.so
được sử dụng.
" Chức năng cài đặt và định dạng DSO:
-i : Chức năng này để chỉ thao tác cài đặt và cài đặt một hoặc nhiều hơn các
DSO vào trong thư mục libexec của server.
-a : Chức năng này để chỉ thao tác kích hoạt đến mô đun bằng cách tự động
thêm vào một dòng LoadModule đến file cấu hình httpd.conf của Apache hoặc
cho phép nó thực thi nếu đã tồn tại.
-A : Chức năng này cũng giống như -a nhưng nó tạo một chỉ thị LoadModule
được đặt thêm vào một dấu (#), có nghĩa là mô đun chỉ cho phép cho các thi
hành ngay sau đó còn lúc đầu thị bị cấm.
-e : Chức năng này dành cho thao tác hiệu chỉnh, có thể sử dụng kèm với chức
năng -a và -A, cũng giống như chức năng -I: Thao tác hiệu chỉnh file cấu hình
httpd.conf của Apache mà không cố găng cài đặt các mô đun.
Ví dụ:
Giả sử người sử dụng đã có sẵn một mô đun Apache tên là mod_foo.c mà nó sẽ
mở rộng chức năng server của Apache. Để làm việc đó, trước hết cần phải biên
dịch một nguồn C vào trong một DSO phù hợp cho việc nạp vào trong Apache
server. Có thể sử dụng lệnh sau:
$ apxs -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 23
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
$ _
Sau đó tiến hành cập nhật cấu hình Apache bằng cách chắc chắn rằng một
chỉ thị LoadModule được đưa ra để nạp DSO này. Để đơn giản bước này, apxs
cung cấp một cách tự động cách cài đặt DSO vào trong thư mục libexec và cập
nhật file httpd.conf.
Bằng cách sử dụng các lệnh:
$ apxs -i -a mod_foo.c
cp mod_foo.so /path/to/apache/libexec/mod_foo.so
chmod 755 /path/to/apache/libexec/mod_foo.so
[activating module `foo' in /path/to/apache/etc/httpd.conf]
$ _
Cách này là một dòng lệnh có tên:
LoadModule foo_module libexec/mod_foo.so
được thêm vào để cấu hình file nếu vẫn chưa được đưa ra. Nếu muốn cấm thao
tác này sử dụng thêm vào chức năng -A.
$ apxs -i -A mod_foo.c
Để kiểm tra nhanh apxs, người sử dụng tạo ra một mẫu ví dụ mô đun
Apache cùng với một thư từ Makefile bằng cách:
$ apxs -g -n foo
Creating [DIR] foo
Creating [FILE] foo/Makefile
Creating [FILE] foo/mod_foo.c
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 24
Hệ thống trắc nghiệm Online. - Mai Thành Hiếu -
$ _
Sau đó có thể biên dịch ngay mô đun ví dụ này vào một DSO và nạp nó
lên Apache server:
$ cd foo
$ make all reload
apxs -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
apxs -i -a -n "foo" mod_foo.so
cp mod_foo.so /path/to/apache/libexec/mod_foo.so
chmod 755 /path/to/apache/libexec/mod_foo.so
[activating module `foo' in /path/to/apache/etc/httpd.conf]
apachectl restart
/path/to/apache/sbin/apachectl restart: httpd không chạy,cố gắng khởi động
[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): nạp foo_module
/path/to/apache/sbin/apachectl restart: httpd khởi động
$ _
Người sử dụng có thể sử dụng apxs để biên dịch các mô đun phức tạp bên
ngoài cây nguồn Apache, cũng như PHP bởi vì apxs tự động chấp nhận nguồn C
và các file đối tượng.
2.3.2. Giới thiệu PHP:
Cùng với Apache, PHP và MySQL đã trở thành chuẩn trên các máy chủ
Web. Rất nhiều phần mềm Web mạnh sử dụng PHP và MySQL (PHP Nuke,
Post Nuke, vBulletin…).
- TRƯỜNG ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG - 25