Sử dụng Apache web server với Devilbox

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

Apache là một trong những phần mềm miễn phí mã nguồn mở có tiếng trong giới web server. Ở thời điểm hiện tại, Apache đứng top 3 với hơn 20% trong tổng số hơn một tỷ website sử dụng. Tôi dẫn chứng như vậy để các bạn thấy được chỗ đứng của Apache trong thế giới web server. Thế thì có liên quan gì đến Devilbox của chúng ta?

Trong phần trước, chúng ta đã cài đặt thành công WordPress với Devilbox. Tuy nhiên, web server mặc định mà Devilbox sử dụng là Nginx. Cho nên, vì một lý do nào đó mà cần phải sử dụng Apache web server thì nội dung này là dành cho bạn.

Ngoài ra, WordPress thường được cài đặt trên Apache web server và được quản lý thông qua các web hosting control panel như cPanel, DirectAdmin hoặc Plesk,… Hoặc nổi tiếng dạo gần đây là LiteSpeed web server, cũng là một web server tương tự Apache. Đặc điểm chung dễ thấy nhất của hai đứa này chính là tập tin .htaccess. Cho nên nếu muốn sử dụng tập tin này để cấu hình, cách duy nhất là chuyển sang Apache web server.

OK, không dài dòng nữa! Bây giờ chúng ta sẽ bắt tay vào các bước chuẩn bị đầu tiên.

Chuẩn bị

Nếu bạn đã tham khảo phần trước thì sẽ không cần phải chuẩn bị gì cả. Còn nếu bạn đang muốn đổi sang Apache thì cũng không cần chuẩn bị gì cả luôn vì thực tế nó rất đơn giản. Trước tiên, hãy mở intranet lên để đảm bảo web server hiện tại không phải là Apache trong mục Base Stack. Ví dụ, như tôi đã đề cập Devilbox đang sử dụng Nginx.

Tiếp theo, tạm thời hãy tắt Devilbox đi trong ít phút để chuẩn bị cho bước tiếp theo:

docker compose down

Chuyển sang Apache web server

Để Devilbox chuyển sang sử dụng Apache thật sự rất đơn giản. Bạn hãy mở tập tin .env của Devilbox và tìm tới khóa HTTPD_SERVER. Sau đó, chuyển sang Apache với phiên bản mà bạn muốn là được.

Ví dụ, ở phiên bản hiện tại, Devilbox đang sử dụng Nginx và hỗ trợ hai phiên bản Apache là 2.22.4:

#HTTPD_SERVER=apache-2.2
#HTTPD_SERVER=apache-2.4
HTTPD_SERVER=nginx-stable
#HTTPD_SERVER=nginx-mainline

Giả sử tôi muốn chuyển sang Apache 2.4, tôi sẽ bỏ chú thích ở giá trị apache-2.4 và chú thích các giá trị còn lại:

#HTTPD_SERVER=apache-2.2
HTTPD_SERVER=apache-2.4
#HTTPD_SERVER=nginx-stable
#HTTPD_SERVER=nginx-mainline

Cuối cùng, chỉ cần khởi động lại Devilbox là xong:

docker compose up -d

Bây giờ, hãy quay lại intranet và kiểm tra mục Base Stack. Lúc này web server của chúng ta sẽ là Apache 2.4:

Quay trở lại với dự án WordPress trong phần trước, hãy thử truy cập lại vào URL của dự án tại http://wordpress.dvl.to và xem kết quả:

Website vẫn hoạt động bình thường đúng không? Giờ hãy thử thay đổi cài đặt Permalink structure để xem nó có hoạt động hay không? Ví dụ tôi sẽ thử sử dụng tuỳ chọn Post name.

Quay trở lại trang chủ, tải lại trang và nhấn vào bài viết đầu tiên. Hoàn toàn hoạt động bình thường. Ngoài ra, nếu để ý các bạn sẽ thấy thư mục dự án wordpress đã có thêm tập tin .htaccess.

Có thể bạn đã biết, WordPress sử dụng tập tin .htaccess để Rewrite URL, chính là nền móng cho tính năng Permalink. Nó sẽ chuyển toàn bộ request vào tập tin index.php để xử lý. Từ đó, WordPress sẽ phân tích URL và chuyển đến nội dung tương ứng với phần cài đặt trong Permalink.

Kết luận

Việc chuyển đổi qua lại giữa Apache và Nginx trên Devilbox thực sự rất đơn giản phải không nào? Và việc này sẽ là cần thiết nếu dự án của bạn đang dùng Apache web server. Điều này sẽ giúp ích cho việc nhất quán giữa môi trường phát triển và môi trường vận hành dự án. Từ đó dễ dàng tái hiện và vá lỗi.

Trong phần tiếp theo, tôi sẽ hướng dẫn bạn thêm một nội dung nữa cho để cho môi trường phát triển của chúng ta nhìn được trọn vẹn hơn. Đó là cài đặt HTTPS. Let’s go!

Tham khảo

April 2023 Web Server Survey | Netcraft

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