Cách Cài Đặt Máy Chủ Web Apache Trên Ubuntu 20.04 Chi Tiết Nhất

Cách Cài Đặt Máy Chủ Web Apache Trên Ubuntu 20.04 Chi Tiết Nhất

Apache HTTP Server là một trong những máy chủ web phổ biến nhất trên toàn cầu, được đánh giá cao nhờ tính linh hoạt, khả năng mở rộng và hiệu suất mạnh mẽ. Với sự hỗ trợ của các module có thể tải động, khả năng xử lý đa phương tiện ổn định và tích hợp dễ dàng với nhiều công nghệ khác, Apache trở thành lựa chọn hàng đầu cho nhiều ứng dụng web.

DataOnline sẽ giúp bạn tìm hiểu cách cài đặt và cấu hình Apache trên máy chủ Ubuntu 20.04 để đảm bảo hiệu suất và bảo mật tối ưu. Để triển khai máy chủ web Apache hiệu quả, bạn cần một nền tảng ổn định. Với VPS giá rẻ, bạn dễ dàng sở hữu server mạnh mẽ, tiết kiệm chi phí, phù hợp cho mọi dự án. Khám phá ngay các gói VPS giá rẻ để bắt đầu xây dựng website chuyên nghiệp!

Ngoài ra, nếu bạn muốn triển khai ứng dụng một cách nhanh chóng và hiệu quả, nền tảng DataOnline App Platform giúp bạn triển khai trực tiếp từ GitHub chỉ trong vài phút, đơn giản hóa quá trình quản lý server.

Yêu cầu

Trước khi bắt đầu hướng dẫn này, bạn nên có một tài khoản người dùng thường (không phải root) với quyền sudo đã được cấu hình trên server của bạn. Ngoài ra, bạn cần kích hoạt một Firewall cơ bản để chặn các cổng không cần thiết. Bạn có thể tìm hiểu cách cấu hình tài khoản người dùng thường và thiết lập Firewall cho server của bạn bằng cách theo dõi hướng dẫn Cấu hình máy chủ ban đầu cho Ubuntu 20.04.

Khi đã có tài khoản, hãy đăng nhập với tư cách là người dùng không phải root để bắt đầu.

Bước 1 – Cài đặt Apache

Apache có sẵn trong các kho phần mềm mặc định của Ubuntu, giúp việc cài đặt trở nên dễ dàng qua các công cụ quản lý gói thông thường.

Đầu tiên, cập nhật chỉ mục gói cục bộ để phản ánh những thay đổi mới nhất từ nguồn:

sudo apt update

Sau đó, cài đặt gói apache2:

sudo apt install apache2

Sau khi xác nhận cài đặt, apt sẽ cài đặt Apache và tất cả các phụ thuộc cần thiết.

Bước 2 – Điều chỉnh Firewall

Trước khi kiểm tra Apache, cần phải điều chỉnh cài đặt Firewall để cho phép truy cập từ bên ngoài đến các cổng web mặc định. Giả sử rằng bạn đã làm theo hướng dẫn trong phần Yêu cầu trước, bạn sẽ có một Firewall UFW được cấu hình để hạn chế truy cập vào server của bạn.

Trong quá trình cài đặt, Apache sẽ đăng ký với UFW để cung cấp một số cấu hình ứng dụng có thể dùng để kích hoạt hoặc vô hiệu hóa việc truy cập Apache qua Firewall.

Liệt kê các cấu hình ứng dụng của ufw bằng lệnh:

sudo ufw app list

Bạn sẽ nhận được danh sách các cấu hình ứng dụng như sau:

Output
Available applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

Như chỉ ra trong output, có ba cấu hình sẵn cho Apache:

Apache: Cấu hình này chỉ mở cổng 80 (lưu lượng web thông thường, không mã hóa)
Apache Full: Cấu hình này mở cả cổng 80 (lưu lượng web thông thường, không mã hóa) và cổng 443 (lưu lượng được mã hóa TLS/SSL)
Apache Secure: Cấu hình này chỉ mở cổng 443 (lưu lượng được mã hóa TLS/SSL)

Khuyến nghị rằng bạn nên kích hoạt cấu hình hạn chế nhất mà vẫn cho phép lưu lượng truy cập mà bạn đã cấu hình. Vì trong hướng dẫn này chúng ta chưa cấu hình SSL cho server, nên chỉ cần cho phép lưu lượng trên cổng 80:

sudo ufw allow 'Apache'

Bạn có thể xác minh thay đổi bằng lệnh:

sudo ufw status

Kết quả sẽ hiển thị danh sách các lưu lượng HTTP được phép truy cập:

Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Apache                     ALLOW       Anywhere                
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Apache (v6)                ALLOW       Anywhere (v6)

Như output cho thấy, cấu hình đã được kích hoạt để cho phép truy cập đến máy chủ web Apache.

Bước 3 – Kiểm tra Web Server của bạn

Sau khi hoàn tất quá trình cài đặt, Ubuntu 20.04 sẽ khởi động Apache. Máy chủ web nên đã hoạt động.

Kiểm tra trạng thái dịch vụ với hệ thống khởi động systemd bằng lệnh:

sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-04-23 22:36:30 UTC; 20h ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 29435 (apache2)
      Tasks: 55 (limit: 1137)
     Memory: 8.0M
     CGroup: /system.slice/apache2.service
             ├─29435 /usr/sbin/apache2 -k start
             ├─29437 /usr/sbin/apache2 -k start
             └─29438 /usr/sbin/apache2 -k start

Như output xác nhận, dịch vụ đã khởi động thành công. Tuy nhiên, cách tốt nhất để kiểm tra là yêu cầu một trang từ Apache.

Bạn có thể truy cập trang landing mặc định của Apache để xác nhận rằng phần mềm đang hoạt động đúng bằng cách sử dụng địa chỉ IP của server. Nếu bạn không biết địa chỉ IP của server, có vài cách để lấy nó từ dòng lệnh.

Hãy thử nhập lệnh sau tại command prompt của server:

hostname -I

Bạn sẽ nhận được một vài địa chỉ được phân tách bởi dấu cách. Bạn có thể thử từng địa chỉ trong trình duyệt để xem có hoạt động hay không.

Một tùy chọn khác là sử dụng công cụ Icanhazip, công cụ này sẽ trả về địa chỉ IP công cộng của bạn từ một vị trí khác trên Internet:

curl -4 icanhazip.com

Khi bạn có địa chỉ IP của server, hãy nhập nó vào thanh địa chỉ của trình duyệt:

http://your_server_ip

Bạn sẽ thấy trang web mặc định của Apache trên Ubuntu 20.04:

Thiet ke chua co ten 32

Bước 4 – Quản lý tiến trình của Apache

Bây giờ bạn đã có máy chủ web hoạt động, hãy cùng tìm hiểu một vài lệnh quản lý cơ bản qua systemctl.

Để dừng máy chủ web, nhập:

sudo systemctl stop apache2

Để khởi động lại máy chủ khi nó đã dừng, nhập:

sudo systemctl start apache2

Để dừng và sau đó khởi động lại dịch vụ, nhập:

sudo systemctl restart apache2

Nếu bạn chỉ cần thực hiện các thay đổi cấu hình, Apache có thể tải lại mà không mất kết nối. Để làm điều này, sử dụng lệnh:

sudo systemctl reload apache2

Theo mặc định, Apache được cấu hình để khởi động tự động khi server khởi động. Nếu không muốn điều này, hãy vô hiệu hóa bằng lệnh:

sudo systemctl disable apache2

Để kích hoạt lại dịch vụ khởi động cùng hệ thống, nhập:

sudo systemctl enable apache2

Apache bây giờ sẽ tự động khởi động khi server khởi động lại.

Bước 5 – Thiết lập Virtual Hosts

Khi sử dụng máy chủ web Apache, bạn có thể sử dụng Virtual Hosts (tương tự như server blocks trong Nginx) để bao gói các chi tiết cấu hình và phục vụ nhiều tên miền từ một server duy nhất. Chúng ta sẽ thiết lập một tên miền có tên your_domain, tuy nhiên bạn nên thay thế bằng tên miền của riêng bạn. Nếu bạn đang thiết lập tên miền với DataOnline, hãy tham khảo Tài liệu Mạng của chúng tôi.

Apache trên Ubuntu 20.04 có một server block được kích hoạt mặc định, được cấu hình để phục vụ nội dung từ thư mục /var/www/html. Trong khi cấu hình này phù hợp cho một trang web đơn lẻ, nó có thể trở nên bất tiện nếu bạn phục vụ nhiều trang. Thay vì sửa đổi /var/www/html, hãy tạo một cấu trúc thư mục trong /var/www cho trang your_domain, giữ /var/www/html làm thư mục mặc định được phục vụ nếu yêu cầu từ client không khớp với trang nào khác.

Tạo thư mục cho your_domain bằng lệnh:

sudo mkdir /var/www/your_domain

Tiếp theo, gán quyền sở hữu thư mục cho biến môi trường $USER:

sudo chown -R $USER:$USER /var/www/your_domain

Các quyền của thư mục web của bạn sẽ đúng nếu bạn chưa thay đổi giá trị umask, giá trị này thiết lập quyền mặc định cho các tập tin. Để đảm bảo quyền đã được đặt đúng, cho phép chủ sở hữu có quyền đọc, ghi và thực thi trong khi chỉ cấp quyền đọc và thực thi cho nhóm và người khác, bạn nhập lệnh:

sudo chmod -R 755 /var/www/your_domain

Tiếp theo, tạo một trang index.html mẫu sử dụng nano hoặc trình soạn thảo yêu thích của bạn:

sudo nano /var/www/your_domain/index.html

Bên trong, thêm nội dung HTML mẫu sau:

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

Lưu và đóng tập tin khi bạn đã hoàn tất.

Để Apache phục vụ nội dung này, cần tạo một tập tin cấu hình Virtual Host với các chỉ thị chính xác. Thay vì sửa đổi trực tiếp tập tin cấu hình mặc định nằm tại /etc/apache2/sites-available/000-default.conf, hãy tạo một tập tin mới tại /etc/apache2/sites-available/your_domain.conf:

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

Dán vào khối cấu hình sau, tương tự như cấu hình mặc định nhưng được cập nhật cho thư mục và tên miền mới:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Chú ý rằng chúng tôi đã cập nhật DocumentRoot thành thư mục mới của bạn và ServerAdmin thành một email mà quản trị viên của your_domain có thể truy cập. Chúng tôi cũng đã thêm hai chỉ thị: ServerName, thiết lập tên miền cơ sở cần khớp cho định nghĩa virtual host này, và ServerAlias, xác định các tên bổ sung cần khớp như thể chúng là tên cơ sở.

Lưu và đóng tập tin khi đã xong.

Kích hoạt tập tin cấu hình bằng công cụ a2ensite:

sudo a2ensite your_domain.conf

Vô hiệu hóa trang mặc định được định nghĩa trong 000-default.conf:

sudo a2dissite 000-default.conf

Tiếp theo, kiểm tra lỗi cấu hình:

sudo apache2ctl configtest

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

Output
Syntax OK

Khởi động lại Apache để áp dụng thay đổi:

sudo systemctl restart apache2

Apache bây giờ sẽ phục vụ tên miền của bạn. Bạn có thể kiểm tra bằng cách điều hướng đến và bạn sẽ thấy giao diện như sau.

Thiet ke chua co ten 33 1

Bước 6 – Làm quen với các tập tin và thư mục quan trọng của Apache

Bây giờ bạn đã biết cách quản lý dịch vụ Apache, hãy dành vài phút để làm quen với một số thư mục và tập tin quan trọng.

Nội dung

  • /var/www/html: Nội dung web thực tế, mặc định chỉ gồm trang Apache mặc định bạn đã thấy ở trên, được phục vụ từ thư mục /var/www/html. Thư mục này có thể được thay đổi bằng cách chỉnh sửa các tập tin cấu hình của Apache.

Cấu hình Server

  • /etc/apache2: Thư mục cấu hình của Apache. Tất cả các tập tin cấu hình của Apache nằm trong đây.
  • /etc/apache2/apache2.conf: Tập tin cấu hình chính của Apache. Tập tin này có thể được sửa đổi để thay đổi cấu hình toàn cục của Apache. Nó chịu trách nhiệm tải nhiều tập tin khác trong thư mục cấu hình.
  • /etc/apache2/ports.conf: Tập tin này xác định các cổng mà Apache sẽ lắng nghe. Mặc định, Apache lắng nghe trên cổng 80 và thêm vào cổng 443 khi module cung cấp khả năng SSL được kích hoạt.
  • /etc/apache2/sites-available/: Thư mục chứa các Virtual Hosts theo từng trang web. Apache sẽ không sử dụng các tập tin cấu hình trong thư mục này trừ khi chúng được liên kết tới thư mục sites-enabled. Thông thường, tất cả cấu hình server block được thực hiện ở đây, sau đó được kích hoạt bằng cách liên kết với thư mục kia qua lệnh a2ensite.
  • /etc/apache2/sites-enabled/: Thư mục chứa các Virtual Hosts đã được kích hoạt. Thông thường, các tập tin cấu hình được tạo bằng cách liên kết đến các tập tin trong thư mục sites-available thông qua lệnh a2ensite. Apache sẽ đọc các tập tin cấu hình và các liên kết trong thư mục này khi khởi động hoặc tải lại để biên dịch một cấu hình hoàn chỉnh.
  • /etc/apache2/conf-available//etc/apache2/conf-enabled/: Hai thư mục này có mối quan hệ tương tự như sites-availablesites-enabled, nhưng dùng để lưu các đoạn cấu hình không thuộc Virtual Host. Các tập tin trong thư mục conf-available có thể được kích hoạt bằng lệnh a2enconf và vô hiệu hóa bằng lệnh a2disconf.
  • /etc/apache2/mods-available//etc/apache2/mods-enabled/: Hai thư mục chứa các module có sẵn và đã được kích hoạt. Các tập tin có đuôi .load chứa các đoạn mã để tải các module cụ thể, trong khi các tập tin có đuôi .conf chứa cấu hình cho các module đó. Các module có thể được kích hoạt và vô hiệu hóa bằng lệnh a2enmoda2dismod.

Nhật ký Server

  • /var/log/apache2/access.log: Mặc định, mọi yêu cầu đến máy chủ web của bạn được ghi lại trong tập tin log này, trừ khi Apache được cấu hình khác.
  • /var/log/apache2/error.log: Mặc định, tất cả các lỗi được ghi lại trong tập tin này. Chỉ thị LogLevel trong cấu hình Apache xác định mức độ chi tiết của các nhật ký lỗi.

Kết luận

Bây giờ, sau khi đã thiết lập và chạy máy chủ web Apache, bạn có thể bắt đầu triển khai các trang web và ứng dụng web theo nhu cầu của mình. Từ việc phục vụ nội dung tĩnh đến các ứng dụng động, Apache cung cấp một nền tảng linh hoạt để phát triển web.

Nếu bạn muốn mở rộng khả năng của máy chủ, hãy tham khảo hướng dẫn cài đặt và cấu hình LAMP stack trên Ubuntu 20.04 để tích hợp thêm MySQL và PHP, giúp xây dựng các ứng dụng web mạnh mẽ hơn.

Sau khi cài đặt Apache, việc quản lý website sẽ mượt mà hơn với một server đáng tin cậy. Thuê VPS giúp bạn linh hoạt mở rộng tài nguyên, đảm bảo hiệu suất cao. Tìm hiểu dịch vụ thuê VPS chất lượng để tối ưu hóa trải nghiệm web của bạn ngay hôm nay!

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *