Apache là một trong những phần mềm máy chủ web phổ biến nhất thế giới. Đây là một máy chủ HTTP mã nguồn mở và xuyên nền tảng, nó được sử dụng để vận hành phần lớn các trang web Internet. Apache cung cấp nhiều tính năng mạnh mẽ có thể mở rộng thêm bằng cách sử dụng các module, giúp nó trở thành một lựa chọn tốt cho những ai đang tìm kiếm một máy chủ web có khả năng tùy biến và linh hoạt.
Bài viết này sẽ hướng dẫn bạn qua từng bước cài đặt và quản lý máy chủ web Apache trên Ubuntu 22.04. Bạn sẽ học cách cài đặt Apache, mở cổng HTTP và HTTPS trên tường lửa, và thiết lập Virtual Host.
Cài đặt Apache trên Ubuntu 22.04
Trên hệ thống Ubuntu và Debian, gói Apache và dịch vụ được gọi là apache2.
Apache được bao gồm trong các kho mặc định của Ubuntu, và quá trình cài đặt khá đơn giản.
Chạy các lệnh sau để cập nhật chỉ mục gói và cài đặt Apache:
sudo apt update
sudo apt install apache2
Sau khi quá trình cài đặt hoàn tất, dịch vụ Apache sẽ tự động khởi động.
Bạn có thể kiểm tra xem Apache đang chạy bằng cách gõ:
sudo systemctl status apache2
Kết quả trả về sẽ cho biết dịch vụ đang chạy và được kích hoạt để khởi động cùng hệ thống.
Như vậy là Apache đã được cài đặt thành công trên Ubuntu 22.04. Bạn có thể bắt đầu sử dụng nó.
Mở cổng HTTP và HTTPS cho Apache
Apache lắng nghe trên cổng 80 (HTTP) và 443 (HTTPS). Bạn cần mở các cổng firewall cần thiết để cho phép truy cập từ Internet vào máy chủ web.
Giả sử bạn đang sử dụng UFW, bạn có thể làm điều đó bằng cách kích hoạt hồ sơ ‘Apache Full’, bao gồm các quy tắc cho cả 2 cổng:
sudo ufw allow 'Apache Full'
Kiểm tra thay đổi:
sudo ufw status
Kết quả sẽ hiển thị tương tự:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Apache Full ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
Apache Full (v6) ALLOW Anywhere (v6)
Kiểm tra cài đặt Apache
Để kiểm tra xem mọi thứ hoạt động chính xác, mở trình duyệt web, gõ địa chỉ IP của máy chủ http://YOUR_IP_OR_DOMAIN/, bạn sẽ thấy trang chủ mặc định của Ubuntu 22.04 Apache như hình bên dưới:
Trang này cung cấp thông tin cơ bản về các tập tin cấu hình Apache, các tập lệnh trợ giúp liên quan và vị trí thư mục.
Thiết lập Virtual Host trên Apache
Virtual Host là cấu hình chỉ thị của Apache cho phép bạn chạy nhiều hơn một trang web trên cùng một máy chủ. Thông thường, một Virtual Host mô tả một trang web.
Apache đi kèm với một Virtual Host mặc định được kích hoạt. Tất cả các tên miền trỏ đến địa chỉ IP của máy chủ sẽ khớp với Virtual Host mặc định. Nếu bạn chỉ lưu trữ một trang web, bạn có thể tải nội dung lên /var/www/html và chỉnh sửa cấu hình Virtual Host tại /etc/apache2/sites-enabled/000-default.conf.
Nếu bạn định lưu trữ nhiều trang web, bạn cần tạo cấu hình Virtual Host riêng cho mỗi trang. Trong phần này, chúng tôi sẽ hướng dẫn bạn cách thiết lập một trang web có tên miền là “example.com”. Đơn giản thay thế “example.com” bằng tên miền thực tế của bạn.
Đầu tiên, tạo thư mục gốc tài liệu nơi lưu trữ các tập tin trang web cho tên miền bằng cách chạy lệnh:
sudo mkdir -p /var/www/example.com
Để test, tạo tập tin index.html bên trong thư mục gốc tài liệu của tên miền:
/var/www/example.com/index.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to example.com</title>
</head>
<body>
<h1>Success! example.com home page!</h1>
</body>
</html>
Để tránh các vấn đề về quyền, thay đổi quyền sở hữu thư mục gốc tài liệu của tên miền thành user apache (www-data):
sudo chown -R www-data: /var/www/example.com
Bước tiếp theo là tạo cấu hình Virtual Host cho tên miền “example.com”. Thực tiễn tốt nhất là lưu trữ mỗi cấu hình vhost trong một tập tin riêng biệt.
Các tập tin vhost của Apache nằm trong thư mục /etc/apache2/sites-available. Quy ước đặt tên là đặt tên tập tin theo tên miền.
Mở trình soạn thảo và tạo tập tin sau:
/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example.com/public_html
<Directory /var/www/example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>
Apache không đọc các tập tin cấu hình trong /etc/apache2/sites-available trừ khi chúng được liên kết tới /etc/apache2/sites-enabled.
Để kích hoạt cấu hình Virtual Host, tạo symlink bằng tiện ích a2ensite:
sudo a2ensite example.com
Kiểm tra cú pháp cấu hình:
sudo apachectl configtest
Nếu không có lỗi, bạn sẽ thấy kết quả:
Syntax OK
Khởi động lại dịch vụ Apache để các thay đổi có hiệu lực:
sudo systemctl restart apache2
Cuối cùng, để kiểm tra mọi thứ hoạt động như mong đợi, mở http://example.com trong trình duyệt và bạn sẽ thấy kết quả tương tự:
Như vậy bạn đã thiết lập thành công Virtual Host cho Apache trên Ubuntu 22.04.
Kết luận
Như vậy chúng ta đã đi qua các bước cài đặt Apache và thiết lập Virtual Host trên Ubuntu 22.04. Giờ đây bạn có thể bắt đầu triển khai các ứng dụng và sử dụng Apache làm máy chủ web hoặc proxy.
Nếu bạn gặp vấn đề gì hoặc có phản hồi, hãy để lại bình luận bên dưới. Chúc bạn thành công!