Hướng dẫn cài đặt và cấu hình apache trên ubuntu năm 2024

Trong bài viết hôm nay, Vietnix sẽ hướng dẫn bạn cách cài đặt Apache Virtual Hosts trên Ubuntu 20.04. Đây được xem là một giải pháp tiết kiệm chi phí nhất vì phương pháp này cho phép người dùng nhúng nhiều domain trên một địa chỉ IP trong một Server.

Lưu ý cách cài đặt Apache Virtual Hosts trên Ubuntu 20.04

Trước khi cài đặt bạn cần có:

  • Một máy chủ Ubuntu 20.04 và bạn đã đăng nhập với user non-root nhưng có quyền sudo.
  • Apache đã được cài đặt trên hệ thống Ubuntu của bạn.

Bước 1: Tạo cấu trúc thư mục

Bước đầu tiên là tạo cấu trúc thư mục chứa dữ liệu trang web mà bạn sẽ cung cấp cho khách truy cập.

Root document – thư mục cấp cao nhất mà Apache xem xét để tìm nội dung cần phân phối, sẽ được phân chia thành các thư mục riêng lẻ trong

sudo chmod -R 755 /var/www

7. Tại đây, bạn sẽ tạo một thư mục riêng cho mỗi máy chủ ảo.

Trong mỗi thư mục này, bạn tiếp tục tạo một thư mục

sudo chmod -R 755 /var/www

8 để chứa dữ liệu/tập tin của website dùng để phục vụ cho người dùng. Còn các thư mục mẹ (

sudo chmod -R 755 /var/www

9 và

nano /var/www/your_domain_1/public_html/index.html

0 như ở dưới đây), sẽ chứa các scripts và mã ứng dụng (application code) để hỗ trợ nội dung web.

Để tạo thư mục mẹ với tên miền riêng, bạn sử dụng code sau:

sudo mkdir -p /var/www/your_domain_1/public_html
sudo mkdir -p /var/www/your_domain_2/public_html

Hãy nhớ thay đổi

sudo chmod -R 755 /var/www

9 và

nano /var/www/your_domain_1/public_html/index.html

0 thành các miền tương ứng. Ví dụ: Nếu một trong các miền của bạn là vietnix.com thì cấu trúc thư mục lúc này sẽ là:

nano /var/www/your_domain_1/public_html/index.html

3. Sau khi đã có cấu trúc thư mục hoàn chỉnh, bạn hãy đến với bước tiếp theo – cấp quyền phù hợp cho từng thư mục.

Bước 2: Cấp quyền

Đến đây, bạn đã tạo cấu trúc thư mục cho các file của mình. Tuy nhiên chúng vẫn còn thuộc quyền sở hữu của root user. Nếu bạn muốn user thông thường vẫn có thể thực hiện chỉnh sửa các file này thì có thể thay đổi quyền sở hữu bằng các lệnh sau:

sudo chown -R $USER:$USER /var/www/your_domain_1/public_html
sudo chown -R $USER:$USER /var/www/your_domain_2/public_html

Trong đó, biến

nano /var/www/your_domain_1/public_html/index.html

4 sẽ lấy giá trị của user mà bạn hiện đang đăng nhập khi nhấn

nano /var/www/your_domain_1/public_html/index.html

5. Bằng cách này, user thông thường sẽ được cấp quyền sở hữu các thư mục con của

sudo chmod -R 755 /var/www

8 ở trên.

Bạn cũng nên mở quyền read access đối với thư mục web chung cũng như tất cả các file và folders chứa trong đó để trang có thể được khởi chạy chính xác:

sudo chmod -R 755 /var/www

Sau khi chạy xong, web server hiện tại đã có đủ các quyền cần thiết để phân phối nội dung. Đồng thời user thông thường cũng có thể tự khởi tạo nội dung trong những thư mục cần thiết. Ở bước tiếp theo, hãy cùng đi sâu vào cách tạo nội dung cho các trang lưu trữ ảo.

Bước 3: Tạo Default Pages cho mỗi máy chủ ảo

Để thêm nội dung cho từng trang trên máy chủ ảo, bạn bắt đầu với việc tạo page

nano /var/www/your_domain_1/public_html/index.html

7 cho site đầu tiên

sudo chmod -R 755 /var/www

9. Bạn có thể khởi tạo bằng ngôn ngữ yêu thích, ví dụ như là với

nano /var/www/your_domain_1/public_html/index.html

9:

nano /var/www/your_domain_1/public_html/index.html

Trong file này, tiếp tục tạo một file HTML để thông báo tới khách truy cập rằng họ sẽ được kết nối với trang web nào:

<html>
  <head>
    <title>Welcome to your_domain_1!</title>
  </head>
  <body>
    <h1>Success! The your_domain_1 virtual host is working!</h1>
  </body>
</html>

Để lưu và đóng file trong

nano /var/www/your_domain_1/public_html/index.html

9, hãy nhấn

<html>
  <head>
    <title>Welcome to your_domain_1!</title>
  </head>
  <body>
    <h1>Success! The your_domain_1 virtual host is working!</h1>
  </body>
</html>

1. Nhấn

<html>
  <head>
    <title>Welcome to your_domain_1!</title>
  </head>
  <body>
    <h1>Success! The your_domain_1 virtual host is working!</h1>
  </body>
</html>

2 để tiếp tục, sau đó nhấn

nano /var/www/your_domain_1/public_html/index.html

5 khi bạn hoàn tất để thoát.

Tiếp theo, sao chép file này để sử dụng làm cơ sở cho site thứ hai bằng lệnh:

cp /var/www/your_domain_1/public_html/index.html /var/www/your_domain_2/public_html/index.html

Sau đó, mở file mới này và sửa đổi các phần thông tin có liên quan:

nano /var/www/your_domain_2/public_html/index.html

Thực hiện tạo file HTML tương tự như ở site 1:

<html>
  <head>
    <title>Welcome to your_domain_2!</title>
  </head>
  <body> <h1>Success! The your_domain_2 virtual host is working!</h1>
  </body>
</html>

Lưu và đóng file này. Bây giờ bạn có một default pages cho mỗi website phục vụ cho quá trình kiểm tra cấu hình máy chủ ảo.

Bước 4: Tạo file Virtual Host mới

File Virtual Host là nơi chỉ định cấu hình thực tế cho máy chủ ảo và quy định cách web server Apache sẽ phản hồi yêu cầu từ những domain khác nhau.

Apache sẽ đi kèm với một file Virtual Host mặc định là

<html>
  <head>
    <title>Welcome to your_domain_1!</title>
  </head>
  <body>
    <h1>Success! The your_domain_1 virtual host is working!</h1>
  </body>
</html>

4. Bạn có thể sao chép file này để tạo file Virtual Host cho từng domain của mình với lệnh:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/your_domain_1.conf

Lưu ý rằng cấu hình Ubuntu mặc định yêu cầu mỗi file Virtual Host phải kết thúc bằng

<html>
  <head>
    <title>Welcome to your_domain_1!</title>
  </head>
  <body>
    <h1>Success! The your_domain_1 virtual host is working!</h1>
  </body>
</html>

5.

Mở file mới với quyền root bằng lệnh:

sudo nano /etc/apache2/sites-available/your_domain_1.conf

Với các bình luận bị xóa, file sẽ giống như sau:

sudo chown -R $USER:$USER /var/www/your_domain_1/public_html
sudo chown -R $USER:$USER /var/www/your_domain_2/public_html

0

Trong file này, bạn hãy tùy chỉnh các mục cho khớp với domain đầu tiên và bổ sung thêm một số directive. Máy chủ ảo này sẽ khớp với bất kỳ yêu cầu nào được thực hiện trên cổng

<html>
  <head>
    <title>Welcome to your_domain_1!</title>
  </head>
  <body>
    <h1>Success! The your_domain_1 virtual host is working!</h1>
  </body>
</html>

6 – cổng HTTP mặc định.

Đầu tiên, thay đổi

<html>
  <head>
    <title>Welcome to your_domain_1!</title>
  </head>
  <body>
    <h1>Success! The your_domain_1 virtual host is working!</h1>
  </body>
</html>

7 thành email của quản trị viên website với lệnh:

sudo chown -R $USER:$USER /var/www/your_domain_1/public_html
sudo chown -R $USER:$USER /var/www/your_domain_2/public_html

1

Sau đó, tiếp tục thêm chỉ thị

<html>
  <head>
    <title>Welcome to your_domain_1!</title>
  </head>
  <body>
    <h1>Success! The your_domain_1 virtual host is working!</h1>
  </body>
</html>

8 để thiết lập tên miền cơ sở cho máy chủ ảo và chủ thị

<html>
  <head>
    <title>Welcome to your_domain_1!</title>
  </head>
  <body>
    <h1>Success! The your_domain_1 virtual host is working!</h1>
  </body>
</html>

9 để định nghĩa các tên miền khác giúp chúng khớp với nhau như là tên miền cơ sở. Điều này cực hữu ích khi bạn muốn khớp các máy chủ bổ sung.

Chẳng hạn, nếu bạn đặt

<html>
  <head>
    <title>Welcome to your_domain_1!</title>
  </head>
  <body>
    <h1>Success! The your_domain_1 virtual host is working!</h1>
  </body>
</html>

8 là

cp /var/www/your_domain_1/public_html/index.html /var/www/your_domain_2/public_html/index.html

1, bạn có thể thiết lập

<html>
  <head>
    <title>Welcome to your_domain_1!</title>
  </head>
  <body>
    <h1>Success! The your_domain_1 virtual host is working!</h1>
  </body>
</html>

9 đến

cp /var/www/your_domain_1/public_html/index.html /var/www/your_domain_2/public_html/index.html

3. Lúc này, cả 2 sẽ cùng trỏ đến địa chỉ IP của máy chủ chứa tên miền trên.

Thêm hai chỉ thị này vào file cấu hình của bạn sau dòng

<html>
  <head>
    <title>Welcome to your_domain_1!</title>
  </head>
  <body>
    <h1>Success! The your_domain_1 virtual host is working!</h1>
  </body>
</html>

7:

sudo chown -R $USER:$USER /var/www/your_domain_1/public_html
sudo chown -R $USER:$USER /var/www/your_domain_2/public_html

2

Tiếp theo, thay đổi vị trí file Virtual Host trong document root của tên miền này. Tiếp tục gõ lệnh dưới đây để trỏ file tới thư mục vừa tạo cho máy chủ này:

sudo chown -R $USER:$USER /var/www/your_domain_1/public_html
sudo chown -R $USER:$USER /var/www/your_domain_2/public_html

3

Đây là một ví dụ về file Virtual Host với tất cả các thao tác đã thực hiện ở trên:

sudo chown -R $USER:$USER /var/www/your_domain_1/public_html
sudo chown -R $USER:$USER /var/www/your_domain_2/public_html

4

Cuối cùng, lưu và đóng file.

Tạo file cấu hình thứ hai của bạn bằng cách sao chép file từ site của máy chủ ảo đầu tiên:

sudo chown -R $USER:$USER /var/www/your_domain_1/public_html
sudo chown -R $USER:$USER /var/www/your_domain_2/public_html

5

Mở file mới trong trình editor mà bạn thích với lệnh:

sudo chown -R $USER:$USER /var/www/your_domain_1/public_html
sudo chown -R $USER:$USER /var/www/your_domain_2/public_html

6

Bây giờ, bạn cần sửa đổi tất cả các phần thông tin khớp với tham chiếu tên miền thứ hai. Khi hoàn thành, kết quả sẽ tương tự như thế này:

sudo chown -R $USER:$USER /var/www/your_domain_1/public_html
sudo chown -R $USER:$USER /var/www/your_domain_2/public_html

7

Lưu và đóng file khi bạn hoàn tất.

Bước 5: Kích hoạt file Virtual Host mới

Sau khi đã tạo hoàn tất file Virtual Host, bạn cần kích hoạt thì mới có thể sử dụng. Công cụ

cp /var/www/your_domain_1/public_html/index.html /var/www/your_domain_2/public_html/index.html

5 từ Apache sẽ được sử dụng trong trường hợp này. Bắt đầu với các lệnh:

sudo chown -R $USER:$USER /var/www/your_domain_1/public_html
sudo chown -R $USER:$USER /var/www/your_domain_2/public_html

8

Output từ 2 trang web sẽ nhắc bạn tải lại máy chủ Apache:

sudo chown -R $USER:$USER /var/www/your_domain_1/public_html
sudo chown -R $USER:$USER /var/www/your_domain_2/public_html

9

Trước khi tải lại, hãy tắt trang web được xác định bởi

<html>
  <head>
    <title>Welcome to your_domain_1!</title>
  </head>
  <body>
    <h1>Success! The your_domain_1 virtual host is working!</h1>
  </body>
</html>

4 bằng cách sử dụng lệnh

cp /var/www/your_domain_1/public_html/index.html /var/www/your_domain_2/public_html/index.html

7:

sudo chmod -R 755 /var/www

0

sudo chmod -R 755 /var/www

1

Tiếp theo cần thực hiện kiểm tra lỗi cấu hình:

sudo chmod -R 755 /var/www

2

Bạn sẽ nhận được output như sau:

Khi hoàn tất, hãy khởi động lại Apache để những thay đổi vừa rồi có hiệu lực.

sudo chmod -R 755 /var/www

3

Bạn cũng có thể kiểm tra trạng thái của máy chủ sau tất cả những thay đổi trên bằng lệnh:

sudo chmod -R 755 /var/www

4

Máy chủ của bạn hiện đã được thiết lập để chạy hai trang web. Nếu đang sử dụng tên miền thực, bạn có thể bỏ qua bước 6 và chuyển sang bước 7. Còn nếu bạn đang kiểm tra cấu hình cục bộ, hãy tiếp tục thực hiện theo bước 6 để tìm hiểu cách thiết lập local host trước khi đến bước cuối cùng.

Bước 6: Thiết lập file Local Host (tùy chọn)

Nếu ở các bước trên, bạn sử dụng tên miền giả thay vì tên miền thật thì tới đây vẫn có thể kiểm tra chức năng của các trang web virtual host bằng cách tạm thời sửa đổi tệp

cp /var/www/your_domain_1/public_html/index.html /var/www/your_domain_2/public_html/index.html

8 trên máy tính cục bộ của mình. Thao tác này sẽ chặn mọi request đối với các tên miền mà bạn đã cấu hình và trỏ đến Virtual Private Server (VPS) với cách thức tương tự như hoạt động của hệ thống DNS với các tên miền thật. Và chúng chỉ hoạt động trên máy tính cục bộ với mục đích phục vụ kiểm thử.

Hãy đảm bảo rằng bạn đang sử dụng máy tính của mình chứ không phải server VPS. Bạn sẽ cần biết mật khẩu quản trị của máy tính hoặc phải là một quản trị viên.

Nếu bạn đang sử dụng Mac hoặc Linux, hãy chỉnh sửa file nội bộ với quyền admin bằng cách nhập:

Nếu bạn đang sử dụng Windows, hãy mở Command Prompt và nhập:

sudo chmod -R 755 /var/www

5

Bạn cần thêm địa chỉ IP public của máy chủ và tên miền muốn sử dụng để truy cập máy chủ đó. Sử dụng các tên miền đã được dùng ở các bước trên và thay thế IP máy chủ tương ứng ở

cp /var/www/your_domain_1/public_html/index.html /var/www/your_domain_2/public_html/index.html

9. File của bạn sẽ trông giống như sau:

sudo chmod -R 755 /var/www

6

Thao tác này sẽ điều hướng mọi request đến 2 tên miền trên máy tính của bạn và gửi chúng đến máy chủ tương ứng với IP được chỉ định. Cuối cùng, bạn thực hiện lưu và đóng file.

Nếu bạn muốn sở hữu một hoặc nhiều tên miền thì có thể liên hệ với Vietnix – nhà cung cấp tên miền Việt Nam và quốc tế với mức giá cạnh tranh nhất trên thị trường hiện nay. Đăng ký tên miền ngay hoặc để lại thông tin bên dưới bài viết để được đội ngũ hỗ trợ tư vấn chi tiết và nhanh chóng nhất.

Bước 7: Kiểm tra kết quả

Bây giờ bạn đã cấu hình xong virtual host của mình. Tiến hành kiểm tra toàn bộ thiết lập đã thực hiện bằng cách truy cập vào tên miền phía trên:

Hướng dẫn cài đặt và cấu hình apache trên ubuntu năm 2024
Kiểm tra kết quả trên trang Web đầu tiên

Bạn cũng có thể truy cập trang web thứ hai của mình và xem các thiết lập đã thực hiện thành công chưa:

Hướng dẫn cài đặt và cấu hình apache trên ubuntu năm 2024
Kiểm tra kết quả trên trang Web thứ hai

Nếu cả hai trang web này đều hoạt động như mong đợi thì bạn đã cấu hình thành công hai virtual host trên cùng một máy chủ.

Lời kết

Với những hướng dẫn của Vietnix về cách cài đặt Apache Virtual Hosts trên Ubuntu 20.04 ở trên, bạn đã sở hữu một máy chủ có thể chứa 2 tên miền riêng biệt. Ngoài ra, bạn vẫn có thể mở rộng thêm bằng cách thực hiện các bước tương tự như trên bài viết. Apache không giới hạn số lượng tên miền, tuy nhiên cần tùy vào máy chủ của bạn để tạo số lượng virtual host cho phù hợp.