MẪU ĐỒ ÁN (HOẶC LUẬN VĂN ) TỐT NGHIỆP BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO THỰC TẬP TỐT NGHIỆP XÂY DỰNG HỆ THỐNG WEBSERVER TRÊN MÃ NGUỒN MỞ Giảng viê.
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC TẬP TỐT NGHIỆP
XÂY DỰNG HỆ THỐNG WEBSERVER TRÊN MÃ
NGUỒN MỞ
Giảng viên hướng dẫn: ThS VƯƠNG XUÂN CHÍ
Sinh viên thực hiện: HOÀNG ANH TÚ
MSSV: 1800001977
Chuyên ngành: Kỹ thuật máy tính
Đơn vị thực tập: Công Ty TNHH TT và GT LUCO MITHRAS Khóa: 2018
Tp.HCM, tháng 02 năm 2022
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC TẬP TỐT NGHIỆP
XÂY DỰNG HỆ THỐNG WEBSERVER TRÊN MÃ
NGUỒN MỞ
Giảng viên hướng dẫn: ThS VƯƠNG XUÂN CHÍ
Sinh viên thực hiện: HOÀNG ANH TÚ
MSSV: 1800001977
Chuyên ngành: Kỹ thuật máy tính
Đơn vị thực tập: Công Ty TNHH TT và GT LUCO MITHRAS Khóa: 2018
Tp.HCM, tháng 02 năm 2022
Trang 3LỜI CẢM ƠN
Dòng viết đầu tiên chính là lời cảm ơn gửi đến thầy Th.S Vương Xuân Chí, người
mà đã tận tình quan tâm, hướng dẫn, cũng như sự giúp đỡ chân thành, những lời góp ýđầy chi tiết để em có thể hoàn thành một sản phẩm một cách tốt nhất
Và cũng chính vì sự chân thành, tận tụy của thầy giúp đỡ không chỉ em, mà cácbạn cùng lớp cũng được thầy chỉ dẫn, đưa ra những ưu điểm và khuyết điểm để có thểcải thiện sản phẩm cũng như kỹ năng cá nhân của mỗi người
Cuối cùng là lời nói cảm ơn sâu sắc nhất một lần nữa gửi đến thầy Chí đã cùng
em và các bạn đi hết chặng đường tuy không dài nhưng nói ngắn thì cũng không chínhxác, nó đủ để cảm nhận được sự yêu nghề, tính chuyên nghiệp trong ngành giáo dục củathầy, đặc biệt nhất đó chính là lòng yêu thương sự tận tình giúp đỡ mỗi khi sinh viên cần
Em cũng chân thành gửi lời cảm ơn đến các Thầy Cô khoa Công nghệ thông tintrường Đại học Nguyễn Tất Thành đã giảng dạy, hướng dẫn, trang bị các kiến thức cho
em trong thời gian học vừa qua, từ các kiến thức cơ bản đến các vấn đề chuyên sâu
Em xin gửi lời cảm ơn đến các anh, chị, bạn bè, đồng nghiệp bằng nhiều hìnhthức khác nhau đã giúp đỡ em trong quá trình học tập tại trường cũng như trong thờigian hoàn thành đồ án lần này
Đặc biệt là xin gửi lời cảm ơn đến cha mẹ và anh chị em trong gia đình đã độngviên tinh thần cũng như chia sẻ những khó khăn trong những năm qua
Trong khoảng gian thực hiện đồ án, những điều sai và thiếu kinh nghiệm vì kiếnthức còn rất hạn hẹp Cho nên bài tập đồ án sẽ không tránh khỏi những sơ sót đáng tiếc
Em xin cảm ơn thầy đã đọc hết bài tập đồ án của chúng em và mong thầy góp ý nhận xét
để chúng em hoàn thành đề tài này
Xin chân thành cảm ơn !
Trang 4LỜI MỞ ĐẦU
Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem làmột trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổchức, cũng như của các công ty, nó đóng vai trò hết sức quan trọng, có thể tạo ranhững bước đột phá mạnh mẽ
Cùng với sự phát triển không ngừng về kỹ thuật máy tính và mạng điện tử, côngnghệ thông tin cũng được những công nghệ có đẳng cấp cao và lần lượt chinh phụchết đỉnh cao này đến đỉnh cao khác Mạng Internet là một trong những sản phẩm cógiá trị hết sức lớn lao và ngày càng trở nên một công cụ không thể thiếu, là nền tảngchính cho sự truyền tải, trao đổi thông tin trên toàn cầu
Trong vấn đề kết nối các thông tin, chia sẻ dữ liệu thì công nghệ thông tin cũng có thểxem như là một cuốn nhật ký cá nhân, lưu giữ các kỷ niệm của bản thân trên một môitrường databloger, cho phép các cá nhân có thể lưu trữ cũng như chia sẻ các kỷ niệm củabản thân nếu muốn, nó là một dạng nhật ký mạng có thể cho phép mọi người xem hoặckhông phụ thuộc vào chủ sở hữu
Với lí do đó, được sự hướng dẫn và giúp đỡ của thầy giáo Th.s Vương Xuân Chí, em
đã chọn đề tài: ”Xây dựng hệ thống Webserver trên mã nguồn mở” làm đề tài cho
mình
Trang 5NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Điểm đồ án: .
TPHCM, Ngày …… tháng …… năm
Giáo viên hướng dẫn
Trang 6NHẬN XÉT CỦA CƠ QUAN THỰC TẬP
TPHCM, Ngày …… tháng …… năm 2022
Xác nhận của đơn vị thực tập
(Ký tên, đóng dấu)
Trang 7MỤC LỤC
LỜI CẢM ƠN i
LỜI MỞ ĐẦU ii
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN iii
NHẬN XÉT CỦA CƠ QUAN THỰC TẬP iv
MỤC LỤC v
DANH MỤC CÁC BẢNG BIỂU viii
DANH MỤC CÁC BẢNG HÌNH ix
DANH MỤC CÁC TỪ VIẾT TẮT x
SỔ NHẬT KÝ THỰC TẬP xii
PHIẾU NHẬN XÉT SINH VIÊN THỰC TẬP xv
CHƯƠNG 1: GIỚI THIỆU CÔNG TY TT và GT LUCO MITHRAS 1
1.1 GIỚI THIỆU 1
1.2 HOẠT ĐỘNG CHÍNH CỦA CÔNG TY TT VÀ GT LUCO MIRTHRAS 1
1.3 SƠ ĐỒ NHÂN SỰ CỦA CÔNG TY TT và GT LUCO MIRTHRAS 1
CHƯƠNG 2 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH MÃ NGUỒN MỞ 2
2.1 Tổng quan về mã nguồn mở 2
2.1.1 Lịch sử ra đời 2
2.1.2 Mã nguồn là gì? 2
2.1.3 Mã nguồn mở là gì? 4
2.1.4 Tổng quan về Linux 5
2.2 Một số mã nguồn mở phổ biến 6
2.2.1 Red Hat Enterprise Linux 6
2.2.2 Ubuntu Server 8
2.2.3 CentOS 9
2.2.4 Debian Stable 10
2.2.5 SUSE Leap 11
2.2.6 Fedora 12
2.2.7 Oracle Linux 12
Trang 82.4 Nhược điểm của mã nguồn mở 15
2.5 Kết luận 15
CHƯƠNG 3 CÁC DỊCH VỤ TRÊN NỀN TẢNG MÃ NGUỒN MỞ 17
3.1 Apache 17
3.1.1 Khái niệm 17
3.1.2 Web Server 18
3.1.3 Cách thức hoạt động của Apache WebServer 18
3.1.4 Ưu, nhược điểm của Apache 19
3.2 Nginx 20
3.2.1 Khái niệm 20
3.2.2 Cách thức hoạt động của Nginx Server 21
3.2.3 Tính năng của Nginx 22
3.3 MySQL 22
3.3.1 Khái niệm 22
3.3.2 So sánh MySQL với SQL Server 23
3.3.3 Ưu, nhược điểm của MySQL 24
3.4 PHP 25
3.4.1 Khái niệm 25
3.4.2 Tính năng 26
3.4.3 Ưu, nhược điểm của PHP 27
3.4.4 Kết luận 28
CHƯƠNG 4 DEMO WEBSITE HỌC ONLINE 29
4.1 Cài đặt Ubuntu 29
4.2 Cài đặt Nginx 30
4.3 Cài đặt MadaraDP 35
4.4 Cài đặt PHP 39
4.5 Cài đặt Wordpress 47
4.6 Add theme và chình sửa website 52
TÀI LIỆU THAM KHẢO 56
Trang 9DANH MỤC CÁC BẢNG BIỂU
Bảng 1.2.2.1 Cấu hình cơ bản cho hệ điều hành Ubuntu 7Bảng 2.3.2.1 Bảng so sánh MySQL và SQL Server 22
Trang 10DANH MỤC CÁC BẢNG HÌNH
Hình 1.1.1.1 Logo của OSI và cụm từ “Open Source” 1
Hình 1.1.2.1 Ví dụ về mã nguồn một chương trình được viết bằng C++ 2
Hình 1.1.3.1 Minh họa cho mã nguồn mở 2
Hình 1.1.3.2 Minh họa cho ý tưởng hình thành mã nguồn mở 3
Hình 1.1.4.1 Lịch sử phát triển của Linux 4
Hình 1.2.1.1 Lịch sử phát triển của Red Hat Enterprise Linux 5
Hình 1.2.1.2 Giao diện Red Hat Enterprise Linux 6
Hình 1.2.2.1 Logo Ubuntu 6
Hình 1.2.3.1 Logo CentOS 8
Hình 1.2.4.1 Logo Debian Stab 8
Hình 1.2.5.1 Logo Suse Leap 9
Hình 1.2.6.1 Logo Fedora 10
Hình 1.2.7.1 Logo Oracle 10
Hình 1.2.8.1 Logo Arch Linux 11
Hình 2.1.1.1 Logo Apache 15
Hình 2.1.3.1 Apache Web Server 17
Hình 2.2.1.1 Logo Nginx 19
Hình 2.3.1.1 Logo MySQL 21
Hình 2.4.1.1 Logo PHP 24
Trang 11DANH MỤC CÁC TỪ VIẾT TẮT
1 AIX Advanced Interactive eXceed
2 AMD Advanced Micro Devices
3 ARM Acorn RISC Machine
4 ASP Active Server Pages
5 CentOS Community Enterprise Operating System
6 CPU Central Processing Unit
7 CSDL Cơ sở dữ liệu
8 FLV Flash Video
9 Gb Gigabyte
10 GNOME GNU Network Object Model Enviroment
11 GPL General Public License
12 HĐH Hệ điều hành
13 HP-UX Hewlett-Packard Unix
14 HTLM Hypertext Markup Language
15 HTTP HyperText Transfer Protocol
16 IA-64 Itanium-64
17 IBM International Business Machines
18 IMAP Internet Message Access Protocol
19 IPv4 Internet Protocol version 4
20 IPv6 Internet Protocol version 6
21 JSP JavaServer Pages
22 KDE K Desktop Environment
23 LXDE Lightweight X11 Desktop Environment
24 MB Megabyte
25 MHz Megahertz
26 OOP Object-Oriented Programming
27 OSI Open Source Initiative
28 PC Personal Computer
29 PERL Practical Extraction and Report Language
30 PHP Personal Home Page
31 POP3 Post Protocol Version 3
32 RAM Random Access Memory
33 RDBMS Relational Database Management System
34 RHEL Red Hat Enterprise Linux
Trang 1237 SMTP Simple Mail Transfer Protocol
38 SQL Structured Query Language
39 SSH Secure Shell
40 SSL Secure Sockets Layer
41 SSMS Management Studio
42 TLS Transport Layer Security
43 URL Uniform Resource Locator
44 VGA Video Graphic Adaptor
Trang 13BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
KHOA CÔNG NGHỆ THÔNG TIN
SỔ NHẬT KÝ THỰC TẬP
Họ tên HSSV: HOÀNG ANH TÚ
Ngành: CÔNG NGHỆ THÔNG TIN
Cơ quan thực tập Công Ty TNHH TT và GT LUCO MITHRAS
Thời gian thực tập: Từ 18/02/2021 đến 07/05/2022
Trang 14* Lưu ý: Nội dung thực tập được liệt kê và đánh giá theo từng tuần trong đợt thực tập.
Tuần Thời gian Nội dung thực tập
Nhận xét của đơn vị thực tập
Chữ ký Người
HD của đơn vị thực tập
Trang 16PHIẾU NHẬN XÉT SINH VIÊN THỰC TẬP
TPHCM, Ngày …… tháng …… năm 2022
Xác nhận của đơn vị thực tập
(Ký tên, đóng dấu)
Trang 17CHƯƠNG 1 GIỚI THIỆU CÔNG TY TT và GT LUCO MITHRAS
- 13/09/2022 Luco Mithras Quận 12 chính thức đi vào hoạt động
1.2 HOẠT ĐỘNG CHÍNH CỦA CÔNG TY TT VÀ GT LUCO MIRTHRAS
- Cung cấp dịch vụ báo chí trên mọi nền tảng Facebook/Ins/Tiktok
- Hỗ trợ doanh nghiệp định vị thương hiệu
- Hợp tác sáng tạo nội dung ngắn và dài hạn
- Ekip phỏng vấn, quay chụp chuyên nghiệp
- Hỗ trợ Quảng Cáo và SEO trên các đa nền tảng
1.3 SƠ ĐỒ NHÂN SỰ CỦA CÔNG TY TT và GT LUCO MIRTHRAS
Trang 18CHƯƠNG 2 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH MÃ NGUỒN MỞ
2.1 Tổng quan về mã nguồn mở
2.1.1 Lịch sử ra đời
Cụm từ “mã nguồn mở” được tạo ra tại hội nghị chiến lược tổ chức ngày 3 tháng 2năm 1998 tại Palo Alto, California, ngay sau khi công bố việc phát hành mã nguồn trìnhduyệt web Netscape Hội nghị tập trung vào việc thông báo của Netscape đã tạo ra cơ hội
để học tập, phát triển và là minh chứng cho sự ưu việt của quá trình phát triển phần mềm
mở Những người tham gia hội nghị cho rằng việc Netscape công bố mã nguồn, thuyếtphục người dùng và các nhà phát triển tham gia sáng tạo, cải thiện mã nguồn đã tạo ramột cộng đồng mã nguồn mở Đồng thời, họ cũng thấy cần phải có từ để chỉ ra và phânbiệt nó với các khái niệm khác và cụm từ “open source” đã được đề xuất bởi ChristinePeterson Hai người trong số những người tham gia hội nghị là Bruce Perens và EricRaymond đã thành lập nên tổ chức Open Source Initiative (OSI) – công ty thúc đẩy việc
sử dụng phần mềm nguồn mở vào cuối tháng 2 năm 1998 Việc sử dụng các thuật ngữ vàphát triển phần mềm với sự hỗ trợ ban đầu của cộng đồng mã nguồn mở Netscape đãnhanh chóng lan rộng và phát triển như ngày nay
Hình 1.1.1.1 Logo của OSI và cụm từ “Open Source”
2.1.2 Mã nguồn là gì?
Mã nguồn (Source Code) là một phiên bản phần mềm được viết bởi con người (lậptrình viên) ở dạng văn bản Mã nguồn bao gồm một hoặc nhiều tập tin chứa các dònglệnh dưới dạng một hoặc nhiều ngôn ngữ lập trình Mã nguồn có thể dịch được thànhngôn ngữ máy (machine language) bởi trình biên dịch (compiler) để có thể sử dụng trênmáy tính hoặc các thiết bị có vi xử lý
Trang 19Hình 1.1.2.1 Ví dụ về mã nguồn một chương trình được viết bằng C++
Trang 20Về cơ bản, mã nguồn có 2 loại: Mã nguồn mở (Open Source Code) và mã nguồn đóng(Closed Source Code).
2.1.3 Mã nguồn mở là gì?
Mã nguồn mở (Open Source Code) chỉ những phần mềm mà mã nguồn có sẵn chophép mọi người (thường là các lập trình viên) có thể tải về, xem, sử dụng, chỉnh sửa lạinếu thấy phù hợp và có thể phân phối lại nếu tuân thủ các điều khoản về mã nguồn mở
do tổ chức Open Source Initiative – Hoa Kỳ đề ra
Hình 1.1.3.1 Minh họa cho mã nguồn mở
Từ thời công nghệ còn sơ khai, ý tưởng về mã nguồn mở được các lập trình viên vàcác chuyên gia nhen nhóm khi mà họ cần phải phát triển các công nghệ mới dựa trênhình thức hợp tác Lấy ví dụ, một lập trình viên ở Việt Nam phát triển một ứng dụngmới Tuy nhiên, một lập trình viên ở Mỹ lại nghiên cứu ứng dụng và tìm ra phương pháp
để cải thiện ứng dụng đó tốt hơn Hình thức hợp tác giữa hai lập trình viên đã giúp chokiến thức được chia sẻ, thúc đẩy khả năng sáng tạo và người dùng sẽ được sử dụngnhững ứng dụng mới nhất, tốt nhất
Trang 21Hình 1.1.3.2 Minh họa cho ý tưởng hình thành mã nguồn mở
Tháng 9/1991, phiên bản Linux 0.01, phiên bản Linux đầu tiên được Torvalds công
bố, với 10.239 dòng lệnh Phiên bản 0.02 được ra mắt 1 tháng sau đó
Ngày 3/11/1994, Red Hat Linux, phiên bản 1.0 được giới thiệu Đây là một trongnhững hệ điều hành được thương mại hóa đầu tiên dựa trên Linux
Năm 1996, Linus Torvalds ghé thăm công viên hải dương học, tại đây, ông đã quyếtđịnh sử dụng hình ảnh chú chim cánh cụt để làm biểu tượng chính thức của Linux
Trang 22Hình 1.1.4.1 Lịch sử phát triển của LinuxLinux phát hành nhiều bản phân phối mới và thuờng xuyên nâng cấp để đáp ứng nhucầu người dùng:
Ubuntu
Linux Mint
Debian
Fedora
CentOS/Red Hat Enterprise Linux
OpenSUSE/SUSE Linux Enterprise
Mageia/Mandriva
Slackware Linux
Puppy Linux
2.2 Một số mã nguồn mở phổ biến
2.2.1 Red Hat Enterprise Linux
Red Hat Enterprise Linux (RHEL) là một bản phân phối Linux được phát triển bởiRed Hat và mục tiêu hướng tới thị trường thương mại
Trang 23Hình 1.2.1.1 Lịch sử phát triển của Red Hat Enterprise LinuxMáy chủ RHEL là một phần mềm mạnh mẽ, ổn định và an toàn để cung cấp nănglượng cho các trung tâm dữ liệu hiện đại với khả năng lưu trữ hướng phần mềm Nó hỗtrợ tốt cho đám mấy, IoT, dữ liệu lớn, trực quan hóa và container.
RHEL server hỗ trợ các máy 64- bit ARM, Powser và IBM System z
Trang 24Hình 1.2.1.2 Giao diện Red Hat Enterprise Linux
2.2.2 Ubuntu Server
Ubuntu là hệ điều hành mã nguồn mở tự do, có nghĩa là người dùng được tự do chạy,sao chép, phân phối, nghiên cứu, thay đổi và cải tiến phần mềm theo điều khoản của giấyphép GNU GPL Ubuntu được tài trợ bởi Canonical Ltd (chủ sở hữu là một người NamPhi Mark Shuttleworth) Thay vì bán Ubuntu, Canonical tạo ra doanh thu bằng cách bán
hỗ trợ kĩ thuật Bằng việc để cho Ubuntu tự do và mở mã nguồn, Canonical có thể tậndụng tài năng của những nhà phát triển ở bên ngoài trong các thành phần cấu tạo củaUbuntu mà không cần phải tự mình phát triển
Hình 1.2.2.1 Logo Ubuntu
Trang 25Các phiên bản Ubuntu:
Ubuntu 6.06 LTS Bình minh của Ubuntu (Dawn of Ubuntu)
Ubuntu 12.04 (Precise Pangolin)
Ubuntu 14.04(Trusty Tahr)
Cập nhật lifecyle 12.04.1, 12.04.2, 12.04.3 và 12.04.4 cho Ubuntu 12.04
Cập nhật lifecyle 14.04.1, 14.04.2, 14.04.3 và 14.04.4 cho Ubuntu 14.04
Cấu hình tối thiểu cho phiên bản Desktop của Ubuntu:
Phiên bản Desktop của Ubuntu hiện tại hỗ trợ các máy tính cấu trúc Intel x86, AMD,
và ARM Phiên bản server cũng hỗ trợ máy có cấu trúc SPARC Cũng có bản hỗ trợkhông chính thức cho các cấu trúc PowerPC, IA-64 (Itanium) và PlayStation 3 Ngoài ra,cũng có hỗ trợ không chính thức cho nền tảng PowerPC
Cấu hình tối thiểu cho quá trình cài đặt Ubuntu Desktop là máy có RAM 256 MB, ổcứng còn 5 Gb chỗ trống, và card màn hình VGA hỗ trợ độ phân giải 640×480 trở lên.Cấu hình khuyên dùng cho quá trình cài đặt là máy có bộ vi xử lý 700 MHz x86, RAM
384 MB, ổ cứng còn 8 GB trống, và card màn hình VGA hỗ trợ độ phân giải 1024×768.Cấu hình tối thiểu cho việc cài đặt phiên bản server là máy có bộ vi xử lý 300 MHzx86, RAM 256 MB, và card màn hình VGA hỗ trợ độ phân giải 640×480 trở lên
Những máy tính không hỗ trợ đủ cấu hình tối thiểu, được khuyên dùng Lubuntu, mộtbản phân phối tương tự Ubuntu nhưng dựa trên môi trường làm việc LXDE
Desktop and Laptop
Server Tối thiểu Khuyên dùng
CPU 300 MHz (x86) 700 MHx (x86) 300 MHz (x86)
Video card VGA @ 640x480 VGA @ 1024 x 768 VGA @ 640x480
Bảng 1.2.2.1 Cấu hình cơ bản cho hệ điều hành Ubuntu
2.2.3 CentOS
CentOS là một phiên bản mã nguồn mở và ổn định của Red Hat Enterprise Linux
Trang 26mặt hoạt động với RHEL Nếu bạn muốn sử dụng RHEL mà không phải trả một khoảnphí đáng kể, thì CentOS chính là sự lựa chọn dành cho bạn
Hình 1.2.3.1 Logo CentOSCentOS là OS miễn phí, nên bạn có thể nhận được sự hỗ trợ từ các thành viên kháctrong cộng đồng, người dùng và các tài nguyên trực tuyến
2.2.4 Debian Stable
Debian là bản phân phối Linux miễn phí, mã nguồn mở và ổn định do cộng đồng duytrì và phát triển Sử dụng một hệ thống đóng gói mạnh mẽ với hơn 51.000 packages.Debian được sử dụng nhiều bởi các tổ chức giáo dục, công ty kinh doanh, tổ chức philợi nhuận và chính phủ
Hình 1.2.4.1 Logo Debian Stable
Trang 27Tất cả các bản phân phối đều có guidelines cho các packages, nhưng Debian PolicyManual là toàn diện nhất Tài liệu hướng dẫn này chi tiết mọi khía cạnh của mộtpackage Do đó Debian Stable (ổn địnnh) gần như chắc chắn là phiên bản đáng tin cậynhất của Linux Ngay cả Unstable cũng khá ổn định, không hề thua kém các bản phânphối khác, mặc dù đôi khi vẫn có một vài sự cố hy hữu xảy ra.
2.2.5 SUSE Leap
SUSE Linux là một hệ điều hành được sử dụng khá phổ biến ở Châu Âu Đây là mộttrong những sản phẩm chiến lược của hãng Novell Bên cạnh hệ điều hành SUSE LinuxEnterprise được phân phối có phí, Novell còn hỗ trợ dự án xây dựng một sản phẩm mãnguồn mở & miễn phí
Hiện tại phiên bản ổn định mới nhất của OpenSUSE đã là phiển bản 42.1 với tên mãLeap, phiên bản đang phát triển mang mã Tumbleweed
Hình 1.2.5.1 Logo Suse LeapMục tiêu chính của LEAP là tạo ra một bản phân phối cấp doanh nghiệp ổn định đượcthiết kế cho các máy trạm và máy chủ miễn phí Từ đó mã được lấy và đưa vào SLE
Trang 28Hình 1.2.6.1 Logo FedoraFedora cũng cung cấp các công cụ quản trị hệ thống và phát triển mới trực tiếp từ RedHat Điều này làm cho nó trở thành một lựa chọn tuyệt vời cho workstation của nhà pháttriển hoặc trung tâm điều khiển của admin hệ thống.
Hiện nay Fedora có hơn khoảng 29 phiên bản chính thức
Hỗ trợ các kiến trúc như X86, ARMhf, Power, PPC64LE, ARM64, S390X
2.2.7 Oracle Linux
Oracle Linux là một bản phân phối Linux mã nguồn mở miễn phí được đóng gói vàphân phối bởi Oracle dành cho đám mây Nó được thiết kế đặc biệt cho các trung tâm dữliệu đám mây nhỏ, vừa cho tới cả các doanh nghiệp lớn
Hình 1.2.7.1 Logo Oracle
Trang 29Oracle Linux cũng được gọi là Oracle doanh nghiệp Linux Đây là một bản phân phốimiễn phí của Oracle, có sẵn theo Giấy phép Công cộng GNU và nó có sự hỗ trợ cộngđồng lớn Oracle Cloud và Oracle Engineering Systems như Oracle Exadata sử dụngphiên bản Linux này.
2.2.8 Arch Linux
Arch Linux cũng là một bản phân phối Linux miễn phí và mã nguồn mở, đơn giản,nhẹ nhưng an toàn Nó linh hoạt và rất ổn định, sử dụng các gói và kho được cộng đồng
hỗ trợ
Arch Linux là bản phân phối kiểu general-purpose được tối ưu hóa cho kiến trúc i686
và x86-64 Tuy nhiên do sự sụt giảm của các nhà phát triển và thành viên trong cộngđồng, hỗ trợ cho i686 hiện đã bị loại bỏ
Hình 1.2.8.1 Logo Arch Linux
Trang 30Trong số các bản phân phối Linux phổ biến, Arch Linux rất đặc biệt Ubuntu vàFedora, như Windows và macOS, sẵn sàng hoạt động ngay sau khi cài đặt Ngược lại,Arch Linux thách thức bạn tự xây dựng hệ điều hành PC của riêng mình.Arch Linux.Arch Linux giúp người dùng tìm kiếm những thông tin liên quan đến kỹ thuật mộtcách dễ dàng.
2.3 Ưu điểm của mã nguồn mở
Miễn phí và sẽ luôn như vậy: Các phần mềm mã nguồn mở là miễn phí hay cóchăng chỉ là những quyên góp nhỏ ủng hộ cho tổ chức (cá nhân) đứng ra phát hành cácbản phần mềm đó trên tinh thần tự nguyện Chắc chắn đây là một yếu tố quan trọng giúpngười dùng đến gần hơn với phần mềm nguồn mở
Dễ dàng chia sẻ: Phần mềm nguồn mở cho phép chúng ta chia sẻ với bạn bè,người thân hay bất kỳ ai mà không sợ vi phạm bản quyền
Bảo mật: Với sự tham gia của cả cộng đồng thì việc tìm ra lỗ hổng bảo mật dễdàng hơn bao giờ hết, đó cũng là lý do mà các phần mềm nguồn mở thường sẽ có bảncập nhật nhanh chóng và kịp thời hơn so với phần mềm bản quyền
Tính năng phù hợp: Các phần mềm mã nguồn mở thường sẽ có các tính năng rấtphù hợp với nhu cầu của người dùng vì chính họ đang đóng góp một phần vào việc pháttriển phần mềm, đó cũng là lý do mà các phần mềm mã nguồn mở thường rất nhẹ nhàng
Chi phí: Những phần mềm mã nguồn mở thường miễn phí hoặc chi phí rất thấp.Những phần mềm này thường được các doanh nghiệp săn đón hơn các phần mềm bảnquyền khi mà họ sẽ cắt giảm bớt chi phí bản quyền, phí nâng cấp, phí phát triển phầnmềm Đồng thời các phần mềm mã nguồn mở thường sẽ tận dụng được tối đa phần cứng(phần mềm mới nhất vẫn có thể chạy tốt trên các đời máy tính cũ), giúp cho các doanhnghiệp có thể tiết kiệm tối đa chi phí Chi phí mà họ bỏ ra chỉ để phát triển phần mềmcho phù hợp với từng giai đoạn phát triển mà thôi
Tính tùy biến: Việc phải chờ đợi vào một số nhà phát triển phần mềm có thể gâythiệt hại cho doanh nghiệp, thay vào đó, nếu sử dụng phần mềm nguồn mở, họ có thể tựphát triển dựa trên mã nguồn có sẵn để phù hợp hơn với tình hình doanh nghiệp của họ
Trang 31 Bản quyền: Với việc sử dụng phần mềm nguồn mở, tổ chức, doanh nghiệp sẽtránh được việc vi phạm bản quyền hoặc tranh chấp về bản quyền phần mềm.
An toàn, bảo mật: Việc nhiều người cùng phát triển giúp dễ dàng kiểm soát các lỗhổng bảo mật, điều này thực sự quan trọng với các doanh nghiệp, giúp họ tránh đượcnhững rủi ro nhất định
Tăng tính thương hiệu: Đối với các doanh nghiệp, việc có thể tự hào tuyên bốchuyển đổi công nghệ thành công và hoàn toàn không vi phạm bản quyền là một điểmcộng trong mắt đối tác của họ
2.4 Nhược điểm của mã nguồn mở
Ít có bản cập nhật tính năng mới: Thông thường, những bản cập nhật của phầnmềm mã nguồn mở chỉ là những bản vá bảo mật và những sửa đổi nho nhỏ, ít khi tung ranhững tính năng mới vì ban đầu nó đã được tạo ra để đáp ứng các nhu cầu nhất định vàkhông phải ai cũng có đủ nhiệt huyết để duy trì hỗ trợ một dự án suốt đời
Phân nhánh: Vì là những dự án mã nguồn mở làm cho cộng đồng, mà “chín ngườimười ý”, nên để thỏa mãn nhu cầu của những nhóm người nhất định, các dự án sẽ dầntách thành các nhánh phát triển khác nhau, đó cũng là nguyên nhân làm cho người dùng
ái ngại khi phải sử dụng phần mềm mã nguồn mở vì có quá nhiều sự lựa chọn!
Thiếu nhân lực, kinh phí duy trì: Vì là phần mềm miễn phí, ai cũng có thể sử dụngnên chẳng mấy ai đóng góp, ủng hộ để những nhà phát triển tiếp tục duy trì cập nhậtnhững dự án mã nguồn mở nữa Nhiều dự án lớn muốn tồn tại và phát triển phải đượcduy trì bởi quỹ của một công ty hay tổ chức nào đó Với những dự án phát triển nhỏ lẻthì chẳng khác nào những nhà phát triển phần mềm đang đi làm từ thiện vì đam mê cả!
2.5 Kết luận
Phần mềm mã nguồn mở thực sự được ưa chuộng trong thời đại số ngày nay Mặc dùkhông thể phủ nhận một số lợi ích nhất định của các công nghệ độc quyền với các doanhnghiệp, nhưng phần mềm mã nguồn mở đã và đang đóng một vai trò cực kỳ quan trọngtrong việc giúp chúng ta đến gần hơn với một thế giới hiện đại mà ở đó, chúng ta chính
Trang 32đã đáp ứng gần như toàn bộ những nhu cầu cần thiết của chúng ta Là những người vănminh trong thời đại số, nếu không có đủ điều kiện kinh tế để mua bản quyền phần mềm,hãy sử dụng phần mềm mã nguồn mở để tôn trọng những con người đang ngày đêmđóng góp công sức cho ngành công nghiệp phần mềm.
Trang 33CHƯƠNG 3 CÁC DỊCH VỤ TRÊN NỀN TẢNG MÃ NGUỒN MỞ
3.1 Apache
3.1.1 Khái niệm
Apache là phần mềm web server miễn phí mã nguồn mở Nó đang chiếm đến khoảng46% thị phần websites trên toàn thế giới Tên chính thức của Apache là Apache HTTPServer, được điều hành và phát triển bởi Apache Software Foundation
Nó giúp chủ website đưa nội dung lên web – vì vậy có tên gọi là “web server”.Apache là một trong số những web server lâu đời và đáng tin cậy nhất, phiên bản đầutiên đã được ra mắt từ hơn 20 năm trước, tận những năm 1995
Khi một người truy cập vào website của bạn, các công ty sẽ điền tên miền vào thanhđịa chỉ Sau đó, web server sẽ chuyển những files được yêu cầu xuống như là một nhânviên chuyển hàng ảo
Tại Hostinger, nền tảng web hosting giá rẻ của các công ty sử dụng Apache song songvới NGINX, cũng là một phần mềm web server phổ biến Phương pháp cài đặt đặc biệtnày giúp các công ty có lợi thế từ cả 2 nền tảng Nó đảm bảo hiệu năng mà không phải
hy sinh chấp nhận những điểm yếu của một trong 2 phần mềm
Trang 34Nhưng Website Server vẫn tồn tại những khó khăn nhất định đó là việc kéo thả dữliệu cho nhiều người dùng cùng lúc mà mỗi người lại tìm kiếm đến một trang web khácnhau Vì vậy cùng một lúc, web server phải xử lý các file dưới nhiều dạng ngôn ngữ lậptrình như Java, Python…
Sau đó chính những ngôn ngữ lập trình này được biến đổi, giải nén thành các fileHTML và chạy trên trình duyệt cho người dùng Hay một khái niệm tổng quan cho Webserver đó chính là một phương tiện nhằm mục đích giao tiếp giữa hai đối tượng server vàclient
3.1.3 Cách thức hoạt động của Apache WebServer
Mặc dù chúng ta gọi Apache là web server, nhưng nó lại không phải là server vật lý,
nó là một phần mềm chạy trên server đó Công việc của nó là thiết lập kết nối giữaserver và trình duyệt người dùng (Firefox, Google Chrome, Safari, vâng vâng.) rồichuyển file tới và lui giữa chúng (cấu trúc 2 chiều dạng client-server) Apache là mộtphần mềm đa nền tảng, nó hoạt động tốt với cả server Unix và Windows
Khi một khách truy cập tải một trang web trên website của bạn, ví dụ, trang chủ
“About Us”,trình duyệt người dùng sẽ gửi yêu cầu tải trang web đó lên server và Apache
sẽ trả kết quả với tất cả đầy đủ các file cấu thành nên trang About Us (hình ảnh, chữ,
Trang 35vâng vâng) Server và client giao tiếp với nhau qua giao thức HTTP và Apache chịutrách nhiệm cho việc đảm bảo tiến trình này diễn ra mượt mà và bảo mật giữa 2 máy.Apache là một nền tảng module có độ tùy biến rất cao Moduels cho phép quản trịserver tắt hoặc thêm chức năng Apache có modules cho bảo mật caching, URLrewriting, chứng thực mật khẩu, Bạn cũng có thể thiết lập cấu hình server riêng quafile gọi là htaccess, vốn là file cấu hình Apache được hỗ trợ hoàn toàn bởi mọi góihosting của Hostinger.
Hình 2.1.3.1 Apache Web Server
3.1.4 Ưu, nhược điểm của Apache
Ưu điểm:
Đây là một phần mềm mã nguồn mở miễn phí phục vụ được cho nhiều mục đíchngoài về công nghệ mà còn có thể trên cả lĩnh vực thương mại, kinh doanh
Là một phần mềm đáng tin cậy, chất lượng ổn định
Được cập nhật một cách thường xuyên, phát hiện báo lỗi và lỗi bảo mật liên tục giúp
Trang 36 Hoạt động hiệu quả, nhanh nhạy với WordPress sites.
Sở hữu một cộng đồng lớn nhằm tương trợ, giải đáp thắc mắc trong mọi vấn đề
Cấu hình đơn giản, thân thiện với những người mới bắt đầu sử dụng ứng dụng này
Nhược điểm:
Bởi nhiều người có thể truy cập vào cùng một lúc nên đôi khi quá trình truy vấn còngặp trục trặc, chậm hoặc thông tin đến người dùng có sự nhầm lẫn làm ảnh hưởngđến hiệu năng làm việc của Apache Web
Cũng chính vì sự miễn phí của app nên người dùng có thể lựa chọn sử dụng nhiềucách thiết lập khác nhau và chính vì vậy dẫn đến tình trạng bảo mật đôi khi còn kém
3.2 Nginx
3.2.1 Khái niệm
Nginx là một phần mềm web server mã nguồn mở nỗi tiếng Ban đầu nó dùng để phục
vụ web HTTP Tuy nhiên, ngày nay nó cũng được dùng làm reverse proxy, HTTP loadbalancer và email proxy như IMAP, POP3, và SMTP
NGINX xuất bản chính thức vào tháng 10 năm 2004 Nhà sáng lập của phần mềm này
là Igor Sysoev, triển khai dự án từ năm 2002 để giải quyết vấn đề C10k C10k là giớihạn của việc xử lý 10 ngàn kết nối cùng lúc Ngày nay, có nhiều web server còn phảichịu nhiều kết nối hơn vậy để xử lý NGINX sử dụng kiến trúc hướng sự kiện (event-driven) không đồng bộ (asynchronous) Tính năng này khiến NGINX server trở nên đángtin cậy, tốc độ và khả năng mở rộng lớn nhất
Vì khả năng mạnh mẽ, và để có thể xử lý hàng ngàn kết nối cùng lúc, nhiều website
có traffic lớn đã sử dụng dịch vụ NGINX Một vài trong số những ông lớn công nghệdùng nó là Google, Netflix, Adobe, Cloudflare, WordPress, và còn nhiều hơn nữa
Trang 37Hình 2.2.1.1 Logo Nginx
3.2.2 Cách thức hoạt động của Nginx Server
Trước khi học về NGINX, chúng ta cần biết cách web server hoạt động thế nào đã Ví
dụ như, khi ai đó gửi một yêu cầu để mở một trang web Trình duyệt sẽ liên lạc vớiserver chứa website đó Sau đó, server sẽ tìm kiếm đúng file yêu cầu của trang đó và gửingược về cho server Đây là một loại truy vấn đơn giản nhất
Ví dụ trên được xem như là một single thread – một bộ các bước xử lý dữ liệu đượcthực thi theo 1 trình tự duy nhất Web server truyền thống tạo một thread cho mỗi yêucầu (request) NGINX thì hoạt động theo một cách khác Nó hoạt động theo kiến trúc bấtđồng bộ (asynchronous), hướng sự kiện (event driven) Kiến trúc này có thể hiểu lànhững threads tương đồng nhau sẽ được quản lý trong một tiến trình (process), và mỗitiến trình hoạt động chưa các thực thể nhỏ hơn gọi là worker connections Cả bộ đơn vịnày chịu trách nhiệm xử lý các threads
Worker connections sẽ gửi các truy vấn cho một worker process, worker process sẽgửi nó tới process cha (master process) Cuối cùng, master process sẽ trả kết quả chonhững yêu cầu đó
Điều này có vẻ đơn giản, một worker connection có thể xử lý đến 1024 yêu cầu tương
tự nhau Vì vậy, NGINX có thể xử lý hàng ngàn yêu cầu mà không gặp rắc rối gì Đâycũng là lý do vì sao NGINX tỏ ra hiệu quả hơn khi hoạt động trên môi trường thương
Trang 383.2.3 Tính năng của Nginx
Những tính năng của máy chủ HTTP Nginx
Có khả năng xử lý hơn 10.000 kết nối cùng lúc với bộ nhớ thấp
Phục vụ tập tin tĩnh (static files) và lập chỉ mục tập tin
Tăng tốc reverse proxy bằng bộ nhớ đệm (cache), cân bằng tải đơn giản và khả năngchịu lỗi
Hỗ trợ tăng tốc với bộ nhớ đệm của FastCGI, uwsgi, SCGI, và các máy chủmemcached
Kiến trúc modular, tăng tốc độ nạp trang bằng nén gzip tự động
Hỗ trợ mã hoá SSL và TLS
Cấu hình linh hoạt; lưu lại nhật ký truy vấn
Chuyển hướng lỗi 3XX-5XX
Rewrite URL (URL rewriting) dùng regular expressions
Hỗ trợ truyền tải file FLV và MP4
Những tính năng máy chủ mail proxy của Nginx
Nginx hỗ trợ nhiều phương thức xác thực đa dạng cho máy chủ Proxy như: POP3,IMAP, SMTP,…
Ngoài ra, Nginx còn có chức năng hỗ trợ SSL, STARTTLS và STLS vô cùng hữuhiệu
3.3 MySQL
3.3.1 Khái niệm
MySQL được biết đến như một loại hệ thống quản trị CSDL mã nguồn mở (còn đượcgọi là phần mềm RDBMS) tốc độ cao, được vận hành theo mô hình máy khách - máy