Tải bản đầy đủ (.docx) (52 trang)

bài tập lớn môn mã nguồn mở

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.89 MB, 52 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
- - - - -o0o- - - - -

BÁO CÁO BÀI TẬP LỚN
MÔN: PHẦN MỀM MÃ NGUỒN MỞ

Đề tài: Xây Dựng Trang Web Giới Thiệu và Bán Điện Thoại

Giảng viên hướng dẫn : Ths.Trần Thanh Huân
Lớp

: KHMT4 – K9

Nhóm thực hiện

:

Nhóm 9

Hà Nội, ngày 01 tháng 05 năm 2018

1


TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
- - - - -o0o- - - - -

BÁO CÁO BÀI TẬP LỚN
MÔN: PHẦN MỀM MÃ NGUỒN MỞ



Đề tài: Xây Dựng Trang Web Giới Thiệu và Bán Điện Thoại

Giảng viên hướng dẫn : Ths.Trần Thanh Huân
Lớp

: KHMT4 – K9

Sinh viên thực hiện

:

Vũ Văn Duy
Dương Đức Tuyến
Hoàng Bá Vũ

Hà Nội, ngày 01 tháng 05 năm 2018

2


LỜI NÓI ĐẦU
Với sự phát triển của Internet đã mang lại nhiều cơ hội để rút ngắn khoảng cách giữa
mọi người trên toàn thế giới. Tận dụng cơ hội mà internet mang lại, nhiều cá nhân và tổ
chức đã cho ra đời nhiều trang web để kết nối mọi người lại với nhau, và mang lại nhiều
tiện ích cho người sửa dụng. Nhưng những website này lại yêu cầu người xây dựng và
người vận hành phải có kiến thức chuyên sâu về các ngôn ngữ lập trình web như HTML,
PHP, JavaScript, CSS.. để đảm bảo nó hoạt động được thông suốt.
Là sinh viên khoa công nghệ thông tin được trang bị nhiều kiến thức đã được học và
tìm hiểu, nhóm 9 chúng em đã quyết định phát triển đề tài " Xây dựng trang web giới

thiệu và bán điện thoại " Các thành phần xây dựng website đều là các sản phẩm mã
nguồn mở, giúp tiết kiệm cả thời gian và chi phí phát triển sản phẩm.
Nhờ sự giúp đỡ tận tình của thầy Ths. Trần Thanh Huân về kiến thức môn học, chúng
em cũng đã cố gắng để hoàn thành bài tập lớn tốt nhất trong khả năng của mình. Tuy đã
cố gắng nhưng do thời gian và kinh nghiệm còn hạn chế nên chương trình không thể
tránh khỏi những sai sót. Chúng em rất mong nhận được sự đánh giá và góp ý của thầy và
các bạn để chương trình được hoàn thiện hơn.
Chúng em xin chân thành cảm ơn!

3


MỤC LỤC

4


PHẦN I. MỞ ĐẦU
Tên đề tài
Tên đề tài : "Xây dựng trang web giới thiệu và bán điện thoại "
Lý do chọn đề tài
Trong những năm trở lại đây thì với sự phát triển mạnh mẽ của ngành khoa học công

1.
2.

nghệ thông tin, nước ta đã và đang trở thành một quốc gia phát triển, và nó đã trở thành
một lĩnh vực trọng điểm đối với hầu hết các nước phát triển trên thế giới. Ngoài ra với sự
phát triển của nó còn kéo theo một số các ngành khác phát triển theo chẳng hạn như: Y tế,
giáo dục, kinh tế, nghiên cứu khoa học,… đời sống của người dân cũng được cải thiện, sự

đáp ứng nhu cầu ngày càng hoàn thiện hơn. Một hệ thống thông tin hóa sẽ giúp làm giảm
thiểu rất nhiều các công việc lưu trữ bằng tay, tiết kiệm thời gian, công đoạn đi lại, chi
phí, nó rất có hiệu quả trong việc quản lý.
Gần đây, phần mềm mã nguồn mở (Open Source) đã được chấp nhận trong các công
ty lớn. Nhiều hợp đồng lớn đã chấp nhận phần mềm mã nguồn mở, chẳng hạn như tại
IBM, Oracle và Sun. Thậm chí Microsoft đã phải lưu tâm đến Open Source như đối thủ
to lớn.
Với mã nguồn mở, việc phân phối và phát triển là một phương pháp lâu dài để tạo ra
phần mềm, người mua được cung cấp cả giải pháp phần mềm lẫn những dòng mã có giấy
phép Open Source. Hơn nữa, các doanh nghiệp vừa và nhỏ cũng sẽ ưa chuộng phần mềm
mã nguồn mở hơn.
Hiện nay đã có một số tổ chức dự định sử dụng Open Source để xây dựng nhân tố cốt
lõi của hệ thống - từ hệ điều hành, cơ sở dữ liệu, ứng dụng và Web server… đến các hệ
thống quản trị nội dung và nhiều phần mềm kinh doanh thông minh.
Xuất phát từ những vấn đề trên, nhóm em đã quyết định chọn đề tài “Xây dựng trang
3.
4.
-

web giới thiệu và bán điện thoại ”.
Mục đích đề tài
Tìm hiểu mã nguồn mở là gì.
Nắm được vị trí, vai trò, giá trị của phần mềm mã nguồn mở hiện nay.
Hiểu và làm chủ được tương đối công nghệ mã nguồn mở PHP
Cài đặt và sử dụng được phần mềm nguồn mở php và framework Laravel Phân tích và
thiết kế các chức năng, giao diện của website thương mại điện tử.
Thiết kế website giới thiệu và bán điện thoại
Bố cục
Nội dung gồm 4 chương:
Chương 1 : Tập trung vào tìm hiểu cơ sở lý thuyết

Chương 2 : Phân tích nghiệp vụ của trang web giới thiệu và bán điện thoại di động
Chương 3: Phân tích hệ thống
Chương 4: Tìm hiểu quá trình cài đặt web giới thiệu và bán điện thoại di động
5


Phương pháp thực hiện

5.

Để hoàn thành được đề tài này, nhóm đã tìm hiểu những nền tảng công nghệ mới,
những khái niệm hoàn toàn mới, bước đầu hơi khó khăn, nhưng đến thời điểm hiện tại
nhóm có thể tự tin làm chủ được công nghệ nhờ những điều sau đây:
-

Đọc, tìm kiếm tài liệu liên quan đến cuộc họp.
Triển khai phân công nhiệm vụ của thành viên một cách rõ ràng nhất.
Hàng tuần triển khai họp nhóm báo cáo tiến độ.
Tham khảo những cấu trúc trên kho Github.
Kỹ năng phân tích và viết báo cáo.

PHẦN II. NỘI DUNG
CHƯƠNG I. CƠ SỞ LÝ THUYẾT
Nội dung chương này sẽ tập chung đi vào lý thuyết phát triển phần mềm theo
hướng cấu phần, nền tảng công nghệ sử dụng để hoàn thành phần mềm
6


1. Tổng quan về mã nguồn mở
1.1.Khái niệm cơ bản


Khái niệm “nguồn mở” có lẽ không còn quá xa lạ với tất cả chúng ta. Thời gian gần
đây, nguồn mở thường xuyên được nhắc đến trên các phương tiện thông tin đại chúng,
như một giải pháp tốt cho Chính Phủ điện tử, nhất là ở những nước nghèo và đang phát
triển. Tất nhiên không phải ai cũng biết thế nào là nguồn mở. Thậm chí, có thể bạn đang
sử dụng phần mềm mã nguồn mở mà không biết. Vậy phần mềm mã nguồn mở là gì? Nó
có những lợi ích và ưu điểm gì so với phần mềm mã nguồn đóng?
Phần mềm là một sản phẩm trí tuệ đặc biệt, đặc trưng cho ngành Công nghệ thông tin
và Công nghệ phần mềm. Một phần mềm được gọi là mã nguồn mở nếu như trên phần
mềm đó ta có thể thực hiện được đầy đủ các thao tác: sản xuất phần mềm, cài đặt phần
mềm, sử dụng phần mềm, thay đổi phần mềm và các thao tác khác. Hay nói cách khác,
phần mềm mã nguồn mở là phần mềm với mã nguồn được công bố và sử dụng một giấy
phép nguồn mở. Giấy phép này cho phép bất cứ ai cũng có thể nghiên cứu, thay đổi và
cải tiến phần mềm và phân phối phần mềm ở dạng chưa thay đổi hoặc đã thay đổi.
Phần mềm được quản lý bởi các quy tắc về bản quyền và sở hữu trí tuệ, cho phép thực
hiện hoặc không thực hiện các thao tác nói trên trong các điều kiện khác nhau. Bản quyền
phần mềm là tài liệu quy định việc thực hiện các thao tác trên phần mềm. Có thể có các
bản quyền phần mềm sở hữu, bản quyền cho phần mềm miễn phí/phần mềm chia sẻ, bản
quyền cho phần mềm tự do và mã nguồn mở.
Định nghĩa Nguồn mở của Tổ chức Sáng kiến Nguồn mở (Open Source Initiative OSI) thể hiện một triết lí nguồn mở và xác định ranh giới về việc sử dụng, thay đổi và tái
phân phối phần mềm nguồn mở. Giấy phép phần mềm cung cấp cho người dùng các
quyền vốn bị cấm bởi bản quyền, gồm các quyền về sử dụng, thay đổi và tái phân phối.
Một vài giấy phép phần mềm nguồn mở đã được thẩm định thuộc giới hạn của Định
nghĩa Nguồn mở. Thí dụ nổi bật nhất là Giấy phép Công cộng GNU (GPL). Trong khi
nguồn mở cho phép công chúng truy cập vào nguồn của một sản phẩm, giấy phép nguồn
mở cho phép tác giả điều chỉnh cách truy cập đó.
1.2. Tình hình nghiên cứu và phát triển

7



Nếu như các phần mềm sở hữu do một chủ thể duy nhất phát triển, quá trình phân tích
thiết kế xây dựng phần mềm được hoạch định và kiểm soát chặt chẽ (mô hình dàn nhạc)
thì phần mềm mã nguồn mở được phát triển theo mô hình chợ trời, trong đó người sử
dụng đóng vai trò của người phát triển phần mềm. Quá trình ra quyết định là động, không
có một định hướng cứng nhắc từ thời điểm ban đầu. Độ tự do của nhà phát triển là rất
lớn, có thể lựa chọn các quyết định theo xu hướng cá nhân, thiểu số và cũng có khi là đa
số. Có rất nhiều trường hợp khi các ý kiến không thống nhất đã sinh ra 2 dòng phần mềm
từ một phần mềm ban đầu trong quá trình phát triển (ví dụ iTexMac và TexShop).
Kịch bản phát triển phổ biến của phần mềm mã nguồn mở là: có một nhà phát triển
đưa ra một phiên bản đầu tiên + ý tưởng về phần mềm. Các nhà phát triển khác hoàn
thiện các chức năng đề ra trong ý tưởng đó, tiếp tục đề xuất tính năng mới. Quá trình liên
tục được lặp lại. Để thuận lợi hơn cho các loại người sử dụng, các phiên bản của phần
mềm mã nguồn mở thường được quy định như sau:
Phiên bản dịch đêm: với mã nguồn được thay đổi thường xuyên, hàng ngày vào buổi
đêm bản nhị phân của phiên bản mới nhất này được dịch. Phiên bản này chứa các tính
năng mới nhất, tuy nhiên chưa được kiểm tra và rà soát kỹ càng, còn tiềm ẩn nhiều lỗi,
chưa ổn định. Phiên bản này chủ yếu cho các nhà phát triển thử nghiệm và hoàn thiện.
Phiên bản thử nghiệm: đã được rà soát các lỗi, tuy nhiên vẫn chưa ổn định. Dành
Phiên bản bền vững: không tích hợp các tính năng chưa ổn định. Dành cho người sử dụng
định khai thác phần mềm.
1.3.Phân loại

Phần mềm mã nguồn mở hiện nay đã đạt đến mức phát triển ổn định, các lỗi cơ bản
được khắc phục, được người sử dụng chấp nhận rộng rãi. Có thể kể ra một vài phần
mềm/bộ phần mềm được sử dụng rộng rãi hiện nay là:
-

FireFox: trình duyệt của Mozilla, cho phép có thể phát triển các plug-in bổ sung. Hay


-

phần mềm Chrome của Google.
Open Office: Bộ soạn thảo văn bản của Sun Micro System, có thể thay thế cho MS

-

Office.
Apache: web server được sử dụng rộng rãi.
PHP-MySQL: Application Server.
Thunder Bird: Mail Client của Mozilla.
8


-

Unikey: Chương trình gõ tiếng việt.
Phần mềm mã nguồn mở có thể được tải về theo cách thông thường như với các phần
mềm miễn phí hoặc chia sẻ. Kho dữ liệu sourceforge.net định nghĩa khung thông tin cần

thiết để cập nhật các thông tin chi tiết về một dự án phần mềm mã nguồn mở.
1.4.Ưu/nhược điểm
 Ưu điểm
- Sử dụng miễn phí: Đối với Website mã nguồn mở thì tính miễn phí luôn là một đặc điểm
vốn có và cũng có thể nói đó là ưu điểm lớn nhất của loại website này. Không cần tốn quá
nhiều thời gian hay công sức, bạn cũng có thể tự tạo cho mình một website miến phí
-

trong khoảng 30 phút đồng hồ.
Nhận được sự hỗ trợ từ cộng đồng người sử dụng: Với việc những trang web mã nguồn

mở được phát triển mạnh mẽ và rộng rãi như hiện nay, phần lớn là do cộng đồng người
sử dụng, IT chia sẻ trên mạng Internet. Do đó trong quá trình xây dựng web mã nguồn
mở, nếu bạn không hiểu hoặc đang gặp phải khó khăn nào đó thì thông qua cộng đồng

-

người sử dụng, bạn có thể tìm được lời giải đáp cho những vấn đề mà bạn đang gặp phải.
Các bản vá lỗi được cập nhật tương đối nhanh: Đối với website mã nguồn mở thì tốc độ
cập nhật các phiên bản, bản vá lỗi nhanh. Do đó, cho dù bạn không am hiểu về bảo mật
thì vẫn có thể được yên tâm phần nào nhờ những bản vá lỗi được chia sẻ trên các diễn
đàn, mạng xã hội.

 Nhược điểm
- Khó khăn trong việc chỉnh sửa và nâng cấp: Một website mã nguồn mở được viết ra

nhằm đáp ứng nhu cầu chung của cộng đồng. Do đó, khi cần tùy biến, chỉnh sửa theo
định hướng của bạn thì bạn sẽ phải chỉnh sửa lại mã nguồn lập trình của website đó.
Đồng thời vẫn phải đảm bảo được website hoạt động ổn định. Đây sẽ là một vấn đề
không hề đơn giản. Nếu bạn thiết kế website mã nguồn mở chỉ với mục đích sử dụng thì
không sao nhưng nếu như bạn cần phải chỉnh sửa theo nhu cầu sử dụng hoặc theo yêu
cầu của khách hàng thì bắt buộc bạn sẽ phải chỉnh sửa Source Code của website đó. Vì
đây không phải là website do bạn tạo ra nên bạn không thể hiểu được hết đặc tính của
loại website này dẫn đến việc chỉnh sửa thường rất phức tạp, mất thời gian và có khi là
-

không thể sửa được.
Tính bảo mật không cao: Mặc dù khả năng cập nhật và vá lỗi nhanh nhưng trong quá
trình vận hành nếu một người nào đó cũng sử dụng web mã nguồn mở như bạn và biết
được lỗ hổng bảo mật trước khi bản vá lỗi được cập nhật thì họ cũng có thể lợi dụng lỗ
hổng bảo mật đó tấn công website, xóa dữ liệu hoặc nguy hiểm hơn là đánh cắp thông tin

quan trọng liên quan đến công việc kinh doanh của bạn.
9


-

Không tạo được nét riêng và tính chuyên nghiệp: Khi bạn thiết kế website bằng mã
nguồn mở thì việc trang web của bạn giống các website khác (về giao diện, chức năng,
… ) là điều hiển nhiên. Như vậy, trang web của bạn sẽ thiếu đi những nét riêng, nét khác
biệt, không tạo được sức thu hút đối với người truy cập bởi vì tâm lý chung của người
dùng là cần sự mới mẻ, phá cách trong thiết kế hay ít nhất cũng là một điều gì đó tạo
điểm nhấn.
1.5.Hệ điều hành nguồn mở thông dụng
Linux được xem là cha đẻ của các hệ điều hành mã nguồn mở hiện nay, như Ubuntu,
Linux Mint, Fedora và tất nhiên là cả hệ điều hành Android cũng do Google phát triển từ
Linux lên. Trên Linux, người dùng có thể dễ dàng tùy biến giao diện hay bất kỳ thứ gì họ
muốn điều mà không thể làm được trên windows. Linux tương thích với nhiều môi
trường phát triển ứng dụng khác nhau và nguồn của cải quý giá cho lập trình viên cũng
như các nhà phát triển ứng dụng. Tuy nhiên, do là hệ điều hành mã nguồn mở tương đối
sơ khai nên số lượng ứng dụng hỗ trợ người dùng rất hạn chế, driver hỗ trợ ứng dụng bên
thứ 3 tương đối ít.
1.6.Các loại giấy phép phần mềm nguồn mở.

Trên thị trường có nhiều loại giấy phép. Có thể chia các giấy phép này thành các loại
-

như sau:
Phần mềm thương mại (Commercial Software): Là phần mềm thuộc bản quyền của tác
giả hoặc nhà sản xuất, chỉ được cung cập ở dạng mã nhị phân, người dùng phải mua và
không có quyền phân phối lai.

Phần mềm thử nghiệm giới hạn (Limited Trial Software): Là những phiên bản -giới hạn
của các phần mềm thương mại được cung cấp miễn phí nhằm mục đích thử nghiệm, giới
thiệu sản phẩm và kích thích người dùng quyết định mua. Loại sản phầm này không chỉ

-

giới hạn về tính ăng và còn giới hạn về thời gian dùng thử (thường là 60 ngày).
Phần mềm chia sẻ (Shareware): Loại phần mềm này có đủ các tính năng và được phân
phối tự do, nhưng có một giấy phép khuyến cáo các cá nhân hoặc tổ chức mua, tùy tình
hình cụ thể. Nhiều tiện ích Internet ( như “WinZip” dùng các thuận lợi của Shareware

-

như một hệ thống phân phối).
Phần mềm sử dụng phí thương mại (Non-commercial Use): Loại phần mềm này được sử
dụng tự do và có thể phân phối lại bỏi các tổ chức phi lợi nhuận. Nhưng các tổ chức kinh
thế, thí dụ các doanh nghiệp... muốn dùng phải mua. Netcape Naviator là một thí dụ của
loại phần mềm này.

10


-

Phần mềm không phải trả phần trăm cho nhà sản xuất (Royalties Free Binaries Software):
Phần mềm được cung cấp dưới dạng nhị phân và được dùng tự do. Thí dụ: bản nhị phân

-

của các phần mềm Internet Explorer và NetMeeting.

Thư viện phần mềm không phải trả phần trăm (Royalties Free Software Libraries): Là
những phần mềm mà mã nhị phân cũng như mã nguồn được dùng và phân phối tự do,
nhưng người dùng không được phép sửa đổi. Thí dụ các thư viện lớp học, các tệp

-

“header”...
Phần mềm mã nguồn mở kiểu BSD – (Open Source BSD-Style): Một nhóm nhỏ khép kín
(closed team) đã phát triển các PMNM theo giấy phép phân phối Berkely (BSD– Berkely
Software Distribution) cho phép sử dụng và phân phối lại các phần mềm này dưới dạng
mã nhị phân và mã nguồn. Tuy người dùng có quyền sửa đổi mã, nhưng về nguyên tắc
nhóm phát triển không cho phép người dùng tự do lấy mã nguồn từ khoa mã ra sửa (gọi
là check-out) và đưa mã đã sửa vào lại kho mã mà không được họ kiểm tra trước (gọi là

-

check-in).
PMNM kiểu Apache (Open Source Apache-styel): Chấp nhận nguồn mở kiểu BSD nhưng
cho phép những người ngoài nhóm phát triển xâm nhập vào lõi của mã nền (core

-

codebase), tức là được phép thực hiện các “check-in”.
PMNM kiểu CopyLeft hay kiểu Linux (Open Source CopyLeft, Linux-style): PMNM
kiểu CopyLeft (trò chơi chữ của Free Software Foundation – FSF – và GNU – Gnu’s Not
Unix, để đối nghịc hoàn toàn với CopyRight!) hay còn gọi là giấy phép GPL (General
Public Licence) là một bước tiến quan trọng theo hướng tự do hóa của các giấy phép
phần mềm. Giấy phép GPL yêu cầu không những mã nguồn gốc phải được phân phối

-


theo các quy định của GPL mà mọi sản phẩm dẫn xuất cũng phải tuân thủ GPL.
GPL cho người dùng tối đa quyền hạn và tự do đối với các PMNM theo GPL, cụ thể
người dùng có quyền không những sao chép, sửa đổi, mua bán các PMNM dưới
CopyLeft mà còn được quyền tự do như vậy đối với các phần mềm dẫn xuất. Tóm lại nếu
PMNM gốc đã theo CopyLeft thì mọi PMNM dẫn xuất của nó cũng đương nhiên theo
CopyLeft.
1.7.Giới thiệu về Linux
Thuật ngữ Linux được sử dụng rộng rãi trong thực tế. Tuy nhiên, trong các ngữ cảnh
khác nhau, thuật ngữ này có thể được hiểu với nghĩa khác nhau. Khi sử dụng Linux trên
các thiết bị nhúng, thiết bị di động, trong trường hợp này, chỉ có nhân của hệ điều hành
Linux được sử dụng. Thuật ngữ Linux được dùng để chỉ nhân của hệ điều hành Linux.

11


Nhân của hệ điều hành bao gồm các phần mềm cần thiết để quản lý và sử dụng các phần
cứng của hệ thống.
Khi cài đặt các phần mềm trên máy tính, có thể có nhiều lựa chọn: Windows, Linux,
Sun, MacOS. Trong ngữ cảnh này, Linux được hiểu là một hệ điều hành.
Linux thường được phân phối không phải chỉ gồm có nhân và các phần mềm hệ
thống. Đi kèm theo hệ điều hành, còn có các phần mềm ứng dụng ohucj vụ các nhu cầu
của từng lớp người sử dụng. Giao diện đồ họa, các chương trình hỗ trợ … Tất cả các
thành phần đó kết hợp với nhân của hệ điều hành và hệ điều hành tạo ra một bản phân
phối của Linux. Có rất nhiều bản phân phối khác nhau, có thể sử dụng chung một phiên
bản của nhân, một tập hợp chung các phần mềm hệ thống, nhưng được phân phối với các
bộ phần mềm khác nhau dành cho máy chủ, máy để bàn, máy xách tay …
Khi so sánh hiệu năng giữa các sản phẩm Linux, MacOS, Sun Solaris … thực tế ta đã
so sánh các hệ thống trên đó các hệ điều hành tương ứng đã được cài đặt. Linux trong
trường hợp này được sử dụng để chỉ một hệ thống máy tính cài đặt hệ điều hành Linux.

Khi sử dụng thuật ngữ Linux, cần xác định rõ bối cảnh để tránh hiểu nhầm.
 Ứng dụng của Linux
- Mặc dù ban đầu chỉ được xây dựng cho các máy tính i386, tuy nhiên do tính chất mã
nguồn mở, người sử dụng với phần cứng hoặc nhu cầu khác nhau đều có thể thay đổi
Linux cho phù hợp, nên Linux có thể được ứng dụng trong nhiều lĩnh vực khác nhau, trên
-

các dòng phần cứng khác nhau.
Máy tính để bàn: Linux được sử dụng ngày càng nhiều trên máy tính để bàn. Linux ngày
nay thường được phân phối cùng với các giao diện đồ họa như GNME, KDE … Các
phần mềm ứng dụng xuất hiện ngày càng nhiều, hoạt động ổn định, cung cấp cho người
sử dụng những công cụ mạnh mẽ để xử lý văn bản, chỉnh sửa đồ họa, duyệt internet …
tóm lại tất cả các thao tác mà người sử dụng mong chờ ở một máy tính để bàn. Các
chương trình phổ biến trên các hệ điều hành thương mại Windows và MacOSX hầu hết

-

đều có các phần mềm có tính năng tương đương trên Linux.
Máy chủ: Linux được sử dụng phổ biến hơn trên các máy chủ. Một máy tính Linux có thể
được kết nối và thực hiện các thao tác quản trị máy tính thông qua một giao diện văn bản.
Việc truy cập vào giao diện console này nhanh và thuận tiện hơn nhiều so với truy cập
vào giao diện đồ họa. Linux có thị phần vượt trội và có xu hướng tăng dần trong thị
trường máy chủ. Điều này có thể giải thích dựa trên tổ hợp LAMP (Linux - Apache - PHP
- MySQL) rất thuận tiện cho việc triển khai các website và ứng dụng web. Trên các máy
tính lớn, Linux cũng được dùng phổ biến bởi 2 nguyên nhân: giá thành rẻ và tính tương
tích tương tự Unix. Các siêu máy tính hầu hết được thiết kế để có thể hoạt động với Unix,
12


nên có thể hoạt động dễ dàng trên Linux. Một số siêu máy tính còn được phân phối cùng

-

Linux. Máy tính IBM Sequoi cũng sẽ sử dụng hệ điều hành Linux.
Các hệ nhúng: Linux còn được sử dụng rộng rãi trên các thiết bị nhúng vì khả năng tùy
biến và giá thành hạ. Hệ điều hành Maemo mà Nokia sẽ sử dụng trong một loạt các điện
thoại thông minh sắp ra đời là một hệ điều hành dựa trên Linux. Trong nhiều router,
switch cũng sử dụng hệ điều hành Linux.
2.Nền tảng công nghệ sử dụng
2.1. Ngôn ngữ PHP
2.1.1 Khái niệm
Khái niệm về PHP PHP là chữ viết tắt của “Personal Home Page” do Rasmus Lerdorf
tạo ra năm 1994. Vì tính hữu dụng của nó và khả năng phát triển, PHP bắt đầu được sử
dụng trong môi trường chuyên nghiệp và nó trở thành “PHP:Hypertext Preprocessor”.
Thực chất PHP là ngôn ngữ kịch bản nhúng trong HTML, nói một cách đơn giản đó là
một trang HTML có nhúng mã PHP, PHP có thể được đặt rải rác trong HTML. PHP là
một ngôn ngữ lập trình được kết nối chặt chẽ với máy chủ, là một công nghệ phía máy
chủ (Server-Side) và không phụ thuộc vào môi trường (cross- platform). Đây là hai yếu
tố rất quan trọng, thứ nhất khi nói công nghệ phía máy chủ tức là nói đến mọi thứ trong
PHP đều xảy ra trên máy chủ, thứ hai, chính vì tính chất không phụ thuộc môi trường cho
phép PHP chạy trên hầu hết trên các hệ điều hành như Windows, Unix và nhiều biến thể
của nó...
Đặc biệt các mã kịch bản PHP viết trên máy chủ này sẽ làm việc bình thường trên
máy chủ khác mà không cần phải chỉnh sửa hoặc chỉnh sửa rất ít. Khi một trang Web
muốn được dùng ngôn ngữ PHP thì phải đáp ứng được tất cả các quá trình xử lý thông tin
trong trang Web đó, sau đó đưa ra kết quả ngôn ngữ HTML. Khác với ngôn ngữ lập trình,
PHP được thiết kế để chỉ thực hiện điều gì đó sau khi một sự kiện xảy ra (ví dụ, khi người
dùng gửi một biểu mẫu hoặc chuyển tới một URL).
2.1.2 Lịch sử phát triển
PHP ngôn ngữ lập trình web được biết đến nhiều nhất ngày nay chắc chắn là sự kế
thừa cho sản phẩm công nghệ mang tên PHP / FI. Được tạo ra vào những năm 1994 bởi

Rasmus Lerdorf, phiên bản đầu tiên của PHP là một tập hợp đơn giản của kỹ thuật
Common Gateway Interface (CGI) nhị phân viết bằng ngôn ngữ lập trình C. Theo nguyên
bản thì PHP được Rasmus sử dụng để theo dõi lượng truy cập vào đơn xin việc trực tuyến
của mình, ông đặt tên cho nó là “Personal Home Page Tools”. Qua nhiều năm, vì muốn
ngôn ngữ này có nhiều chức năng hơn những gì ông từ mong muốn, Rasmus đã viết lại
PHP Tools, viết thêm những dòng code mới để ngôn ngữ này trở nên phong phú hơn.
13


Phiên bản mới này có khả năng tương tác tốt với cơ sở dữ liệu và nhiều hơn nữa, cung
cấp một Framework mà người dùng PHP có thể phát triển các ứng dụng web động đơn
giản như Guestbook. Trong tháng sáu năm 1995, Rasmus đã chính thức public mã nguồn
này, ông cho phép các nhà phát triển phần mềm được sử dụng nó nếu họ có khả năng.
Điều này cũng giúp cho Rasmus có thể cải tiến PHP dựa vào những ý kiến từ người dùng.
Vào tháng Chín năm đó, Rasmus mở rộng PHP và trong một thời gian ngắn cái tên
PHP đã đột nhiên không được nhắc tới. Thay vào đó họ đề cập đến các công cụ như FI
(viết tắt của “Forms Interpreter”), nó bao gồm một số chức năng cơ bản của PHP như
chúng ta biết đến ngày nay. Nó có các biến như Perl, dịch tự động các biến, và cú pháp
nhúng HTML. Cú pháp này cũng tương tự như của Perl, mặc dù hạn chế hơn rất nhiều và
cũng đơn giản hơn. Trong thực tế, để nhúng mã vào một file HTML, các nhà phát triển đã
phải sử dụng những ”HTML comments”. Mặc dù phương pháp này không hoàn toàn
được đón nhận, FI vẫn tăng doanh thu và được chấp nhận như một công cụ CGI —
nhưng vẫn không hoàn toàn được gọi là một ngôn ngữ. Tuy nhiên, điều này bắt đầu thay
đổi trong những tháng tiếp theo; Tháng Mười, 1995, Rasmus đã phát hành phiên bản mới,
ông viết lại toàn bộ mã nguồn và đặt lại với cái tên PHP và đó cũng là phiên bản ngôn
ngữ lập trình đầu tiên trên thế giới được coi là một nền tảng ngôn ngữ tiên tiến. PHP
được cố tình thiết kế để trông giống với ngôn ngữ C, làm cho nó trở nên thân thiện và dễ
làm quen đối với cả các nhà phát triển C, Perl, và ngôn ngữ tương tự.
Vào tháng Tư năm 1996, kết hợp với tên gọi của phiên bản trước, Rasmus đã giới
thiệu PHP / FI. Thế hệ thứ hai của ngôn ngữ lập trình này đã thực sự phát triển PHP từ

một bộ công cụ cho tới một ngôn ngữ lập trình theo đúng nghĩa của nó. Nó được ra đời
để hỗ trợ cho các cơ sở dữ liệu DBM, mSQL, và Postgres95, cookies, hỗ trợ chức năng
người dùng, và nhiều hơn thế. Vào khoảng tháng 6 năm đó, PHP / FI đã được ra mắt
phiên bản 2.0. Một thực tế rất thú vị đó là chỉ có một phiên bản đầy đủ duy nhất của PHP
2.0. Sau khi kết thúc phiên bản beta trong tháng Mười Một, 1997, ngôn ngữ PHP đã được
viết lại hoàn toàn.
Mặc dù nó tồn tại và phát triển trong khoảng thời gian ngắn, PHP vẫn tiếp tục được
phổ biến ngày càng nhiều trên thế giới. Năm 1997 và 1998, PHP / FI đã có được sự sùng
bái của hàng ngàn người dùng trên toàn thế giới. Một cuộc khảo sát của Netcraft vào
tháng 5/1998, cho thấy gần 60.000 lĩnh vực báo cáo có tiêu đề chứa “PHP”, chỉ ra rằng
các máy chủ lưu trữ đều được cài đặt PHP. Con số này cũng tương đương với khoảng 1%
tất cả các tên miền trên Internet vào thời điểm đó. Mặc dù con số rất ấn tượng, nhưng sự
14


phát triển của PHP / FI đã bị hạn chế; trong khi nó đã có nhiều đóng góp nhỏ và vẫn chủ
yếu được phát triển bởi cá nhân Rasmus.
2.1.3 Đặc điểm
Tính Cộng đồng của PHP
-Là một ngôn ngữ mã nguồn mở cùng với sự phổ biến của PHP thì cộng đồng PHP
được coi là khá lớn và có chất lượng. Khả năng ứng dụng là rất cao.
- Với cộng đồng phát triển lớn, việc cập nhật các bản mới cũng như lỗi phiên bản
hiện tại và thử nghiệm các phiên bản mới khiến PHP rất linh hoạt trong việc hoàn
thiện mình.
- Đã rất nhiều blog, diễn đàn trong và ngoài nước nói về PHP nên khả năng tiếp cận
của mọi người nhanh chóng, dễ dàng hơn, quá trình tiếp cận của người tìm được rút
ngắn nhanh chóng. Vì vậy cộng đồng hỗ trợ, chia sẽ kinh nghiệm của PHP cũng rất
dồi dào.
 Thư viện phong phú
- Ngoài sự hỗ trợ của cộng đồng, thư viện script PHP cũng rất phong phú, đa dạng.

Từ những cái rất nhỏ như chỉ là 1 đoạn code, 1 hàm (PHP.net…) cho tới những cái
lớn hơn như Framework (Laravel, Zend, CakePHP, CogeIgniter, Symfony…) hay
ứng dụng hoàn chỉnh (Joomla, WordPress, PhpBB…)
- Với thư viện code phong phú, việc học tập và ứng dụng PHP trở nên rất dễ dàng và
nhanh chóng. Đây cũng chính là đặc điểm khiến PHP trở nên khá nổi bật và cũng là
nguyên nhân vì sao ngày càng có nhiều người sử dụng PHP để phát triển web.
- Nhu cầu xây dựng web có sử dụng cơ sở dữ liệu là một nhu cầu tất yếu và PHP cũng
đáp ứng rất tốt nhu cầu này. Với việc tích hợp sẵn nhiều Database Client trong PHP
đã làm cho ứng dụng PHP dễ dàng kết nối tới các hệ cơ sở dữ liệu thông dụng.
- Việc cập nhật và nâng cấp các Database Client đơn giản chỉ là việc thay thế các
Extension của PHP để phù hợp với hệ cơ sở dữ liệu mà PHP sẽ làm việc.
- Một số hệ cơ sở dữ liệu thông dụng mà PHP có thể làm việc là: MySQL, MS SQL,
 Lập trình hướng đối tượng
- Ngày nay, khái niệm lập trình hướng đối tượng (OOP) đã không còn xa lạ với lập
trình viên. Với khả năng và lợi ích của mô hình lập trình này nên nhiều ngôn ngữ đã
triển khai để hỗ trợ OOP.
- Từ phiên bản PHP 5, PHP đã có khả năng hỗ trợ hầu hết các đặc điểm nổi bật của
lập trình hướng đối tượng như là Inheritance, Abstraction, Encapsulation,
Polymorphism, Interface, Autoload…
- Với việc ngày càng có nhiều Framework và ứng dụng PHP viết bằng mô hình OOP
nên lập trình viên tiếp cận và mở rộng các ứng dụng này trở nên dễ dàng và nhanh
chóng.
15


Tính Bảo mật
- Bản thân PHP là mã nguồn mỡ và cộng đồng phát triển rất tích cực nên có thể nói

PHP khá là an toàn.
- PHP cũng cung cấp nhiều cơ chế cho phép bạn triển khai tính bảo mật cho ứng dụng

của mình như session, các hàm filter dữ liệu, kỹ thuật ép kiểu, thư viện PDO (PHP
Data Object) để tương tác với cơ sở dữ liệu an toàn hơn.
- Kết hợp với các kỹ thuật bảo mật ở các tầng khác thì ứng dụng PHP sẽ trở nên chắc
chắn hơn và đảm bảo hoạt động cho website.
Với những tính năng ưu việt và vượt trội của mình đã vươn lên vị trí là ngôn ngữ web
hàng đầu trên thế giới, nhanh chóng vượt mặt nhiều ngôn ngữ lập trình khác. Có tới 90 %
các trang web hiện nay viết bằng PHP, từ những trang báo điện tử, trang mạng xã hôi cho
tới cac portal của Chính phủ đều đang sử dụng
2.2 Hệ quản trị nội dung framework Laravel
2.2.1 Khái niệm
Laravel là một PHP framework mã nguồn mở và miễn phí, được phát triển bởi Taylor
Otwell và nhắm vào mục tiêu hỗ trợ phát triển các ứng dụng web theo kiếm trúc modelview-controller (MVC). Những tính năng nổi bật của Laravel bao gồm cú pháp dễ hiểu –
rõ ràng , một hệ thống đóng gói modular và quản lý gói phụ thuộc, nhiều cách khác nhau
để truy cập vào các cơ sở dữ liệu quan hệ, nhiều tiện ích khác nhau hỗ trợ việc triển khai
vào bảo trì ứng dụng.
Vào khoảng Tháng 3 năm 2015, các lập trình viên đã có một cuộc bình chọn PHP
framework phổ biến nhất, Laravel đã giành vị trí quán quân cho PHP framework phổ biến
nhất năm 2015, theo sau lần lượt là Symfony2, Nette, CodeIgniter, Yii2 vào một số khác.
Trước đó, Tháng 8 2014, Laravel đã trở thành project PHP phổ biến nhất và được theo
dõi nhiều nhất trên Github.
Laravel được phát hành theo giấy phép MIT, với source code được lưu trữ tại Github.
2.2.2 Lịch sử phát triển framework Laralvel
Laravel được Taylor Otwell tạo ra như một giải pháp thay thế cho CodeIgniter, cung
cấp nhiều tính năng quan trọng hơn như xác thực và phân quyền. Tôi cũng không chắc
về điều này, nhưng có thể Taylor vốn là một .NET developer khi bắt đầu có nhu cầu làm
việc với PHP khoảng vào những năm 2010-2011, đã chọn CodeIgniter khi đó đang là một
ngôi sao mới nổi, thậm chí lấn át cả Symfony gạo cội. Và Taylor nhanh chóng nhận ra
16



những điểm khiếm khuyết ở CodeIgniter, với tài năng và kiến thức xuất sắc về designpattern của mình, Taylor quyết định tự mình tạo ra một framework sao cho thật đơn giản,
dễ hiểu, hỗ trợ lập trình viên hiện thực ý tưởng một cách nhanh nhất bằng nhiều tính năng
hỗ trợ như Eloquent ORM mạnh mẽ, xác thực đơn giản, phân trang hiệu quả, và hơn thế
nữa.
Những nét nổi bật của framework Laravel
- Bundles:_ là dành cho Laravel cũng như PEAR là cho PHP. Ngoài ra laravel đi kèm

với công cụ command-line gọi là Artisan, giúp việc cài đặt các gói dễ dàng.
- Eloquent ORM: là file thực thi PHP Active Record tiên tiến nhất hiện có.
- Migrations:_ trog laravel, migrations được xây dựng trong framework, chúng có

thể thực hiện thông quan Artisan command-line.
- Unit-testing: laravel là 1 framework tuyệt vời để tích hợp PHP Unit.
- Redis: Laravel hỗ trợ Redis rất ngắn gọn.

Ưu điểm của framework Laravel:
-

Được thừa hưởng những ưu điểm và thế mạnh của các framework khác.
Có số lượng người sử dụng nhiều nhất
Document rõ dàng, dễ học
Autoload theo namespace.
Sử dụng mô hình ORM rất đơn giản khi thao tác với DB
Các lệnh tương tác với cơ sở dữ liệu cực kỳ ngắn gọn và thân thiện.
Việc quản lý layout thật sự giản đơn với Balade Templating .
Dễ dàng tích hợp các thư viện khác vào dự án, và được quản lý với Composer
Phần route rất mạnh!!!

Nhược điểm của framework Laravel
- Lượng module dùng tương đối lớn

- Dẫn đến tốc độ không được tối ưu khi xây những service nhỏ

17


2.3 Hệ quản trị cơ sở dữ liệu MySQL
2.3.1 Khái niệm
MySQL là ứng dụng cơ sở dữ liệu mã nguồn mở phổ biến nhất hiện nay (theo www.
mysql. com) và được sử dụng phối hợp với PHP. Trước khi làm việc với MySQL cần xác
định các nhu cầu cho ứng dụng. MySQL là cơ sở dữ có trình giao diện trên Windows hay
Linux, cho phép người sử dụng có thể thao tác các hành động liên quan đến nó. Việc tìm
hiểu từng công nghệ trước khi bắt tay vào việc viết mã kịch bản PHP, việc tích hợp hai
công nghệ PHP và MySQL là một công việc cần thiết và rất quan trọng.
2.3.2 Mục đích sử dụng
Mục đích sử dụng cơ sở dữ liệu bao gồm các chức năng như: lưu trữ (storage), truy
cập (accessibility), tổ chức (organization) và xử lí (manipulation).
 Lưu trữ: Lưu trữ trên đĩa và có thể chuyển đổi dữ liệu từ cơ sở dữ liệu này sang cơ
sở dữ liệu khác, nếu bạn sử dụng cho quy mô nhỏ, bạn có thể chọn cơ sở dữ liệu
nhỏ như:Microsoft Exel, Microsoft Access, MySQL, Microsoft Visual FoxPro,...
Nếu ứng dụng có quy mô lớn, bạn có thể chọn cơ sở dữ liệu có quy mô lớn như
:Oracle, SQL Server,...
 Truy cập: Truy cập dữ liệu phụ thuộc vào mục đích và yêu cầu của người sử dụng,
ở mức độ mang tính cục bộ, truy cập cơ sỏ dữ liệu ngay trong cơ sở dữ liệu với
nhau, nhằm trao đổi hay xử lí dữ liệu ngay bên trong chính nó, nhưng do mục đích
và yêu cầu người dùng vượt ra ngoài cơ sở dữ liệu, nên bạn cần có các phương
thức truy cập dữ liệu giữa các cơ sở dử liệu với nhau như:Microsoft Access với
SQL Server, hay SQL Server và cơ sở dữ liệu Oracle....
 Tổ chức: Tổ chức cơ sở dữ liệu phụ thuộc vào mo hình cơ sở dữ liệu, phân tích và
thiết kế cơ sở dữ liệu tức là tổ chức cơ sở dữ liệu phụ thuộc vào đặc điểm riêng
của từng ứng dụng. Tuy nhiên khi tổ chức cơ sở dữ liệu cần phải tuân theo một số

tiêu chuẩn của hệ thống cơ sở dữ liệu nnhằm tăng tính tối ưu khi truy cập và xử lí.
 Xử lí: Tùy vào nhu cầu tính toán và truy vấn cơ sở dữ liệu với các mục đích khác

nhau, cần phải sử dụng các phát biểu truy vấn cùng các phép toán, phát biểu của
cơ sở dữ liệu để xuất ra kết quả như yêu cầu. Để thao tác hay xử lí dữ liệu bên
trong chính cơ sở dữ liệu ta sử dụng các ngôn ngữ lập trình như:PHP, C++, Java,
Visual Basic,...
CHƯƠNG 2. Cài Đặt Laravel Và Các Phần mềm liên quan
Các file, công cụ cần chuẩn bị:
18


- Xampp
- Composer

1. Download và cài đặt Xampp
- Truy cập vào trang web:

-

Sau khi tải file cài đặt về xong, hãy chạy nó, sau đó chọn Next.

-

Ở phần chọn đường dẫn, bạn hãy chọn đường dẫn cần lưu cài đặt của XAMPP.
Lưu ý rằng đường dẫn này bạn phải nhớ vì khi cài đặt web lên localhost, bạn phải
truy cập vào thư mục này. Bạn nên để mặc định là c:\xampp. Tiếp tục ấn Next

19



-

Ở trang kế tiếp, bạn bỏ chọn phần “Learn more about Bitnami for XAMPP“. Và ấn
Next 2 lần nữa để bắt đầu quá trình cài đặt XAMPP.

-

Sau khi cài xong, ấn nút Finish để kết thúc cài đặt và mở bảng điều khiển của
XAMPP. Tuy nhiên, hãy khởi động lại máy sau khi cài đặt xong để tránh tình trạng
không khởi động được localhost.

-

Khởi động Localhost

20


-

Bạn để ý sẽ thấy hai ứng dụng Apache và MySQL có nút Start, đó là dấu hiệu bảo
2 ứng dụng này chưa được khởi động, hãy ấn vào nút Start của từng ứng dụng để
khởi động Webserver Apache và MySQL Server lên thì mới chạy được localhost.

2. Download và cài đặt Composer
- Truy cập vào trang web: />
- Trong quá trình cài đặt, bạn sẽ được composer báo chọn đến file php.exe trong

xampp hoặc wam


21


- Sau khi cài đặt xong, composer có yêu cầu bạn làm các bước sau:

1. Mở cmd.exe
2. Đóng tất cả các cửa sổ windows lại ( bao gồm cả cmd.exe )
3. Mở lại cmd.exe
4. Đóng lại rồi logout ra khỏi windows , sau đó login lại.
5. Cuối cùng ta bật cmd.exe lên là xong.

3. Cài Đặt Laravel
- Khởi động cmd, truy cập vào thư mục muốn cài đặt Laravel.
- Chạy lệnh: composer create-project –prefer-dist laravel/laravel {Tên project
Laravel}

22


-

Sau khi cài xong ta có thư mục sau

ảnh
- Cấu trúc thư mục bao gồm
• App\Http : Chứa các bộ điều khiển route, controller,…. Ta sẽ phải dùng nhiều tới

thư mục này.
Config : Chứa các file cấu hình cho hệ thống

Database : Nơi chúng ta cấu hình các bộ dữ liệu mẫu : migrate, seed
Public : Nơi lữu trữ các thư viện CSS, JavaScript, các hình ảnh.
Resources\Views : Lưu trữ các file giao diện mã html views.
File .env: Cài đặt liên kết tới database cho hệ thống.
4. Tìm Hiểu Về Route
Cấu trúc






4.1.

4.2.

Truyền Tham Số Trên Route
4.2.1 Truyền Tham Số Trên Route
23


4.2.2 Đặt Điều Kiện Cho Tham Số Với Phương Thức where();

-

4.3.

Các Trường Hợp Khác

Định Danh Cho Route

- Cách 1: Khai Báo ‘as’=> ‘ten Route’ Trong Tham Số Sau:

-

Cách 2: Cách này khá ngắn gọn và dễ dùng : thêm phương thức name(‘tên route’)
ở cuối.

-

Gọi Route bằng tên đã đặt, ta sử dụng route(‘ten route’);

4.4. Route Group

24


5. Tìm Hiểu Về Controller

5.1 Cấu Trúc Controller
- Các Controller sẽ được lưu tại thư mục App/Http/Controllers trong Laravel.

5.2 Tạo Controller
- Các Controller sẽ được lưu tại thư mục App/Http/Controllers trong Laravel.
ảnh:
5.3 Gọi Controller
- Để gọi một hàm trong Controller ta sẽ phải thông qua Route bằng cách khai báo như
sau:

5.4 Nhận Dữ Liệu Từ Route
25



×