Nhập môn lập trình (5) - C#, .NET và Visual Studio

Bài trước: Nhập môn lập trình (4) - Kỹ năng, Kiểu ngôn ngữ, Mẫu hình lập trình

-----

[Video]

Bắt đầu từ đây, bạn sẽ tập trung vào một số mục tiêu sau:

– Sử dụng thuần thục một IDE

– Kĩ thuật lập trình

– Lập trình hướng đối tượng

– Học tiếng Anh chuyên ngành (từ vựng, đọc hiểu)

– Kĩ năng tự học, tự đọc tài liệu

Danh sách thuật ngữ:

https://docs.google.com/spreadsheets/d/1koyx85jh12QUat8FQxkVh8AI4Gr-E6NZkfXN84Fc1oE/edit?usp=sharing

Từ điển Việt-Anh:

http://tratu.soha.vn/

Từ điển Anh-Anh:

https://www.ldoceonline.com/

Google translate (để dịch một đoạn):

https://translate.google.com/?sl=en&tl=vi&op=translate

Ebook: link

1.1       Ngôn ngữ lập trình C#

[ebook – Preface - page xxi]

C# (hay C sharp – đọc là xi-sáp) là một ngôn ngữ lập trình hướng đối tượng đa năng, mạnh mẽ do Microsoft tạo ra.

Bạn có thể sử dụng C# để lập trình web back-end, web front-end, ứng dụng desktop, game, thực tế ảo, ứng dụng di động, điện toán đám mây, trí tuệ nhân tạo, khoa học dữ liệu, chuỗi khối, Internet vạn vật, hệ thống nhúng. Xem hình minh họa,


C# kết hợp chặt chẽ với nền tảng .NET (.NET platform)

Một vài thông tin thêm về C#:

– Là ngôn ngữ mã nguồn mở

– Đa nền tảng, có thể biên dịch trên nhiều họ Hệ điều hành (Windows, Linux, Unix)

– Hiệu suất cao, thực thi nhanh

– Có thể lập trình bằng IDE, code editor

– Cú pháp lập trình thân thiện, gần gũi với các ngôn ngữ truyền thống (C++, Java)

– Cộng đồng phát triển mạnh mẽ, đông đảo

– Được Microsoft bảo trợ

– Được cải tiến liên tục

– Tài liệu tham khảo đa dạng

Các phiên bản của C#:

C#1.0 - 2002

C#2.0 - 2005

C#3.0 - 2007

C#4.0 – 2010

C#5.0 - 2013

C#6.0 - 2015

C#7.0 - 2017

C#8.0 – 2019

C#9.0 - 2020

 

 

 

1.2       Nền tảng .NET

Thuật ngữ “nền tảng” (platform) thường được sử dụng để chỉ một hệ thống gồm nhiều thành phần, liên kết và hoạt động đồng bộ với nhau, dùng làm bệ đỡ, hỗ trợ cho các thành phần khác thực thi trên nó. Ví dụ người ta hay gọi hệ điều hành là các nền tảng, như Windows, Unix, Linux; nền tảng lập trình .NET.

Nền tảng .NET (.NET platform) là một hệ thống do công ty Microsoft tạo ra, gồm nhiều thành phần giúp phát triển và thực thi các ứng dụng. Xem hình minh họa,

Các ứng dụng bạn có thể phát triển trên nền tảng .NET rất đa dạng, ví dụ ứng dụng desktop, web, cloud, mobile, gaming, IoT, AI.

Nền tảng .NET gồm một số thành phần:

– Infrastructure

– .NET 5

– .NET standard

Áp dụng trong thực tế:

– Một máy tính muốn chạy ứng dụng viết trên nền tảng .NET thì máy đó phải được cài đặt nền tảng .NET

– Khi sử dụng IDE Visual Studio để lập trình trên .NET thì phải liên kết Visual Studio với nền tảng .NET

Nền tảng .NET phiên bản trước .NET 5 gồm các thành phần sau. Xem hình minh họa.


Các thành phần gồm:

– Common Infrastructure

– .NET Standard Library

– Các framework (.NET Framework, .NET Core, Mono).

Trong đó,

– .NET Framework: chỉ hoạt động trên Windows, cung cấp các nền tảng để tạo ứng dụng như: WPF, Winforms, ASP.NET

– .NET Core: hoạt động theo hướng đa nền tảng, gồm Universal Windows Platform và ASP.NET Core

– Mono là phiên bản cộng đồng, nhằm đem .NET đến các nền tảng ngoài Windows. Mono gồm: Unity Game và Xamarin.

Áp dụng trong thực tế:

– Nếu làm ứng dụng chạy trên Windows (Desktop Application) thì sử dụng .NET Framework

– Nếu làm game dựa trên Unity hoặc ứng dụng di động dựa trên Xamarin thì sử dụng Mono

– Nếu làm web, ứng dụng web thì sử dụng .NET Framework hoặc .NET Core đều được

1.3       .NET Framework

Kiến trúc của nền tảng .NET thường xuyên được cải tiến, thay đổi, tuy vậy các thành phần cốt lõi vẫn được duy trì, vừa đảm bảo tính tương thích, vừa có tính kế thừa. Điều này cũng dễ hiểu, vì những cải tiến hay thay đổi chỉ là những chỉnh sửa nhỏ dựa trên các nền tảng có sẵn, sẽ rất rủi ro khi đột ngột xóa bỏ mọi cái cũ để thay bằng một cái mới hoàn toàn.

Tiếp theo, bạn sẽ tìm hiểu cụ thể một thành phần của nền tảng .NET đó là bộ khung .NET Framework.

Bộ khung (framework) là một bộ công cụ, thường bao gồm các thư viện, chương trình dịch, API và mẫu thiết kế; được xây dựng sẵn, giúp việc lập trình ứng dụng được tối ưu về thời gian, bảo mật, và hiệu quả.

Ví dụ, hình sau là các thành phần của .NET Framework:

Theo wiki:

– .NET Framework là một nền tảng lập trình và cũng là một nền tảng thực thi ứng dụng chủ yếu trên hệ điều hành Microsoft Windows, được Microsoft tạo ra. Các chương trình viết trên nền .NET Framework sẽ không chạy trực tiếp trên môi trường phần cứng, mà nó sẽ chạy thông qua một cái máy ảo có tên là CLR (Common Language Runtime). CLR cũng chịu trách nhiệm liên quan đến an toàn phần mềm (security), quản lý bộ nhớ (memory management) và xử lý lỗi (exception handling).

– .NET Framework gồm các thư viện lập trình. Các thư viện này hỗ trợ việc lập trình giao diện, làm việc với cơ sở dữ liệu, ứng dụng web, giải thuật, cấu trúc dữ liệu, giao tiếp mạng. Các thư viện lập trình này cùng với CLR là hai thành phần chính của .NET Framework.

– .NET Framework giúp việc lập trình đơn giản hơn nhờ vào các thành phần được thiết kế sẵn. Người lập trình chỉ cần sử dụng các thành phần được thiết kế sẵn để tạo ra ứng dụng.

– Visual Studio là IDE do Microsoft tạo ra, giúp người lập trình phát triển phần mềm dựa trên .NET Framework.

– .NET Framework đã trải qua nhiều phiên bản, mỗi phiên bản sẽ có những thành phần được thêm vào, được cải tiến hoặc bị loại bỏ. Để ý điều này để đảm bảo tính tương thích và sử dụng các bản .NET Framework cho phù hợp.

1.4       Visual Studio

Sau khi đọc các phần trước, bạn đã lựa chọn được ngôn ngữ lập trình là C#, đã biết cách tải về máy tính của bạn gói .NET Framework (một thành phần của nền tảng .NET). Gói .NET Framework cung cấp các thư viện để bạn lập trình tiện lợi hơn, cung cấp trình dịch mã, trình sửa lỗi, máy ảo thực thi chương trình. Vậy bạn chỉ còn thiếu công cụ để viết mã nguồn.

Để viết mã nguồn, bạn có thể sử dụng text editor, code editor hoặc IDE.

Visual Studio là một IDE do Microsoft tạo ra năm 1997. Bạn có thể sử dụng Visual Studio để tạo ra chương trình máy tính, ứng dụng web, ứng dụng di động, games, IoT.

Một vài thông tin thêm về Visual Studio:

– Cho phép tích hợp bộ quản lý mã nguồn (Subversion hoặc Git)

– Bạn có thể sử dụng Visual Studio để lập trình với 36 ngôn ngữ lập trình khác nhau. Nhiều ngôn ngôn ngữ đã được tích hợp sẵn như C, C++, C#, F#, Visual Basic .NET, JavaScript, TypeScript, XML, XSLT, HTML, CSS.

– Có phiên bản Community miễn phí dành cho cộng đồng, học tập

Visual Studio có rất nhiều phiên bản, mỗi phiên bản sẽ hỗ trợ một số framework nhất định. Bảng sau sẽ cung cấp thêm một số thông tin về các phiên bản Visual Studio và các framework tương ứng.

Visual Studio

Phiên bản

Framework

Năm ra đời

Visual Studio 2022

 

– .NET Framework 3.5, 4.6.0 - 4.8

– .NET Core 2.1, 3.1, 5.0, 6.0

– .NET

2022

Visual Studio 2019

16.0

– .NET Framework versions 4.8, 4.7.2, 4.7.1, 4.7, 4.6.2, 4.6.1, 4.6, 4.5.2, 4.5.1, 4.5,  4.0

– .NET Core 3.1, 3.0, 2.2, 2.1, and 1.1.

– .NET Native

– .Mono

2020

Visual Studio 2017

15.0

3.5 – 4.7

2017

Visual Studio 2015

14.0

2.0 – 4.6

2015

Visual Studio 2013

12.0

2.0 – 4.5.2

2013

Visual Studio 2012

11.0

2.0 – 4.5.2

2012

Visual Studio 2010

10.0

2.0 – 4.0

2010

Visual Studio 2008

9.0

2.0, 3.0, 3.5

2007

Visual Studio 2005

8.0

2.0, 3.0

2005

Visual Studio .NET 2003

7.1

1.1

2003

Visual Studio .NET (2002)

7.0

1.0

2002

Visual Studio 6.0

6.0

N/A

1998

Visual Studio 97

5.0

N/A

1997

1.5       Xem và đọc thêm

Sử dụng các từ khóa để tìm kiếm và đọc thêm: ngôn ngữ lập trình C#, C sharp language, các nền tảng .NET, .NET 5 microsoft, Visual Studio.

– Ngôn ngữ lập trình C#: https://vi.wikipedia.org/wiki/C_Sharp_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)

– C sharp: https://en.wikipedia.org/wiki/C_Sharp_(programming_language)

– Các nền tảng .NET: https://tuhocict.com/cong-nghe-microsoft-1-net-framework-net-core/

– .NET framework: https://dotnet.microsoft.com/en-us/download/dotnet

1.6       Bài tập và thực hành

Bài tập 1. Vào trang Microsoft, tải các framework sau về máy tính của bạn.

– .NET 6.0 > .NET Desktop Runtime 6.0.7 (kích thước khoảng 55MB)

– .NET Framework 4.8 (bản Build apps – Dev pack) (kích thước khoảng 140 MB)

Sự khác nhau giữa bản Build apps hoặc SDK so với bản Runtime là gì?

Bài tập 2. Tải và cài đặt Visual Studio bản Community cho máy tính của bạn.

Gợi ý:

Bài tập 1: Vào trang Microsoft, tải các framework sau về máy tính của bạn.

– .NET 6.0 > .NET Desktop Runtime 6.0.7 (kích thước khoảng 55MB):

https://dotnet.microsoft.com/en-us/download

– .NET Framework 4.8 (bản Build apps – Dev pack) (kích thước khoảng 140 MB): https://dotnet.microsoft.com/en-us/download/dotnet-framework/net48

Sự khác nhau giữa bản Build apps hoặc SDK so với bản Runtime là gì? Runtime là máy ảo để chạy các ứng dụng viết trên nền tảng .NET; Build apps hoặc SDK = Runtime + các công cụ, thư viện để tạo ra ứng dụng.

Bài tập 2. Tải và cài đặt Visual Studio bản Community cho máy tính của bạn.

– Vào trang tìm kiếm (Google), gõ từ khóa Visual Studio

– Vào trang chủ của Visual Studio (https://visualstudio.microsoft.com/), đọc các thông tin giới thiệu

– Chọn mục Free Visual Studio, chọn bản phù hợp với bạn. Để tiện cho việc học với Ebook kèm theo, ở đây sẽ chọn bản Community 2015.

-----//5

Cập nhật: 29/7/2022

Bài tiếp theo: Nhập môn lập trình (6) - 

Nhập môn lập trình (4) - Kỹ năng, Kiểu ngôn ngữ, Mẫu hình lập trình

Bài trước: Nhập môn lập trình (3) - Ngôn ngữ và phần mềm lập trình

-----

[Video]

1.1       Các kĩ năng cần có khi sử dụng một phần mềm lập trình

Đối với mỗi phần mềm lập trình, để chọn được phần mềm phù hợp, sử dụng hiệu quả, bạn cần phải có các thông tin và kĩ năng cơ bản sau:

– Tính tương thích của phần mềm với các họ hệ điều hành (Windows, macOS, Linux)

– Phần mềm hỗ trợ làm việc với các ngôn ngữ lập trình nào

– Phần mềm miễn phí hay có phí

– Cách tải và cài đặt

– Sử dụng thuần thục các chức năng trên giao diện người dùng

– Cài đặt và chọn tông màu giao diện (theme) theo ý thích

– Thuần thục các thao tác với thư mục và tập tin

– Định dạng mã nguồn tự động

– Sử dụng gợi ý trong lúc viết mã (IntelliSense)

– Dịch và chạy mã nguồn

– Tìm, cài đặt và gỡ bỏ các chức năng mở rộng (extensions)

– Học các kỹ năng soạn thảo mã nguồn nhanh (ví dụ gõ tắt, tạo văn bản ngẫu nhiên, sử dụng đa con trỏ)

1.2       Các kiểu ngôn ngữ và mẫu hình lập trình

Các kiểu ngôn ngữ lập trình

Như các bạn đã biết, hiện nay đang có rất nhiều ngôn ngữ lập trình (hàng ngàn ngôn ngữ). Tùy theo mục đích sử dụng, môi trường phát triển và yêu cầu của công nghệ, người ta đã tạo ra các kiểu ngôn ngữ lập trình khác nhau. Dựa vào đặc tính hoạt động, phương pháp lập trình mà nó hỗ trợ, người ta chia các ngôn ngữ lập trình thành một số kiểu chính sau:

– Ngôn ngữ lập trình hướng đối tượng (object-oriented programming language). Ví dụ: Java, C++, C#, Python, PHP, Ruby, Perl, Object Pascal, Objective-C, Dart, Swift, Scala, Common Lisp, và Smalltalk

– Ngôn ngữ lập trình logic (logic programming language). Ví dụ: Prolog, Datalog

– Ngôn ngữ lập trình thủ tục (procedural programming language). Ví dụ: FORTRAN, ALGOL, BASIC, COBOL, Pascal, C, Ada.

– Ngôn ngữ lập trình hàm hay lập trình chức năng (functional programming language). Ví dụ: Scheme, Erlang, Objective Caml, Haskell; các ngôn ngữ lập trình chuyên biệt: R, F#, SQL, JavaScript, bảng tính Excel cũng có thể xem là thuộc kiểu ngôn ngữ này.

– Ngôn ngữ lập trình kịch bản (scripting programming language). Ví dụ: Bash, PowerShell, Perl, Python, PHP, JavaScript.

Tuy nhiên, hiện nay các ngôn ngữ không ngừng được cải tiến, bổ sung thêm nhiều đặc tính, giúp lập trình được nhiều loại ứng dụng, chạy được trên nhiều nền tảng, lập trình tiện lợi và tối ưu hơn. Do vậy, một ngôn ngữ có thể thuộc vào nhiều loại ngôn ngữ cùng lúc. Ví dụ, JavaScript, PHP thuộc kiểu ngôn ngữ kịch bản, tuy nhiên, nó vẫn có những đặc điểm của kiểu ngôn ngữ hướng đối tượng, lập trình hàm, và thủ tục. Để tạo ra một chương trình, bạn sẽ sử dụng duy nhất một ngôn ngữ lập trình, hoặc có thể phải sử dụng nhiều ngôn ngữ lập trình. Ví dụ: để viết một chương trình đơn giản, bạn có thể chỉ cần sử dụng C#, tuy nhiên, nếu bạn viết một ứng dụng web thì bạn phải sử dụng nhiều ngôn ngữ khác nhau (HTML, CSS, JavaScript, SQL, PHP).

Mẫu hình lập trình

Tùy theo mục đích lập trình, loại ứng dụng muốn tạo ra và ngôn ngữ lập trình đang sử dụng, bạn có thể lựa chọn một, hoặc kết hợp nhiều mẫu hình (mô hình, paradigm) lập trình phổ biến sau:

– Lập trình hướng đối tượng (object-oriented programming)

– Lập trình thủ tục (procedural programming)

– Lập trình tổng quát, lập trình khái quát (generic programming)

– Lập trình hàm (functional programming)

– Và nhiều mẫu hình lập trình khác

Một ngôn ngữ có thể hỗ trợ một hoặc nhiều mẫu hình lập trình, do đó bạn có thể viết một chương trình chỉ sử dụng một mẫu hình cụ thể hoặc kết hợp nhiều mẫu hình lập trình. Ví dụ bạn chỉ sử dụng lập trình thủ tục; hoặc chỉ sử dụng lập trình hướng đối tượng; hoặc có thể sử dụng cùng lúc cả hai mẫu hình này.

1.3       Xem và đọc thêm

– Dùng các từ khóa sau để tìm kiếm trên mạng và đọc thêm: lập trình, mã máy, hợp ngữ, ngôn ngữ lập trình cấp cao, chương trình dịch

– T.Đ.Thư, N.T.Phương, Đ.B.Tiến, T.M.Triết, Nhập môn lập trình, NXB Khoa học kĩ thuật, 2011, tr14 – 28

– List of programming languages: https://en.wikipedia.org/wiki/List_of_programming_languages

– Stackoverflow (Programming, scripting, and markup languages): https://survey.stackoverflow.co/2022/#most-popular-technologies-language-prof

– List of scripting language: https://kinsta.com/blog/scripting-languages/

– List of markup language: https://computerscience.fandom.com/wiki/List_Of_Markup_Languages

– Các mẫu hình (mô hình) lập trình (programming paradigm): https://vi.wikipedia.org/wiki/M%E1%BA%ABu_h%C3%ACnh_l%E1%BA%ADp_tr%C3%ACnh

1.4       Bài tập và thực hành

Bài tập 1. Đọc thông tin trong khảo sát (survey) mới nhất của Stackoverflow và liệt kê tất cả các ngôn ngữ phổ biến hiện nay.

Bài tập 2. Viết một chương trình bằng JavaScript (đây là ngôn ngữ chạy theo kiểu thông dịch), xuất ra một thông báo bất kì.

Bài tập 3. Liệt kê tên của 5 ngôn ngữ lập trình, 5 ngôn ngữ kịch bản, và 5 ngôn ngữ đánh dấu.

Bài tập 4. Xem qua các clip trên youtube về cách sử dụng một code editor, IDE, môi trường lập trình trực tuyến. Ví dụ : VS code: https://www.youtube.com/watch?v=VqCgcpAypFQ&t=911s

Bài tập 5. Tải và cài đặt VS code

Bài tập 6. Tải và cài đặt Visual Studio

Bài tập 7. Sử dụng môn trường lập trình online, viết một đoạn mã bằng ngôn ngữ JavaScript, xuất một câu chào ra màn hình.

Gợi ý:

Bài tập 1. Vào trang Google > gõ từ khóa survey stackoverflow > tìm tới surver của năm mới nhất > tìm tới mục Technology > tìm tới mục Most popular technologies > tìm tới mục Programming, Scripting and Markup Language.

Bài tập 2. Xem hướng dẫn trong phần lý thuyết về Trình thông dịch.

Bài tập 3. Tìm kiếm trên Internet.

Bài tập 4. Tìm kiếm trên Youtube.

Bài tập 5. Tải và cài đặt VS code: vào trang google > tìm kiếm từ khóa VS code > vào trang web của VS code để tải về. Ví dụ: https://code.visualstudio.com/

Bài tập 6. Tải và cài đặt Visual Studio: vào trang google > tìm kiếm từ khóa visual studio > vào trang web của visual studio > chọn bản miễn phí (chọn tab Free Visual Studio) > chọn bản phù hợp với máy tính bạn đang sử dụng để tải về > ví dụ bản Visual Studio Community (https://visualstudio.microsoft.com/free-developer-offers/).

Bài tập 7. Sử dụng môn trường lập trình online, viết một đoạn mã bằng ngôn ngữ JavaScript, xuất một câu chào ra màn hình: mở một trang web cho phép lập trình online bất kì, ví dụ codepen (https://codepen.io/) > đăng nhập vào tài khoản của bạn (nếu bạn chưa có thì tạo mới một tài khoản) > nhập mã nguồn JavaScript (console.log('Hi cu Teo');) > mở cửa số console của code pen để xem kết quả. 

1.5       Câu hỏi ôn tập

Câu 1. Về mặt lý thuyết có thể viết đoạn mã điều khiển máy tính bằng?

A. Mã máy

B. Hợp ngữ

C. Ngôn ngữ lập trình cấp cao

D. Tất cả các cách trên

Câu 2. In computer science, an _______ is a computer program that directly executes instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program.

A. compiler

B. interpreter

C. assembler

D. coder

Câu 3. Bạn có thể lập trình bằng các công cụ nào?

A. text editor, code editor, IDE, web browser

B. microsoft word, code editor, IDE, web browser

C. text editor, code editor, CMD, web browser

D. text editor, code editor, IDE, HTML

Câu 4. Các kiểu ngôn ngữ lập trình (cấp cao) phổ biến gồm:

A. Java, Logic, Thủ tục, Hàm, Kịch bản

B. Hướng đối tượng, Hợp ngữ, Thủ tục, Hàm, Kịch bản

C. Hướng đối tượng, Logic, Thủ tục, Hàm, Kịch bản

D. Logic, Hướng đối tượng, C, Hàm, Kịch bản

Câu 5. Các mẫu hình (mô hình, paradigm) lập trình phổ biến gồm:

A. Tổng quát, Desktop, Thủ tục, Hàm

B. Hướng đối tượng, Thủ tục, Tổng quát, Hàm

C. Thủ tục, Hướng đối tượng, Tổng quát, Web

D. Tổng quát, Di động, Thủ tục, Hàm

Đáp án: 1 (D), 2(B), 3 (A), 4(C), 5(B)

-----//4

[Video]

--------

Cập nhật: 22/7/2022

Bài tiếp theo: Nhập môn lập trình (5) - C#, .NET và Visual Studio

Web back-end (4) - Dịch vụ lưu trữ web

1.1       Dịch vụ lưu trữ web

Để có một website hoạt động, cần thực hiện một số công việc sau:

– Lập trình website, kết quả là một thư mục (ví dụ mywebsite) chứa toàn bộ các tập tin mã nguồn, các tập tin hình ảnh, âm thanh, video.

– Đăng ký một tên miền, ví dụ mywebsite.com

– Đưa website lên một web server

– Nối kết tên miền (mywebsite.com) tới web server hoặc thư mục lưu trữ website trên web server (mywebsite)

Như trong phần web server đã tìm hiểu, máy tính đóng vai trò là web server thực thụ thì cần phải có một địa chỉ IP duy nhất, không thay đổi, mà các máy client có thể truy cập tới server bằng địa chỉ IP này. Vậy địa chỉ IP của máy server phải thuộc loại public. Bạn có thể tìm đọc thêm về các loại địa chỉ IP.

Với một cơ quan, tổ chức, việc phải tự trang bị một máy tính server, một địa chỉ IP public, đường truyền mạng đủ mạnh, chuyên viên quản trị và cấu hình hệ thống, sẽ dẫn tới chi phí cao. Có một giải pháp khác để có một hệ thống web server là đi thuê từ các nhà cung cấp.

Phần này sẽ tìm hiểu một số cách thức để có một hệ thống web server đáp ứng được nhu cầu của cơ quan, tổ chức với chi phí hợp lý.

1.1.1       Dịch vụ lưu trữ web là gì?

Dịch vụ lưu trữ web (web hosting service, hoặc web host) là một loại dịch vụ lưu trữ trên Internet, giúp các cá nhân, tổ chức, công ty (gọi chung là người sở hữu website) có thể đưa website của họ lên web, cho phép mọi người đều có thể truy cập được. Xem hình minh họa,


Có thể hình dung Internet là một mạng lưới gồm nhiều con đường, thuê chỗ lưu website giống như thuê đất để xây văn phòng công ty, website chính là văn phòng công ty, tên công ty lưu trên cổng thông tin là tên miền, số nhà của văn phòng là địa chỉ IP.

Nhà cung cấp dịch vụ lưu trữ web là các công ty sở hữu các máy server, hệ thống đĩa cứng, kết nối Internet được tổ chức dưới hình thức một trung tâm dữ liệu (data center)

Chữ “host” có thể hiểu theo nghĩa là “tổ chức lưu trữ”; hoặc cũng có thể hiểu theo nghĩa là máy chủ, hosting nghĩa là thiết lập máy chủ.

Người sở hữu trang web (được gọi là người thuê bao) sẽ đi thuê dịch vụ lưu trữ web từ các công ty cung cấp dịch vụ.

Đa số các dịch vụ lưu trữ web là có phí, tuy nhiên cũng có một số dịch vụ miễn phí.

Người dùng có thể sử dụng dịch vụ lưu trữ web từ các nhà cung cấp trong nước hoặc quốc tế. Mỗi loại nhà cung cấp có những ưu và nhược điểm khác nhau. Bạn cần tìm hiểu kĩ trước khi quyết định lựa chọn nhà cung cấp trong nước hay quốc tế.

1.1.2       Một số loại dịch vụ lưu trữ web

Một số loại dịch vụ lưu trữ web phổ biến:

– Lưu trữ chia sẻ (shared hosting)

– Lưu trữ trên máy chủ dùng riêng (dedicated server hosting)

– Lưu trữ trên máy chủ ảo dùng riêng (virtual private server hosting)

– Lưu trữ trên đám mây (cloud hosting)

Xem hình minh họa:


Mỗi loại dịch vụ lưu trữ web có đặc điểm vận hành, khả năng đáp ứng nhu cầu truy cập, số lượng các kết nối cùng lúc, khả năng lưu trữ khác nhau, vì vậy tùy theo khả năng và nhu cầu sử dụng để lựa chọn loại dịch vụ cho phù hợp.

Lưu trữ chia sẻ (shared hosting)

Là hình thức gồm nhiều website cùng đặt trên một máy server vật lý, cùng chia sẻ tài nguyên (RAM, CPU, đĩa cứng, đường truyền) của server. Loại dịch vụ lưu trữ này phù hợp với các công ty nhỏ và nhu cầu sử dụng của các cá nhân.

Ưu điểm:

– Giá thành thấp

– Dễ cấu hình, dễ sử dụng

– Nhà cung cấp chịu trách nhiệm vận hành và quản lý server

Nhược điểm:

– Bị hạn chế trong việc lựa chọn nền tảng, công nghệ, các cấu hình hệ thống

– Một website có lượng truy cập tăng đột biến có thể ảnh hưởng tới các website còn lại

Lưu trữ trên máy chủ dùng riêng (dedicated server hosting)

Là hình thức người thuê bao được thuê riêng một máy chủ vật lý, được toàn quyền kiểm soát máy chủ. Người dùng có thể tự cài đặt hệ điều hành, phần mềm web server, hệ quản trị cơ sở dữ liệu, trình thông dịch ngôn ngữ, cấu hình hệ thống.

Ưu điểm:

– Có tính bảo mật cao

– Người dùng có toàn quyền kiếm soát máy server

– Tốc độ tải, hiệu suất phục vụ cao và ổn định

Nhược điểm:

– Chi phí cao

– Người dùng phải có kiến thức, kĩ năng để cấu hình và quản trị server

Lưu trữ trên máy chủ ảo dùng riêng (VPS hosting)

Là hình thức người thuê bao được thuê riêng một máy chủ, nhưng là máy chủ ảo (virtual machine server). Nhà cung cấp dịch vụ sử dụng phần mềm để tạo ra các máy chủ ảo, bao gồm CPU, đĩa cứng, RAM. Trên máy chủ ảo này, người dùng được toàn quyền trong việc lựa chọn và cài đặt hệ điều hành, phần mềm web server, hệ quản trị cơ sở dữ liệu, trình thông dịch ngôn ngữ, cấu hình hệ thống.

Tuy nhiên vì nhiều máy chủ ảo vẫn nằm trên một máy chủ vật lý thật, nên kiểu lưu trữ này thực chất là sự kết hợp giữa kiểu lưu trữ máy chủ dùng riêng và lưu trữ chia sẻ.

Một số nền tảng tạo máy server ảo như VMware, Virtual Box, Hyper-V.

Ưu điểm:

– Dễ nâng cấp và mở rộng

– Chi phí thấp hơn so với trang bị máy server vật lý

– Bảo mật cao

Nhược điểm:

– Chi phí cao hơn so với kiểu lưu trữ chia sẻ

– Cần có kiến thức về cài đặt, cấu hình và quản trị server

Lưu trữ trên đám mây (cloud hosting)

Đây là dịch vụ lưu trữ web mới, vận hành trên nền tảng điện toán đám mây. Ý tưởng là các thuê bao sẽ đặt website trên máy chủ riêng ảo, máy chủ riêng ảo này lại được đặt trên một hệ thống là gộp của các máy server vật lý. Ví dụ các hệ thống của Google, Microsoft (Azure), Amazon (AWS).

Ưu điểm:

– Không bị giới hạn tài nguyên sử dụng (RAM, CPU, đĩa cứng, đường truyền)

– Khả năng mở rộng linh hoạt, nhanh chóng

– Trả phí theo nhu cầu sử dụng thực tế, giúp tiết kiệm chi phí cho doanh nghiệp

– Có tính ổn định cao, nếu một server trong hệ thống bị lỗi thì sẽ có server khác chạy thay thế ngay lập tức.

Nhược điểm:

– Khó kiểm soát và quản lý giá

– Chi phí cao

– Cần có kiến thức về cài đặt, cấu hình và quản trị máy chủ ảo

– Không có quyền truy cập vào root

1.1.3       Nối kết tên miền với nơi lưu trữ website

Qua các bài học trước, chúng ta đã biết cách đăng ký được tên miền, thuê được web server để lưu trữ website (hosting), và đã biết cách tải mã nguồn website lên web server.

Để ý là việc đăng ký tên miền được thực hiện với nhà quản lý tên miền VNNIC hoặc ICANN thông qua các đại lý ủy quyền, trong khi việc thuê web server được thực hiện với các nhà cung cấp dịch vụ lưu trữ web. Thông thường, một nhà cung cấp dịch vụ web sẽ cho phép bạn vừa đăng ký tên miền vừa thuê web server, và họ cũng thực hiện luôn việc nối kết, nên bạn không cần phải thực hiện.

Tuy nhiên, bạn vẫn có thể đăng ký tên miền ở nhà cung cấp này và thuê web server ở một nhà cung cấp khác. Trong trường hợp này, bạn cần phải nối kết giữa tên miền và web server (hay còn gọi là trỏ tên miền về hosting) thì người duyệt web mới có thể truy cập được tới website. Xem hình minh họa,


Như phần tìm hiểu về DNS đã đề cập, trong hệ thống DNS, Name server (đừng nhầm với từ server name – tên máy server) là máy tính chứa các bản ghi thông tin của miền, bản ghi này có dạng “tên miền – IP”. Nối kết tên miền và web server là công việc khai báo và cập nhật các bản ghi thông tin dạng “tên miền – IP” trên các Name server của hệ thống DNS. Các công ty cung cấp dịch vụ web thường sở hữu và quản lý các Name server.

Các bước để kết nối tên miền và web server:

– Sau khi thuê được dịch vụ lưu trữ website, bạn sẽ nhận được tài khoản để đăng nhập vào hệ thống, và địa chỉ Name server của nhà cung cấp dịch vụ lưu trữ website, ví dụ: ns1.matbao.com, ns2.matbao.com; hoặc ns-a1.tenten.vn, ns-a2.tenten.vn.

– Sau khi đăng ký tên miền, bạn sẽ có tài khoản để đăng nhập vào hệ thống quản lý tên miền

– Đăng nhập vào hệ thống dịch vụ lưu trữ website (hosting), gắn tên miền đã đăng ký vào hosting

– Đăng nhập vào hệ thống quản lý tên miền, thay đổi địa chỉ Name server hoặc IP của web hosting.

1.1.4       Xem và đọc thêm

– [1] Dùng các từ khóa sau tìm kiếm trên mạng để đọc thêm: dịch vụ lưu trữ web, web hosting services, publish website in github.

– [2] Dịch vụ lưu trữ web (đọc): https://vi.wikipedia.org/wiki/D%E1%BB%8Bch_v%E1%BB%A5_l%C6%B0u_tr%E1%BB%AF_web

– [3] Web hosting services (read): https://en.wikipedia.org/wiki/Web_hosting_service

– [4] Types of web hosting: https://bestwebhostingaustralia.org/types-of-web-hosting/

– [5] Trỏ tên miền về hosting: https://www.youtube.com/watch?v=bNL_bC4FSH0

– [6] What is web hosting: https://www.youtube.com/watch?v=d_pEqS9Ynxc 

1.1.5       Bài tập và thực hành

Bài tập 1. Sử dụng hosting và tên miền miễn phí

– Tạo một website đơn giản, gồm mã HTML, CSS, JavaScript.

– Lựa chọn một tên miền của riêng bạn. Ví dụ: trangwebcuateo

– Sử dụng ít nhất 2 dịch vụ lưu trữ web miễn phí, thực hiện đưa website lên Internet theo kiểu lưu trữ chia sẻ (shared hosting).

Ví dụ, có thể sử dụng dịch vụ miễn phí của các nhà cung cấp sau:

pages.github.com

000webhost.com

wordpress.com

blogspot.com

my.noip.com

my.freenom.com

somee.com

biz.nf

Bài tập 2. Thiết lập và cấu hình shared hosting trên máy cục bộ.

Yêu cầu:

 – Thực hiện trên phần mềm Apache

–  Tạo trang web index.html với nội dung bất kì, để trang web ở vị trí phù hợp để có thể truy cập trang web dưới dạng http://127.0.0.1/, http://localhost/http://127.0.0.1/index.html, http://localhost/index.html.  Tại sao không cần gõ tên tập tin index.html trong trường hợp (http://127.0.0.1/, http://localhost/mà web server vẫn trả về trang index.html?

– Tạo website có tên là mywebsite, trong website tạo tập tin index.html, với nội dung bất kì.

– Cấu hình để có thể truy cập website dưới dạng http://127.0.0.1/mywebsitehttp://localhost/ mywebsite

– Cấu hình để có thể truy cập website dưới dạng http://mywebsite.local (đặt tên là .local để báo là website đang chạy ở máy local, bạn có thể đặt tên là mywebsite.com, hoặc một tên miền khác tùy thích)

– Cấu hình để có thể truy cập website dưới dạng http://mywebsite.local:8888

– Để website ở ngoài thư mục htdocs của web server. Thực hiện cấu hình web server để có thể truy cập được trang web dưới dạng http://mywebsite.local

 – Tạo thêm website có tên là teowebsite, trong website tạo tập tin index.html, với nội dung bất kì.

– Cấu hình để có thể truy cập website dưới dạng http://teowebsite.local

(b) Thực hiện các yêu cầu như trong phần (a), tuy nhiên triển khai trên Nodejs hoặc Nginx

Bài tập 3. Tìm hiểu các thông số liên quan đến một web hosting?

– Dung lượng lưu trữ (disk space)

– Băng thông (bandwidth)

– Cơ chế bảo mật, sao lưu và phục hồi dữ liệu

– Phần mềm hỗ trợ thao tác với web hosting (upload/download)

– Khả năng tương thích với các: CMS, framework, ngôn ngữ lập trình (loại ngôn ngữ, phiên bản)

Bài tập 4. (tùy chọn). Thực hành, hoặc xem trên youtube cách đưa website lên Internet bằng các công cụ chuyên dùng, ví dụ: cPanel, Rsync, DirectAdmin, FTP (FileZilla, SmartFTP, CoreFTP).

[Gợi ý làm các bài tập]

Bài tập 1 (a). Tạo một website đơn giản, ví dụ tạo thư mục có tên là websitecuteo, tạo tập tin index.html trong thư mục websitecuteo, thêm nội dung sau cho tập tin index.html,

<html>

<head> <style> h1 { color: red; } </style> </head>

<body>

            <h1>It works! hi cu teo</h1>

<script> alert('hi cu Ti'); </script>

</body></html>

Đưa website websitecuteo lên Internet, sử dụng dịch vụ lưu trữ web miễn phí của github:

(bạn có thể tham khảo các video trên youtube, hoặc đọc thêm tại đây: https://hackernoon.com/use-custom-domain-with-github-pages-2-straightforward-steps-cf561eee244f)

– Vào trang github.com, nếu bạn chưa có tài khoản trên hệ thống của github thì bấm vào Sign up để tạo một tài khoản, nếu có tài khoản rồi thì bấm vào Sign in để đăng nhập hệ thống.

– Sau khi đăng nhập vào hệ thống, bấm vào mục New (ở góc trên, bên trái) để tạo một thư mục (repository), chứa các tập tin mã nguồn của website. Trong github, repository được gọi là kho chứa. Ví dụ đặt tên cho repository là websitecuteo.github.io (phần tên miền github.io là không bắt buộc, bạn có thể bỏ đi, hoặc thay bằng tên bất kì). Tên thư mục này sẽ được dùng làm tên miền của website, hệ thống sẽ kiểm tra xem tên miền này đã có ai dùng chưa, nếu có người dùng rồi thì bạn cần đổi tên miền khác, ví dụ websitecuteo1.github.io.

– Sau khi nhập tên cho repository, ví dụ websitecuteo.github.io, bấm nút Create repository để tạo

– Bước tiếp theo sẽ tạo trang index.html cho website. Trong repository websitecuteo.github.io, chọn tab Code, bấm vào mục “creating a new file”. Đặt tên cho tập tin là index.html. Chép nội dung tập tin index.html ở phía trên vào cửa sổ “Edit new file”. Bấm Commit new file, để lưu lại nội dung tập tin index.html.

– Xuất bản website ra bên ngoài. Trong repository websitecuteo.github.io, chọn tab Settings, trong mục GitHub Pages, có dòng thông báo “Pages settings now has its own dedicated tab! Check it out here”, bạn bấm vào nút Check it out here để mở trang cấu hình mới. Trong mục Source, mục Branch, chọn Main, bấm nút Save. Bạn sẽ nhận được thông báo website đã xuất bản thành công ví dụ: “Your site is published at https://legiacong.github.io/websitecuteo.github.io/”.

– Bấm vào đường dẫn của website vừa được xuất bản để quan sát kết quả.

Xem thêm video: https://www.youtube.com/watch?v=WvgAsqZyevg

Bài tập 1 (b). Đưa website websitecuteo lên Internet, sử dụng dịch vụ lưu trữ web miễn phí của 000webhost.com

– Tạo thư mục websitecuteo

– Lên mạng tìm và tải tập tin hình ảnh bất kỳ (ví dụ con-vit.png), lưu vào trong thư mục websitecuteo

– Tạo tập tin index.html trong thư mục websitecuteo vừa tạo với nội dung sau:

<html>

<head> <style> h1 { color: red; } </style> </head>

<body>

            <h1>It works! hi cu teo</h1>

            <img src="con-vit.png" alt="Con vịt">

<script> alert('hi cu Ti'); </script>

</body></html>

– Tạo tài khoản và đăng nhập vào hệ thống 000webhost.com

– Nhập tên website, ví dụ: websitecuteo, nhớ lưu lại mật khẩu đăng nhập (ví dụ: vn@6JLZCAmUAktC2uYFK)

– Lựa chọn kiểu website sẽ tạo (Upload your site)

– Tải tập tin index.html vào thư mục public_html (tải luôn tập tin con-vit.png vào thư mục này)

– Đăng nhập vào trang web để xem kết quả: https://websitecuteo.000webhostapp.com/

Bài tập 2. Thiết lập và cấu hình shared hosting trên máy cục bộ.

Thực hiện trên Apache

Tạo trang web index.html với nội dung bất kì, để trang web ở vị trí phù hợp để có thể truy cập trang web dưới dạng http://127.0.0.1/, http://localhost/http://127.0.0.1/index.html, http://localhost/index.html

– Tải, cài đặt và chạy phần mềm Apache

– Tạo trang web index.html với nội dung sau,

[index.html]

<!DOCTYPE html>

<html>

            <head>

                        <title>Trang web cua Teo</title>

            </head>

            <body>

                        <h1>Trang mywebsite</h1>

            </body>

</html>

– Chép tập tin index.html vào thư mục htdocs của Apache

– Mở trình duyệt, nhập vào các đường dẫn http://127.0.0.1/, http://localhost/http://127.0.0.1/index.html, http://localhost/index.htmlnếu xuất hiện nội dung trang web trên trình duyệt là được.

Tạo website có tên là mywebsite, trong website tạo tập tin index.html, với nội dung bất kì.

– Trong ổ đĩa tùy ý, tạo thư mục mywebsite, trong thư mục mywebsite, tạo tập tin index.html, với nội dung là:

 [mywebsite/index.html]

<!DOCTYPE html>

<html>

            <head>

                        <title>Trang web cua Teo</title>

            </head>

            <body>

                        <h1>Trang mywebsite</h1>

            </body>

</html>

Cấu hình để có thể truy cập website dưới dạng http://127.0.0.1/mywebsitehttp://localhost/ mywebsite

– Chép thư mục mywebsite vào trong thư mục htdocs. Chạy Apache, mở trình duyệt để kiểm tra các đường dẫn http://127.0.0.1/mywebsite, http://localhost/ mywebsite, nếu xuất hiện nội dung trang web là được.

Cấu hình để có thể truy cập website dưới dạng http://mywebsite.local (đặt tên là .local để ngầm hiểu website đang chạy ở máy local, bạn có thể đặt tên là mywebsite.com, hoặc một tên miền khác tùy thích)

– Để có thể truy cập trang web dưới dạng một tên miền thực thụ (mywebsite.local) trên máy cục bộ, bạn cần phải cấu hình máy tính cục bộ đóng 2 vai trò, như một web server và như một máy Name server của hệ thống DNS.

– Tập tin hosts trong Windows đóng vai trò như một bảng lưu các mẩu tin “tên miền – IP” của Name server, mở tập tin hosts, thêm dòng dữ liệu sau vào cuối tập tin, lưu lại và đóng tập tin. Đường dẫn của tập tin hosts: C:\Windows\System32\drivers\etc. Trong tập tin hosts dấu # ở đầu mỗi dòng là dấu chú thích, nó sẽ vô hiệu hóa khai báo tại dòng tương ứng.

127.0.0.1 mywebsite.local

– Sau khi khai báo dòng dữ liệu “127.0.0.1 mywebsite.local” trong tập tin hosts, nếu người dùng vào trình duyệt gõ URL http://mywebsite.local, máy cục bộ sẽ chuyển yêu cầu truy cập web của trình duyệt tới thư mục web root (document root) của phần mềm web server đang chạy trên máy cục bộ (cổng 80). Nếu trong web root đang có tập tin index.html thì trình duyệt sẽ nhận được nội dung trang web này.

– Để có thể cấu hình máy cục bộ trở thành một máy web server chạy ở chế độ shared hosting (cho phép để nhiều website cùng một máy server), thì bạn cần cấu hình trong tập tin C:\Apache24\conf\extra\httpd-vhost.conf hoặc trong tập tin C:\Apache24\conf\httpd.conf. Vì tập tin httpd.conf sẽ tham chiếu tới tập tin httpd-vhost.conf, nên bạn chỉ cần cấu hình ở 1 trong 2 tập tin. Nên cấu hình trong httpd-vhost.conf để dễ theo dõi, dễ quản lý.

– Mở tập tin httpd-vhost.conf bằng một text editor bất kỳ (Notepad, Sublime text, VS code), thêm các dòng khai báo sau, và lưu lại tập tin httpd-vhost.conf:

<VirtualHost *:80>

    DocumentRoot "C:/Apache24/htdocs/mywebsite"

    ServerName mywebsite.local

</VirtualHost>

– Các dòng khai báo trên sẽ tạo ra một chỗ lưu trữ web trên một máy web server giả lập (ảo) (virtual host), lắng nghe trên cổng 80, thư mục chứa mã nguồn trang web là “mywebiste” và tên miền của máy server (cũng là tên miền của trang web) là mywebsite.local.

– Khi người dùng gõ http://mywebsite.local, trình duyệt sẽ thực hiện chuyển chuỗi trên thành địa chỉ IP. Trình duyệt sẽ tìm trong DNS cached trên máy cụ bộ và tìm ra được IP tương ứng là 127.0.0.1 (đọc lại phần về DNS để biết tại sao). Trình duyệt sẽ gửi request tới máy 127.0.0.1, web server nhận được yêu cầu, tham chiếu tới tập tin httpd.conf > httpd-vhosts.conf và trả về trang web tại thư mục htdocs/mywebsite.

– Mở cửa sổ Task manager, chọn tab Services, chuột phải vào dịch vụ Apache, chọn restart để khởi động lại Apache (giúp cập nhật các nội dung vừa thay đổi).

– Mở trình duyệt, nhập đường dẫn trang web http://mywebsite.local, để xem kết quả. Trang web trong website mywebsite sẽ được hiển thị trên trình duyệt.

Cấu hình để có thể truy cập website dưới dạng http://mywebsite.local:8888

– Thay đổi cổng lắng nghe mặc định của Apache từ 80 sang 8888. Mở tập tin httpd.conf, tìm tới mục có chữ Listen 80, đổi giá trị 80 thành 8888, lưu tập ti httpd.conf, restart lại dịch vụ Apache.

–  Mở trình duyệt, nhập đường dẫn http://localhost:8888 để hiển thị trang mặc định trong web root. Trang index.html trong web root sẽ được hiển thị trên trình duyệt.

– Tuy nhiên, nếu truy cập trang http://mywebsite.local:8888 sẽ không hiển thị được, lý do là trong phần cấu hình shared hosting, vẫn để cổng mặc định là 80. Bạn cần sửa lại như sau:

<VirtualHost *:8888>

    DocumentRoot "C:/Apache24/htdocs/mywebsite"

    ServerName mywebsite.local

</VirtualHost>

– Lưu lại tập tin httpd-vhosts.conf, restart lại dịch vụ Apache, mở lại trang http://mywebsite.local:8888 trên trình duyệt sẽ thấy trang web trong mywebsite được hiển thị.

Để website ở ngoài thư mục htdocs của web server. Thực hiện cấu hình web server để có thể truy cập được trang web dưới dạng http://mywebsite.local

– Cắt website mywebsite ra khỏi htdocs, để ở ổ đĩa D:\ chẳng hạn

– Sửa lại trong <VirtualHost ….> từ

<VirtualHost *:8888>

    DocumentRoot " C:/Apache24/htdocs/mywebsite "

    ServerName mywebsite.local

</VirtualHost>

Thành,

<VirtualHost *:8888>

    DocumentRoot "D:/mywebsite"

    ServerName mywebsite.local

</VirtualHost>

– Lưu lại tập tin httpd-vhosts.conf, restart lại dịch vụ Apache, mở lại trang http://mywebsite.local:8888 trên trình duyệt sẽ thấy trang web trong mywebsite không được hiển thị mà có thông báo lỗi, hoặc hiển thị trang trong web root.

Forbidden

You don't have permission to …..

– Nếu web server hiển thị trang trong web root, thì bạn mở tập tin httpd.conf, bỏ dấu chú thích ở dòng có nội dung: Include….

# Virtual hosts

Include conf/extra/httpd-vhosts.conf

– Vì thư mục D:/mywebsite chưa được phân quyền, nên có thể gây ra lỗi truy cập. Thêm dòng lệnh sau để phân quyền truy cập vào thư mục D:/mywebsite:

Đoạn mã phân quyền,

<Directory "D:/mywebsite">

        Options Indexes FollowSymLinks MultiViews

        AllowOverride all

        Require all granted

    </Directory>

Kết quả là,

<VirtualHost *:8888>

    DocumentRoot "D:/mywebsite"

    ServerName mywebsite.local

    <Directory "D:/mywebsite">

        Options Indexes FollowSymLinks MultiViews

        AllowOverride all

        Require all granted

    </Directory>

</VirtualHost>

– Lưu lại tập tin httpd-vhosts.conf, restart lại dịch vụ Apache, mở lại trang http://mywebsite.local:8888 trên trình duyệt sẽ thấy nội dung trang web trong mywebsite.

Tạo thêm website có tên là teowebsite, trong website tạo tập tin index.html, với nội dung bất kì. Cấu hình để có thể truy cập website dưới dạng http://teowebsite.local

– Cách làm tương tự như website mywebsite

– Thêm một khai báo 127.0.0.1 teowebsite.local trong tập tin hosts

– Thêm một khai báo trong tập tin httpd-vhost.conf,

<VirtualHost *:8888>

    DocumentRoot "D:/teowebsite"

    ServerName teowebsite.local

    <Directory "D:/teowebsite">

        Options Indexes FollowSymLinks MultiViews

        AllowOverride all

        Require all granted

    </Directory>

</VirtualHost>

Các lỗi thường xảy ra với Apache và cách sửa

(1) Lỗi do cồng 80 (http) và cổng 443 (https) đã có dịch vụ hoặc chương trình khác sử dụng. Cách sửa: đổi cổng lắng nghe mặc định của Apache thành các cổng khác 80 và 443 hoặc vào mục Services của Task manager tắt các dịch vụ/chương trình đang chạy mà có sử dụng 2 cổng này.

Một số dịch vụ/chương trình hay tranh chấp cổng với Apache:

– World Wide Web Publishing Service (WWW-Publishing Service)

– Web Deployment Agent Service

– Skype

– SQL Server Reporting Service(MSSQLSERVER)

– VMware Workstation

– IIS

(2) Lỗi do chưa đăng ký mục tin trong tập tin hosts.

(3) Lỗi do chưa khai báo tên miền trong phần cấu hình virtual host (httpd-vhost.conf).

1.1.6       Câu hỏi ôn tập

Câu 1. Cái nào dưới đây không phải là loại dịch vụ lưu trữ website?

A. Lưu trữ chia sẻ (shared hosting), lưu trữ trên đám mây (cloud hosting)

B. Lưu trữ trên máy chủ ảo dùng riêng (virtual private server hosting)

C. Lưu trữ trên máy chủ dùng riêng (dedicated server hosting)

D. Lưu trữ trên máy chủ của VNNIC (VNNIC server hosting)

Câu 2. Để có một website trên không gian web, cần làm một số việc, trong các việc dưới đây, cái nào không cần thiết?

A. Lập trình website

B. Đăng ký tên miền

C. Cấu hình tập tin hosts trên máy cục bộ (Windows)

D. Đưa website lên web server

Câu 3. What kind of web hosting service this description refered?

 “One's website is placed on the same server as many other sites, ranging from a few sites to hundreds of websites. Typically, all domains may share a common pool of server resources, such as RAM and the CPU”.

A. cloud hosting

B. VPS hosting

C. dedicated server hosting

D. shared hosting

Câu 4. Your ______ is the amount of data transfer when your website is acceded. You use ______  through traffic generation, email, uploads, and downloads. Some hosting plans offer unlimited ______, but you should choose the highest amount necessary for your requirements.

A. download

B. upload

C. bandwidth

D. up time

Câu 5. With_______, you have a global network of servers all working together. That means if one server goes down, the other servers can pick up the load. It also allows you to pay for only the resources you're using, and you can scale up or down immediately.

A. cloud hosting

B. VPS hosting

C. dedicated server hosting

D. shared hosting

-----

Video

Slide

-----

Bạn muốn tự học HTML bài bản? Xem thêm