[Tutorial part 1] Xây dựng viettabs.cf – Đăng ký Hosting, Domain, Upload data

Xây dựng viettabs.cf phần 1:

  • Đăng ký Hosting,

  • Đăng ký Domain,

  • Upload data

Bắt đầu từ post này, mình sẽ bắt đầu thực hiện ý tưởng xây dựng ứng dụng tra tabs số guitar viettabs.cf của mình, sẵn mình sẽ viết hướng dẫn luôn cho những ai muốn học xây dựng một ứng dụng “make by tui” đều có thể làm được – lập trình for everyone :v

Dự là sẽ phải thực hiện nhiều bước nên sẽ có nhiều phần^^, hi vọng mọi người đọc hết :p

Thông tin thêm về cái ý tưởng của mình:

[Ý tưởng] Xây dựng trang chia sẻ tab số Guitar pro

Các bước cần chuẩn bị để Deploy Web App

Để triển khai cái ý tưởng này thì chúng ta phải chuẩn bị những thứ sau:

  • Domain (Domain là cái khỉ gì?): Có thể hình dung nó là tên cái nhà của mình, người ta sẽ dựa vào cái tên domain này mà tìm và vô đúng nhà của bạn. Địa chỉ nhà có thể là ngoài lộ (domain cấp 1 như dothanhlong.org) hay trong hẻm (sub domain như watashi.dothanhlong.org).
  • Hosting (Hosing là cái khỉ gì?): Có thể hình dung nó là lô đất mình sẽ xây nhà. Nó là không gian nơi mình có thể lưu trữ được code, database, hình ảnh, video, word, powerpoint, pdf, zip, rar,… Túm lại nó như cái ổ cứng trong máy bạn vậy. Bạn có thể mapping nó như một ổ đĩa mạng khi hosting bạn đăng ký cung cấp cho bạn một tài khoản FTP.
  • Data, Source code (Data, Source code là cái khỉ gì?): Có thể hình dung nó như căn nhà và nội thất bên trong nhà. Nhà đẹp, xấu, sài tốt hay tào lao ăn thua do bạn xây (lập trình) thế nào thôi.

Đăng ký Domain

Domain thì có 2 dạng (theo tiêu chí TIỀN :v ) là domain có phí và domain miễn phí (free domain). Domain miễn phí thường là các domain của những quốc gia nghèo, nền công nghệ thông tin chưa phát triển (chắc free để tạo động lực :p) hoặc một lý do khác.

Có thể kể ra một số tên miền miễn phí như:

tk domain: Đây có lẽ là domain free phổ biến, nổi tiếng và lâu đời nhất (mình biết nó từ hồi cấp 3, tính ra cũng hơn chục năm rồi). Trước đó còn có domain cocc (Con ông cháu cha :v), cơ mà domain này dẹp tiệm rồi.

ml domain: tên miền quốc gia cấp cao nhất (ccTLD) của Mali.

ga domain: là tên miền Internet cấp cao nhất dành cho quốc gia (ccTLD) của Gabon.

gq domain: là tên miền quốc gia cấp cao nhất (ccTLD) của Guinea Xích Đạo.

cf domain: là tên miền Internet cấp cao nhất dành cho quốc gia (ccTLD) Cộng hòa Trung Phi.

Tên miền có phí thì phổ biến quá rồi, như dot com, dot org, dot vn, dot org (như mình), dot gov,.. Một năm bạn sẽ phải trả phí từ 300k đến cả triệu cho các domain dạng này.

Như ở post trước mình có quyết định là tên ứng dụng sẽ là viettabs. Do vậy mình quyết định chọn tên mình miễn phí và mình chọn domain của Cộng hòa Trung Phi cho dễ nhớ ^^. Thống nhất là:

viettabs.cf

Để đăng ký domain free thì bạn truy cập

https://www.freenom.com

Sau đó đăng ký một account và kiểm tra xem domain mình định mua còn không. Đối với domain free thì vô tư :v

Ồ, may quá. viettabs.cf vẫn còn :v

Đăng ký domain viettabs.cf
Đăng ký domain viettabs.cf

ok, checkout thôi. Lúc checkout bạn nhớ là chọn luôn 12 tháng free nhé. Đỡ phải gia hạn.

À, còn một lưu ý nữa là đối với domain free thì phải để ý ngày gia hạn để mà gia hạn, thường thì nó sẽ cho gia hạn trước khoảng 15 ngày. Còn trễ hạn dù chỉ 1 ngày thì bạn cũng coi như mất cái domain này nhé! (không như mua domain có phí, bạn có trễ gia hạn nó vẫn điện thoại hối bạn gia hạn :v )

Đăng ký Hosting

Ok, đăng ký được cái địa chỉ rồi thì giờ mua đất để chuẩn bị xây nhà thôi.

Hosting thì cũng có mấy loại. Phổ biến nhất là Shared Hosing, cao cấp hơn có VPS – Virtual Private Server (máy chủ riêng ảo), cao cấp nữa là Server vật lý.

Giờ mình sẽ giải thích mấy loại này kỹ một xíu nhé.

Server vật lý là gì?

Bản chất nó là một cái máy tính. Nhớ nhé, nó là một cái máy tính với cấu hình của Server. Thay vì máy bàn, laptop mình chạy chip Intel, card đồ hòa rời NVIDIA,.. thì nó chạy chip Xeron, không có card đồ họa rời,.. (Mình chỉ ví dụ vậy thôi chứ main, card của server có rất nhiều loại).

  • Trên cái “Máy tính” đó, nếu mình cài Linux thì mình có một Linux Server, nếu mình cài Window thì mình có Window Server.
  • Trên cái Linux/Window Server đó nếu mình cài phần mềm phục vụ web như Apache, Apache Tomcat, IIS (Internet Information Services), Nginx,.. thì mình có một Web Server.
  • Trên cái Linux/Window Server đó nếu mình cài các hệ quản trị dữ liệu (DBMS) như MySQL, PostgreSQL, SQL Server, Oracle, IBM,.. thì mình có Database Server.
  • Trên cái Linux/Window Server đó nếu mình cài các phần mềm phục vụ bản đồ như MapServer, GeoServer, ArcGIS Server,.. thì mình có một Map Server.
  • Trên cái Linux/Window Server đó nếu mình cài các phần mềm phục vụ FTP như FileZilla Server, Complete FTP Server, CrushFTP Server, NASLite,.. thì chúng ta có một FTP Server

[Note] Ghi chú khi cài đặt FTP Server với FileZilla Server cho Window Server

Bây giờ, giả sử mình mình có một cái Server vật lý. Để deploy cái Viettabs Web App của mình thì mình sẽ phải cài hệ điều hành, sau đó do app viêt bằng Web nên cần cài và cấu hình Web Server, rồi cần chọn và cài một cái DBMS để lưu dữ liệu của app. Khi chuẩn bị cái Server vật lý cũng phải xem RAM, ổ cứng, xử lý CPU có đủ để chạy các ứng dụng trên không,… rất nhiều thứ phải chuẩn bị.

Và quan trọng là, giá một cái Server vật lý như vậy không hề rẻ!

Từ đó xuất phát nhu cầu là mình vẫn muốn có một con Server nhưng giá sẽ rẻ hơn chút. Thế là có khái niệm VPS – Virtual Private Server (máy chủ riêng ảo) ra đời.

VPS – Virtual Private Server (máy chủ riêng ảo) là gì?

Một VPS nó vẫn là một Server, tuy nhiên lúc này nó không còn là “vật lý” nữa mà lúc này nó đã được setup trên một hệ ảo hóa.

Dễ hình dung thì bạn có một cái máy tính, bạn cài VMWare trên đó, trong cái VMWare đó bạn share tài nguyên RAM, ổ cứng, luồng xử lý thành 2, 3 cái máy khác. Mỗi máy con đó bạn cài các hệ đều hành khác nhau và các phần mềm khác nhau như WebServer, Database, Map Server,.. Lúc đó, 3 cái máy con mà bạn chia ra bằng VMWare có thể được xem là các VPS.

Khi bạn thuê VPS là bạn thuê các máy ảo đó. Nó vẫn là của riêng bạn, nhưng nó và các máy ảo khác đều được chạy trên một máy thật (máy vật lý). Khi máy vật lý đó die thì hàng loạt VPS cũng die theo.

Và tùy VPS được cài Window hay Linux mà giá nó cũng sẽ khác nhau (Linux rẻ hơn Window). Khi bạn thuê được VPS thì bạn cần phải cài các phần mềm cần thiết để phục vụ nhu cầu của bạn như đối với một Server vật lý.

Ví dụ, đây là cái VPS mình mua được ở OVH

Login to VPS Linux (Debian) host by OVH

Cài LXDE trên VPS Debian và Remote Desktop

Tuy nhiên, đôi khi việc setup hệ thống quá phức tạp, không thích hợp với đa số người dùng. Và giá cả của một VPS sài được được cũng khá chát. Do vậy nảy sinh nhu cầu cần một gói hosting rẻ hơn, phổ thông hơn. Đó là tiền đề ra đời khái niệm Shared Hosting

Shared Hosting là gì?

Shared Hosting bản chất nó là các gói Hosting được một phần mềm trên một Server (máy chủ vật lý hoặc VPS) chia ra và bán cho người dùng.

Một số phần mềm thường dùng để setup hệ thống shared hosting mà bạn có thể dễ dàng thấy như Cpanel, Direct admin, VestaCP,…

Mọi người có thể xem cách cài VestaCP cho VPS để tạo nhiều tài khoản shared hosting bên dưới:

Cài đặt VestaCP cho Debian Server

Các người dùng Shared Hosting trên một hệ thống thường sẽ “shared” mọi tài nguyên trên shared cài phần mềm shared hosting đó. Và do vậy nếu lỡ một site trên hệ thống bị tấn công, bị dính virus thì có nguy cơ… chết trùm :v

Tuy nhiên, shared hosting rất rẻ, lại không cần phải setup gì cả. Tất cả do người cung cấp setup và config sẵn hết rồi. Thường một gói shared hosting cơ bản sẽ có:

  • WebServer
  • Database
  • FTP Server
  • Mail Server

Người dùng chỉ cần upload code và database lên là chạy thôi.

Về giá thành, shared hosting cũng có free và có tính phí. Tính phí thì ngon rồi, còn free thì sao? Free shared hosting thì thường sẽ bị hạn chế về số lượng FTP accounts, Sub-Domains, Add-on Domains, Parked Domains, MySQL Databases, Disk Quota (dung lượng lưu trữ), Inodes Used (Số lượng file lưu trữ), Bandwidth (băng thông), CPU limit,.. (đây cũng là những thông số chúng ta cần cân nhắc khi chọn mua Shared Hosting).

viettabs.cf mình dự định làm là một ý tưởng nhỏ của mình để chia sẻ các tabs guitar mình đang có, mình không có kinh phí nào để duy trì nó cả do vậy mình sẽ quyết định chọn free hosting (cũng như domain vậy :v )

Thế Free Shared Hosting nào ổn nhất.

Mình từng dùng qua vài nhà cung cấp free hosting rồi, cũng có vài thằng die rồi. Nhưng trong số đó cũng có những thằng mình thấy ok.

https://byet.host/

Nhà cung cấp này đảm bảo sài lâu dài được vì mình đăng ký và deploy một cái Web lên từ hồi mới biết làm Web (2012) đến giờ là 6 năm rồi mà vẫn chạy tốt :v

http://trangxoa.byethost7.com/

Thằng này hình như cũng là nhà cung cấp chính cho các reseller hosting khác vì một số nhà cung cấp hosting die mình đều thấy đưa về byethost. Nói chung là byethost sài được, chỉ đều nó bị giới hạn nhiều thứ quá. Cụ thể thì bạn đăng ký trải nghiệm thử rồi sẽ biết =))

https://infinityfree.net/

Thằng này mình mới sài từ 2017, đến giờ vẫn chạy tốt. Infinityfree cũng cấp gói free shared hosting không giới hạn nhiều thứ lắm. Chỉ có vấn đề là nếu web nhiều lượt truy cập quá (vượt CPU limit của nó) thì nó sẽ tạm suspend web của mình lại một thời gian.

Ưu điểm nữa là support bên này rất tốt và nhanh mặc dù mình sài chùa (free). Đợt trước mình có upload một php file manager lên, trong file đó có chỗ cho gọi xử lý shell. Thế là account bị banned. Mình gửi ticket nhờ trợ giúp. Họ trả lời ngay và 10 phút sau là active lại cái account của mình (dĩ nhiên là cũng xóa luôn cái file php kia :v )

Bị banned account và reactive lại tài khoản infinity.net
Bị banned account và reactive lại tài khoản infinity.net

À, tuy nhiên nó còn một chỗ khiến mình khó chịu là khi mình có cái ý tưởng là web chia sẻ bản đồ, khi deploy test app lên thì mới biết là trước khi load web của mình thì nó tự động load một file js gì đó mà theo support bên nó bảo là để kiểm tra nội dung web của mình có vi phạm chính sách gì của nó không. Và HỌ KHÔNG XÓA cái này được. Mà app của mình thì có gọi ajax để load bản đồ dạng geojson. Thế là nó cứ báo geojon của mình sai cấu trúc và lỗi, không hiển thị bản đồ được. Vậy là mình đành qua 000webhost mà sài chùa :v

 

https://www.000webhost.com/

Thằng này cũng phổ biến, tuy nhiên mình không hay dùng lắm vì nó bị limit nhiều thứ quá và… giao diện khó sài. (Chắc quen giao diện cpadmin rồi :v)

Có một số web mình host trên thằng này là

http://j2teamdata.tk/

http://yourmap.cf/

Vậy là…

Mình quyết định sẽ dùng infinityfree.net cho thoải mái về dung lượng lưu trữ cũng như việc trỏ domain, giao diện cpanel admin quen thuộc :v

Trỏ tên miền về infinityfree.net

Chúng ta đã mua nhà, có địa chỉ. Giờ đi đăng ký hộ khẩu thôi :v

Đến bước này, chúng ta sẽ trỏ domain về hosting, mục đích để người dùng khi đón taxi (à nhầm, tốc độ của infinityfree.net chắc cỡ xe bus thôi :v ) và bảo bác tài chở đến địa chỉ viettabs.cf thì sẽ được đưa vô tận “nhà” (hosting) của chúng ta.

Để trỏ domain về host thì cũng có mấy dạng.

  • Sub-Domains: Tạo một tên miền phụ, ví dụ hopam.viettabs.cf, nhabep.bietthuhoahong.vietnam,..
  • Add-on Domains: Thêm một domain mới (một web mới) vào hosting.
  • Parked Domains: Chạy song song nhiều domain cho một web.

Vì mục đích là trỏ viettabs.cf về host, và nó là một web mới hoàn toàn nên mình sẽ chọn Add-on Domains

Khi trỏ thì hosting sẽ kêu mình khai báo name server của hosting về cho domain trước khi add domain vào hosting. Mục đích để cái domain kia gọi về thì thằng ở nhà biết nó có phải con cái nhà này không mới cho vào vậy.

Khai báo Name Server cho domain viettabs.cf

Khai báo Name Server cho domain viettabs.cf
Khai báo Name Server cho domain viettabs.cf

Thêm Addon Domains viettabs.cf vào infinityfree.net

Thêm Addon Domains viettabs.cf vào infinityfree.net
Thêm Addon Domains viettabs.cf vào infinityfree.net

Báo thành công khi thêm addon domain viettabs.cf

Báo thành công khi thêm addon domain viettabs.cf
Báo thành công khi thêm addon domain viettabs.cf

Đến lúc này thì chúng ta có thể truy cập http://viettabs.cf/

http://viettabs.cf/

Chúng ta tiến hành upload data lên host thôi^^

Đưa data lên host viettabs.cf

data của viettabs.cf sẽ bao gồm hơn 3000 file tabs guitar và CSDL để quản lý mấy cái file này, nên tạm thời mình sẽ upload các file tabs lên trước. Còn CSDL thì… giờ còn chưa thiết kế nữa. Để hướng dẫn phần sau :v

Bây giờ mọi người đã có thể truy cập http://viettabs.cf/

Sau đó thì vô thư mục tabs chọn và download tab guitar

Tạm thời chưa xây dựng ứng dụng thì cái http://viettabs.cf/ này như cái hosting lưu trữ và chia sẻ file vậy.

thư mục tabs của viettabs.cf
thư mục tabs của viettabs.cf

Hơn 3000 tabs, 64Mb giải nén

Hơn 3000 tabs, 64Mb giải nén guitar tabs
Hơn 3000 tabs, 64Mb giải nén guitar tabs

Danh sách tabs trên viettabs.cf

Danh sách tabs của viettabs.cf chia sẻ cho mọi người
Danh sách tabs của viettabs.cf chia sẻ cho mọi người

Mẹo: Để tìm tab guitar trong thời gian chưa làm ứng dụng tìm kiếm thì mọi người chịu khó nhấn Ctrl F để tìm nhé

Tìm kiếm tabs - viettabs.cf
Tìm kiếm tabs – viettabs.cf

Để xem được tabs guitarpro thì hiện tại chúng ta cần phần mềm GuitarPro (có phí) hoặc TuxGuitar (miễn phí) để xem.

Sau này trong các hướng dẫn tiếp sẽ có hướng dẫn xây dựng chức năng xem tab guitar online luôn, không cần cài phần mềm.

Xem tabs guitar trên TuxGuitar
Xem tabs guitar trên TuxGuitar
Dài dòng quá rồi :v. Phần 1 sẽ dừng ở đây nhé^^

viettabs.cf – Những công việc còn lại cho những phần sau:

  • Tìm thư viện đọc được tab guitar trên web
  • Thiết kế Database sao cho dễ tìm kiếm và hiển thị
  • Nhập liệu cho Database đó
  • Xây dựng chức năng tìm kiếm
  • Tích hợp tất cả và hoàn thiện ứng dụng
  • Deploy lên viettabs.cf

Thân ái và quyết thắng!
P/s: À, bạn nào muốn down hết hơn 3000 tabs thì download ỏ đây nhé. Đừng crawl web, hosting free như mình đã nói ở trên nên nếu crawl là sập luôn đấy =))
Link download hơn 3000 tabs guitar pro.

[Chia sẻ] Download hơn 3000 tabs guitar pro

-soiqualang_chentreu-