Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Ruby

Cách tạo dịch vụ rút ngắn URL cao cấp cục bộ của riêng bạn

by
Difficulty:IntermediateLength:LongLanguages:

Vietnamese (Tiếng Việt) translation by Thai An (you can also view the original English article)

Bạn sẽ tìm thấy một số URL (Uniform Resource Locators) rất dài trên internet. Nhiều website đưa thông tin về lượt truy cập của bạn vào URL: các mục như ngôn ngữ, vị trí, nhận dạng, code tham chiếu cho các sản phẩm đặc biệt và nhiều mục khác. Điều này khiến các URL rất dài.

Premium URL Shortener on CodeCanyon
Premium URL Shortener trên CodeCanyon

Premium URL Shortener trên Code Canyon là một phương để rút ngắn các URL dài. Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách thiết lập trình rút ngắn URL của riêng bạn trên hệ thống của bạn và cách sử dụng nó.

Công cụ rút ngắn URL là gì?

Bạn sử dụng một URL bất kể khi nào bạn duyệt internet. Nó xác định website và nội dung cụ thể. Vì chúng thường có thể chứa các tham số cho biểu mẫu hoặc công cụ tìm kiếm, các URL này có thể trở nên khá lớn.

URL này là để tìm kiếm website Tuts+ cho chuỗi "How to Draw Animals: Horses, Their Anatomy and Poses". Chuỗi này dài 74 ký tự. Tôi đã thấy các URL dài hơn 200 ký tự.

Khi bạn sử dụng dịch vụ rút ngắn URL, như bit.ly, bạn sẽ nhận được một URL ngắn hơn nhiều. URL tương tự hiện dài 15 ký tự. Khi ai đó duyệt liên kết này, máy chủ bit.ly sẽ chuyển hướng trình duyệt đến URL đầy đủ. Việc tra cứu thêm trên một URL khác làm trì hoãn thời gian tải trang, nhưng không nhiều.

Cài đặt Docker

Cách dễ nhất để tạo một máy chủ cục bộ là sử dụng môi trường ảo hóa. Nhưng chạy một hệ thống ảo hóa toàn hệ thống rất tốn tài nguyên. Docker là một trình ảo hóa tối thiểu cho các hệ thống dựa trên terminal. Bạn có thể chạy Docker container (một máy chủ unix nhỏ) sử dụng ít tài nguyên hệ thống hơn.

Để chạy container trên hệ thống của bạn, bạn sẽ cần cài đặt Docker. Download phần thích hợp cho hệ điều hành của bạn từ website Docker.

Với Docker đã cài đặt, bạn cần chuẩn bị hệ thống của mình để tìm kiếm dịch vụ web bạn sẽ tạo. Để làm điều này, bạn sẽ cần phải thay đổi một file hệ thống. Trong file /etc/hosts cho các hệ thống Linux hoặc macOS và trong file c:\windows\System32\driver\etc\lmhosts cho một hệ thống Windows, hãy đặt câu lệnh này:

Thay đổi này sẽ làm cho tất cả các tham chiếu đến http://s.dev đi đến hệ thống cục bộ. Điều này được thực hiện để cung cấp cho dịch vụ một hostname phù hợp trước khi cố gắng định cấu hình cho nó.

Để tạo khu vực phát triển của bạn, hãy tạo một thư mục và đặt file zip Premium URL Shortener trong đó và mở rộng nó. Sau đó, bạn nên có cấu trúc thư mục này:

Directory Structure
Cấu trúc thư mục

Đây là tài liệu với file main.zip. Mở rộng file này cũng có. Khi bạn mở rộng nó, bạn sẽ có cấu trúc thư mục này:

Directory Structure with Code
Cấu trúc thư mục cùng code

File main.zip chứa tất cả các file mã nguồn và tài nguyên cho dịch vụ. Đây sẽ là thư mục bạn sẽ thêm vào ví dụ Docker.

Bây giờ bạn cần lấy Docker LAMP stack từ fauria. Với Docker đang chạy, nhập nội dung sau vào terminal:

Lệnh này sẽ tải xuống Fauria LAMP stack (Linux, Apache, MySQL và PHP) để cài đặt Docker của bạn. Sau khi tải về, bạn có thể tạo container với:

Thay thế {{service source directory}} bằng đường dẫn đầy đủ đến thư mục chứa tất cả các file và tài nguyên nguồn. Lệnh này tạo ra container có tên linkshort trên cổng 80 và đưa ra tất cả các thông báo lỗi và nhật ký để tiêu chuẩn.

Ngay bây giờ, mỗi khi bạn dừng lại và khởi động lại container, bạn sẽ mất tất cả thông tin của mình. Bạn cần di chuyển thông tin database vào thư mục mã nguồn của bạn để khiến nó với mỗi lần khởi động lại. Trong cửa sổ terminal, thực hiện các lệnh sau:

Lệnh đầu tiên mở một bash shell cho container. Lệnh thứ hai tạo thư mục trong thư mục data trong thư mục mã nguồn của bạn. Container xem thư mục mã nguồn là thư mục /var/www/html. Lệnh thứ ba sao chép thông tin database vào thư mục đó. Lệnh exit giúp bạn ra khỏi container.

Bây giờ dừng container bằng cách sử dụng:

Bạn sẽ sử dụng lệnh này mỗi lần bạn muốn dừng container.

Bây giờ, để khởi động lại container bằng thư mục dữ liệu thích hợp, hãy sử dụng lệnh này:

Lần này bạn đã tạo container với máy chủ MarianDB bằng cách sử dụng dữ liệu từ database hiện được lưu trữ trên máy tính của bạn. Đây là lệnh bạn sẽ sử dụng để khởi chạy dịch vụ. Tôi dùng bàn phím mở rộng Typinator để gõ lệnh này.

Bây giờ, cần tạo ra database cho trình rút ngắn URL. Bạn sẽ cần phải mở một shell trong container. Trong một cửa sổ terminal mới, gõ lệnh sau đây:

Lệnh này tạo shell bash vào container. Nếu bạn cần điều chỉnh một điều gì đó trong container, đây là lệnh bạn sẽ sử dụng. Tiếp theo, mở một shell vào chương trình MarianDB:

Bây giờ, bạn có thể tạo database trong MarianDB và cấp quyền cho máy chủ web để truy cập nó:

{{password}} cần được xét thành mật khẩu bạn muốn cung cấp cho người dùng database. Hãy nhớ điều này vì bạn sẽ sử dụng nó để cấu hình dịch vụ.

Với dịch vụ đang chạy trong container, hãy trỏ trình duyệt web của bạn tới http://s.dev.

Requirement Check Page
Trang kiểm tra các yêu cầu

Nếu bạn đã cấu hình, bạn sẽ thấy trang này. Trang này hiển thị các yêu cầu đối với dịch vụ rút ngắn URL và trạng thái thiết lập của bạn. Bằng cách sử dụng container fauria trong Docker, các phần phụ thuộc đã được đáp ứng. Nhấp vào nút màu xanh ở cuối trang.

Database Configuration Page
Trang cấu hình database

Trang tiếp theo hiển thị là trình tạo file cấu hình cho dịch vụ. Trang này cho phép bạn cung cấp cho chương trình tên và mật khẩu cho database bạn đã tạo trước đó.

Database Configuration Page Details
Chi tiết trang cấu hình database

Bạn cần bổ sung các field như hình trên. Database Host là localhost cho container. Database Nameurlshort, mà bạn đã tạo trong thiết lập. Database Userwww-data và mật khẩu là cái mà bạn đã gán vào trong thiết lập database ban đầu. Database Prefix là tên bắt đầu cho mỗi database được tạo cho dịch vụ. Tôi đã sử dụng short_. Chương trình cài đặt đặt Security Key. Hãy lưu lại một bản sao của key đã cho để tham chiếu trong tương lai.

Nếu bạn cài đặt trên Virtual Private Server (VPS), thì các giá trị này sẽ theo dịch vụ đó. Một số sẽ giống nhau, và một số sẽ thay đổi.

Với thông tin thích hợp đang có, nhấn nút màu xanh ở cuối trang để chuyển sang bước 3.

Basic Configuration Page
Trang cấu hình cơ bản

Màn hình Basic Configuration cho phép bạn đặt tên người dùng, email và mật khẩu của quản trị viên. Điền những thông tin này cho các giá trị liên quan đến bạn. Site URL cần được chuyển thành http://s.dev khi bạn thiết lập file lưu trữ hosts trước đó. Sau khi thiết lập, nhấn nút màu xanh ở dưới cùng của màn hình.

Installation Complete Page
Trang hoàn thành cài đặt

Màn hình tiếp theo cho bạn biết rằng dịch vụ hiện đã được thiết lập. Nhấn nút màu xanh có nội dung Delete install.php. Đây là một tính năng bảo mật để sử dụng trên một máy chủ web thực sự, nhưng không cần thiết cho cài đặt cục bộ. Tuy nhiên, việc cài đặt sẽ chưa xong cho đến khi bạn hoàn thành nó.

Premium URL Shortener Front Page
Front page của Premium URL Shortener

Xin chúc mừng - dịch vụ này có thể hoạt động! Bạn sẽ thấy màn hình bên trên. Nếu bạn cung cấp một URL dài vào field có tên Paste a long url và sau đó nhấn nút màu xanh Shorten, bạn sẽ nhận một URL rút ngắn để sử dụng. URL cũng sẽ có trong cơ sở dữ liệu để tham khảo trong tương lai. Tính năng này trở thành một bookmarker tuyệt vời.

Sử dụng API

Bây giờ bạn có dịch vụ rút ngắn URL của mình đang hoạt động, bạn sẽ muốn tận dụng dịch vụ này. Nhưng việc luôn mở một website, thậm chí là một website nội bộ, sẽ làm bạn chậm đi. Bạn cần phải khiến nó nhanh hơn. Đó là sử dụng API (Giao diện lập trình ứng dụng). Bạn có thể tham khảo tài liệu đầy đủ cho API.

Với dịch vụ đang chạy, hãy mở trang http://s.dev/user/sinstall.

Account Settings Page
Trang thiết lập tài khoản

Bạn phải đăng nhập vào tài khoản của bạn để xem trang này. Ở dưới cùng bên phải trong sidebar, bạn sẽ thấy Your API Key: một số gồm các chữ số. Sao chép và lưu số đó. Số này cho phép truy cập vào API.

Để sử dụng API, bạn có thể tạo chương trình Ruby để truy xuất nó. Trên macOS và Linux, Ruby thường được cài đặt sẵn. Trên Windows, bạn sẽ phải cài đặt nó.

Chương trình tối thiểu trong Ruby để tạo một liên kết ngắn là:

Lưu script vào một file có tên shortener.rb, thay thế {YourAPIKey} bằng API key bạn đã sao chép trước đó và chạy code sau trong dòng lệnh:

Bạn sẽ nhận được một liên kết rút gọn cho URL đó. Lệnh này tạo ra các URL rút ngắn, nhưng vẫn không thuận tiện.

Tạo tiện ích mở rộng PopClip

Trên Mac, PopClip là một chương trình nhỏ tuyệt vời để xử lý văn bản nổi bật. Để khiến việc tạo các liên kết rút gọn dễ dàng hơn, bạn sẽ tạo một tiện ích mở rộng PopClip. Tôi sẽ không giải thích mọi thứ để việc tạo một phần mở rộng, nhưng bạn có thể đọc về các cơ chế thực hiện nó trong hướng dẫn PopClip: Scripting Extension.

Tạo tiện ích mở rộng PopClip có tên PremiumURLShortener.popclipext. Sử dụng thông tin sau cho file Config.plist bên trong thư mục tiện ích mở rộng:

Sau đó tạo file script cho tiện ích mở rộng có tên PremiumURLShortener.rb và đặt code này vào đó:

Khi bạn tải tiện ích mở rộng mới, nó sẽ yêu cầu API key. Khi bạn cung cấp cho nó API key và nhấn Okay, nó có thể sử dụng được trong PopClip.

Shortening a URL with PopClip
Rút ngắn URL bằng PopClip

Khi bạn chọn một liên kết, PopClip sẽ mở ra với một danh sách các tùy chọn. Sau đó, bạn chọn tùy chọn Shortener. Sau một lúc rồi dán URL rút ngắn thích hợp. Phần mở rộng đầy đủ nằm trong phần download cho hướng dẫn này. Bây giờ, bạn đã sẵn sàng để làm nhiều hơn nữa!

Tổng kết

Giờ đây, bạn không chỉ có một trình rút ngắn URL riêng, mà bạn còn biết cách sử dụng Docker để chạy các container cục bộ, một cách dễ dàng để theo dõi các URL mà bạn sử dụng và cách tạo các liên kết rút gọn.

Bạn cũng có thể sử dụng script Ruby với Alfred 3 hoặc Keyboard Maestro. Thích dùng dịch vụ mới của bạn và trải nghiệm các tính năng khác của nó.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.