Cài đặt và cấu hình Devilbox cơ bản

Đây là phần thứ 2 trong tổng số 13 phần thuộc loạt bài nói về Devilbox

Như đã giới thiệu ở phần trước, Devilbox là một công cụ giúp bạn xây dựng môi trường phát triển PHP một cách nhanh chóng và hiệu quả nhưng lại không kém phần đơn giản. Và để chứng minh điều đó, tôi sẽ hướng dẫn các bạn cách cài đặt Devilbox ngay sau đây. Nhưng trước tiên hãy cùng nhau chuẩn bị vài thứ.

Chuẩn bị

Mặc dù Devilbox hỗ trợ tốt trên cả ba môi trường Windows, Linux và MacOS. Nhưng để cho series này được liền mạch và nhất quán, tôi sẽ sử dụng môi trường Linux. Cụ thể là Ubuntu 22.04.2 LTS (Jammy Jellyfish). Bạn có biết tại sao không?

Thứ nhất là vì vốn dĩ Docker được thiết kế chỉ để hoạt động trên Linux. Tức là các nền tảng còn lại thực tế là đang hoạt động thông qua một máy ảo Linux. Thứ hai là vì hầu hết các máy chủ trên thế giới đều là Linux và đương nhiên các máy chủ web dành cho PHP cũng không ngoại lệ. Điều này có nghĩa là chúng ta sẽ phải tiếp xúc với môi trường Linux, làm việc với giao diện dòng lệnh thay vì giao diện người dùng thân thiện, cấu hình mọi thứ thủ công thay vì tự động bằng cách nhấn nút,…

Nghe thì có vẻ rất hardcore nhưng đây là sẽ những bước đi đầu tiên giúp cho các bạn tiếp cận với hệ thống Linux. Tin tôi đi, đây chắn chắn sẽ là một bước ngoặc trong con đường sự nghiệp của bạn. Nói như vậy không có nghĩa là bạn phải cài đặt lại hệ điều hành cho máy tính của mình mà có thể sử dụng các cách sau:

Đối với hệ điều hành Windows:

  1. Máy ảo với Hyper-V, Virtualbox hoặc VMware.
  2. Windows Subsystem for Linux (WSL) – một công cụ chính chủ từ Microsoft giúp bạn vận hành môi trường Linux một cách native trên Windows.
  3. Dual boot: tức là cài nhiều hệ điều hành trên một máy tính.

Đới với hệ điều hành MacOS:

  1. Máy ảo với Virtualbox, UTM, VMware hoặc Parallels Desktop.
  2. Dual boot.

Đến đây về cơ bản phần chuẩn bị đã xong. Tuy nhiên, tôi vẫn có một số lưu ý dành cho các bạn trong trường hợp đã cài đặt Linux trước đó.

Lưu ý trước khi cài đặt

Trước khi cài đặt Devilbox, đầu tiên các bạn hãy đảm bảo rằng môi trường Linux này là mới hoàn toàn. Tức là chưa cài đặt bất cứ phần mềm nào liên quan đến web server như là Apache, Nginx, MySQL, PostgreSQL, MongoDB, Memcached, Redis,… Nếu bạn đang sử dụng máy ảo, việc cài mới thì đơn giản rồi. Còn nếu như bạn đang sử dụng Linux làm hệ điều hành chính thì xin vui lòng “gỡ hết” trước khi tiếp tục. Còn nếu bạn là một tay chơi Linux rồi thì quyết định lựa chọn distro nào để cài đặt là của bạn, không nhất thiết phải là Ubuntu.

Tiếp theo hãy đảm bảo máy tính đã cài đặt hai package curlgit:

  1. Cập nhật thông tin các package
sudo apt update
  1. Cài đặt package curl
sudo apt install curl
  1. Kiểm tra thông tin package curl
curl --version
  1. Cài đặt package git
sudo apt install git
  1. Kiểm tra thông tin package git
git --version

OK, bây giờ chúng ta chính thức bắt đầu cài đặt Devilbox. Hãy bật terminal lên nào!

Các bước cài đặt

  1. Cài đặt Docker, chi tiết các bạn tham khảo tại đây
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Devilbox được phát triển dựa trên nền tảng Docker nên đây có thể nói chính là “first things first”. Sau khi cài đặt xong Docker, hãy kiểm tra lại bằng lệnh sau để đảm bảo rằng bạn đã cài đặt thành công:

docker -v

Sau khi cài đặt thành công Docker, hãy làm theo hướng dẫn tại đây để cấp quyền cho tài khoản hiện tại có thể thao tác với Docker mà không cần phải sử dụng đặc quyền sudo.

  1. Sao chép Devilbox về máy

Devilbox thực chất là một repository chứa các tập tin cấu hình Docker trên Github nên để sử dụng được bạn cần phải clone nó về máy tính của mình. Để thuận tiện, tôi sẽ clone nó vào thư mục người dùng hiện tại.

git clone https://github.com/cytopia/devilbox

Sau khi clone thành công, thư mục devilbox sẽ được tạo. Đây là thư mục chính để vận hành Devilbox.

  1. Tạo tập tin chứa các biến môi trường

Đầu tiên hãy di chuyển vào bên trong thư mục devilbox

cd devilbox

Tiếp theo là tạo tập tin chứa các biến môi trường

cp env-example .env

Tập tin .env sẽ chứa tất cả các cấu hình mặc định cho môi trường và các dịch vụ bên trong Devilbox. Nhưng tạm thời hãy khoan quan tâm, tôi sẽ nói chi tiết hơn về nó sau.

  1. Khởi động Devilbox

Lúc này, cơ bản phần chuẩn bị đã xong. Để khởi động Devilbox, hãy thực hiện câu lệnh sau:

docker compose up

Không quá bất ngờ nếu như tôi nói cho bạn biết rằng chúng ta đang thực hiện một câu lệnh Docker và vận hành Devilbox bằng Docker. Hãy đợi ít phút để Docker thực hiện tải và cài đặt môi trường Devilbox. Sau khi cài đặt hoàn tất, bạn hãy thử mở trình duyệt và truy cập vào địa http://localhost hoặc http://127.0.0.1 để xem kết quả.

Tadaaa, xin chúc mừng bạn đã cài đặt thành công Devilbox.

Nếu bạn đang sử dụng WSL và gặp phải thông báo lỗi đại loại như là “Ports are not available An attempt was made to access a socket in a way forbidden by its access permissions” khi khởi động Devilbox nhưng vẫn chưa tìm được cách khắc phục, hãy thử cách khắc phục ở đây.

Devilbox intranet

Khi truy cập vào địa http://localhost, trang mạng nội bộ của Devilbox sẽ xuất hiện.

Đầu tiên là trang chủ, đây là nơi hiển thị toàn bộ thông tin cấu hình của Devilbox cũng như kiểm tra mọi thứ đã hoạt động đúng như kỳ vọng. Bạn có thể nhìn vào mục Available CLI Tools để thấy sự đồ sộ của Devilbox khi đã tích hợp rất nhiều công cụ dòng lệnh.

Phía trên là thanh điều hướng liên kết đến tất cả các công cụ được tích hợp sẵn cũng như thông tin chi tiết của các công cụ này. Bạn nên dành thời gian lướt nhanh qua từng trang, từng công cụ. Đừng lo nếu bạn không hiểu hoặc không biết nó là gì vì chúng ta sẽ có dịp nói về nó trong các phần kế tiếp.

Tiếp theo, hãy cùng nhau tìm hiểu qua một chút về tập tin chứa biến môi trường .env.

Tập tin chứa biến môi trường .env

Tập tin .env là tập tin chứa toàn bộ thông tin về các biến môi trường bên trong ứng dụng Devilbox dưới dạng các cặp khoá KEY=VALUE. Tập tin này cho phép chúng ta đơn giản hóa việc việc cấu hình Devilbox như là tùy chỉnh phiên bản PHP, hay cấu hình tài khoản root cho MySQL. Thậm chí là thêm biến môi trường môi trường cho ứng dụng PHP của mình, và còn rất rất nhiều thứ khác nữa.

Về bản chất, việc chỉnh sửa tập tin này chính là đang cấu hình cho Docker, cụ thể là tập tin docker-compose.yml. Khi thực hiện lệnh docker compose up phía trên, Docker sẽ tự động tìm nạp tất cả những thông tin bên trong tập tin .env này và tạo ra môi trường đúng như mong muốn.

Hiện tại, Devilbox hỗ trợ cấu hình rất nhiều thứ bên trong. Để đơn giản, chúng ta sẽ cùng nhau dần dần tìm hiểu trong các phần tiếp với từng trường hợp cụ thể. Còn bây giờ, hãy làm quen với tập tin này qua một ví dụ rất cụ thể. Đó là đặt mật khẩu bảo vệ cho trang intranet.

Đặt mật khẩu bảo vệ cho trang intranet

Mặc định, trang intranet không yêu cầu đăng nhập khi truy cập. Để đặt mật khẩu bảo vệ, hãy mở tập tin .env thực hiện theo các bước sau:

  1. Chỉnh sửa giá trị của khóa DEVILBOX_UI_PROTECT thành 1. Tức là bật chức năng password protection.
DEVILBOX_UI_PROTECT=1
  1. Đặt mật khẩu mà bạn muốn thông qua khóa DEVILBOX_UI_PASSWORD. Mặc định khóa này có giá trị là password.
DEVILBOX_UI_PASSWORD=password

Vậy là xong, hãy quay lại terminal và nhấn tổ hợp phím Ctr + C để tạm dừng Devilbox. Sau đó khởi động lại Devilbox.

docker compose up

OK! Hãy truy cập lại http://localhost xem, có phải bây giờ Devilbox đã yêu cầu đăng nhập rồi không?

Hãy thử đăng nhập với thông tin mà bạn đã thiết lập. Lưu ý username mặc định là devilbox.

Tính năng này khá hữu ích trong trường hợp bạn muốn ngăn chặn máy tính khác truy cập vào Devilbox bằng địa chỉ IP của máy bạn khi ở trong cùng mạng LAN. Ngoài ra, bạn hoàn toàn có thể thay đổi username mặc định bằng cách mở tập tin Helper.php theo đường dẫn .devilbox/www/include/lib/Helper.php . Sau đó ở dòng 194 hãy chỉnh sửa giá trị devilbox thành bất cứ tên đăng nhập nào mà bạn thích.

Khởi động Devilbox trong chế độ nền

Khi khởi động Devilbox với câu lệnh docker compose up, tức là bạn đang vận hành Devilbox hay nói chính xác hơn là vận hành Docker ở chế độ foreground (nổi bật). Điều này là cần thiết và được khuyến khích để trong trường hợp khi ứng dụng có lỗi xảy ra, nó sẽ hiển thị ngay trên terminal. Nếu muốn tạm dừng, hãy dùng tổ hợp phím Ctrl + C.

Nhưng một khi đã làm quen được với Docker hoặc muốn chiếm lại terminal của mình, bạn có thể chuyển Docker sang chế độ background (chạy nền) bằng câu lệnh sau:

docker compose up -d

Lúc này, terminal sẽ chỉ hiển thị quá trình khởi động của Devilbox. Sau đó, terminal sẽ lại là của bạn. Và để tạm dừng Devilbox, bạn hãy thực hiện cậu lệnh:

docker compose down

Quá đơn giản và dễ nhớ phải không nào, chỉ cần up và down mà thôi!

Lưu ý rằng chúng ta sẽ không đi sâu vào Docker. Ở đây, tôi chỉ muốn giới thiệu những câu lệnh nhằm giúp bạn sớm làm quen với Devilbox. Các nội dung chuyên về Docker sẽ được giới thiệu trong một chủ đề thích hợp.

Kết luận

Vậy là chúng ta vừa cài đặt thành công và khởi động thành công Devilbox. Tôi tin rằng mình đã chứng minh được sự đơn giản và nhanh chóng của việc vận hành Devilbox không thua kém gì các công cụ khác. Ngoài ra, chúng ta cũng đã bắt đầu làm quen với Docker, công cụ đã chiếm một vị trí quan trọng đối với nhà phát triển ứng dụng web trong thời đại mới. Đây sẽ là nền tảng quan trọng cho con đường sự nghiệp của bạn trong tương lai.

Trong phần tiếp theo, chúng ta sẽ cùng nhau bắt đầu tạo dự án PHP đầu tiên với Devilbox. Let’s go!

© 2024 - 2025
Khuyên Nguyễn
Made with in CT