Làm thế nào để cài đặt Apache Web Server trên Ubuntu 20.04

Trên mạng có rất nhiều hướng dẫn về cài đặt Web Server trên hệ điều hành Ubuntu nhưng chưa phải mới nhất, hôm nay mình hướng dẫn các bạn cách cài đặt webserver trên Ubuntu 20.04 mới nhất .Các bạn muốn cài những phiên bản cũ hơn thì để lại comment mình sẽ viết bài chi tiết hướng dẫn nhé.


Giới thiệu Apache Web Server

 Apache HTTP server là máy chủ được sử dụng rộng rãi nhất trên thế giới. Nó cung cấp nhiều tính năng mạnh mẽ bao gồm các mô-đun có thể tải, hỗ trợ phương tiện truyền thông mạnh mẽ và tích hợp rộng rãi với các phần mềm phổ biến khác.

Trong hướng dẫn này, chúng ta sẽ tình hiểu chi tiết cách cài đặt Apache Web Server trên hệ điều hành Ubuntu 20.04.

Điều kiện bắt buộc

Trước khi bạn bắt đầu hướng dẫn này, bạn nên tạo một tài khoản, không phải tài khoản root có thể sử dụng quyền sudo đã được tạo trước cho an toàn. Ngoài ra bạn nên kích hoạt tường lửa để chặn các port không cần thiết, bạn có thể tìm hiểu cách tạo tài khoản người dùng cơ bản và cách cài đặt tường lửa cho Web Server của bạn theo Hướng dẫn cài đặt máy chủ ban đầu cho hệ điều hành Ubuntu 20.04

Khi bạn đã có tài khoản rồi thì chúng ta bắt đầu thôi.

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

Mặc định trong thư viện của Ubuntu đã có Apache, bạn có thể cài đặt nó dễ dàng không cần cài thêm công cụ bên thứ 3.

Chúng ta hãy update những thư viện mới nhất của hệ điều hành Ubuntu

$ sudo apt update

Sau đó chúng tai cài đặt package apache2

$ sudo apt install apache2

Sau khi xác nhận cài đặt Y, apt sẽ cài đặt apache và những thư viện liên quan

Bước 2 - Cài đặt tường lửa

 

Trước khi kiểm tra Apache, cần chỉnh sửa cài đặt tường lửa để cho phép truy cập vào các port web từ bên ngoài. Giả sử rằng bạn đã làm theo hướng dẫn ở phần điều kiện bắt buộc bạn nên cấu hình tường lửa UFW để hạn chế quyền truy cập vào máy chủ 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 được sử dụng để bật hoặc tắt quyền truy cập vào Apache thông qua tường lửa.

Liệt kê các ufw cấu hình bằng lệnh

$ sudo ufw app list

Bạn sẽ nhận được danh sách của ufw

Output

Available applications:

  Apache

  Apache Full

  Apache Secure

  OpenSSH

Trong danh sách có 3 cấu hình có sẵn cho Apache

  • Apache: Cấu hình này chỉ mở port 80 (thông thường, không được mã hóa)

  • Apache Full: Cấu hình này mở 2 port 80 và 443 (truy cập được mã hóa SSL)

  • Apache Secure: Cấu hình này chỉ mở port 443 (truy cập được mã hóa SSL)

 Lưu ý OpenSSH: Cấu hình này mở port 22 bạn nên cho phép cổng này để có thể truy cập ssh từ xa thông qua terminal

Ở bài này mình chưa cấu hình SSL cho máy chủ port 443, vì vậy mình sẽ tiếp tục trên port 80

$ sudo ufw allow ‘Apache

Bạn có thể xác minh sự thay đổi bằng cấp nhập

$ sudo ufw status

Lệnh này sẽ cho ta danh sách được phép truy cập HTTP

Output

Status: active

To                         Action      From

--                         ------      ----

OpenSSH                    ALLOW       Anywhere                  

Apache                     ALLOW       Anywhere                

OpenSSH (v6)               ALLOW       Anywhere (v6)             

Apache (v6)                ALLOW       Anywhere (v6)

Vậy là đã thành công rồi, bây giờ chúng ta có thể truy cập vào Apache Web Server rồi

 

Bước 3 - Kiểm tra Web Server

 

Kết thúc quá trình cài đặt, Ubuntu 20.04 khởi động Apache. Máy chủ web đã được thiết lập và đang chạy.

Để kiểm tra hệ thống đã chạy chưa, chúng ta nhập

$ sudo systemctl status apache2

Nó sẽ đưa ra thông báo tương tự

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
 

Nếu thông báo như trên thì đã thành công rồi. Tuy nhiên cách tốt nhất để kiểm tra là truy cập một trang từ Apache.

Bạn có thể truy cập vào landing page mặc định của Apache để xác nhận ứng dụng của bạn chạy đúng thông qua địa chỉ IP. Nếu bạn không biết địa chỉ IP của server, bạn có thể lấy nó qua một vài cách.

Hãy thử nhập

$ hostname -I

Bạn sẽ nhận được một vài địa chỉ IP khác nhau, bạn có thể thử trên trình duyệt web của mình để xác minh xem nó có hoạt động không.

Một tùy chọn khác bạn có thể sử dụng tool Icanhazip. tool này sẽ đưa cho bạn địa chỉ IP. bạn nhập

$ curl -4 icanhazip.com

Khi bạn có địa chỉ IP, bạn hãy nhập nó lên trình duyệt web của bạn

http://your_server_id

Bạn sẽ thấy một trang web mặc định của Ubuntu 20.04

 

 

Trang này chỉ ra rằng Apache đã hoạt động chính xác. Nó cũng bao gồm  một vài thông tin cơ bản về những file Apache quan trọng và vị trí thư mục.

 

Bước 4 - Quản lý Apache Process

 

Bây giờ bạn đã thiết lập và chạy máy chủ của mình, hãy bắt đầu với một vài lệnh commands cơ bản sử dụng systemctl

Để dừng web server, nhập:

$ sudo systemctl  stop apache2

Để khởi động web server khi nó đã dừng, nhập:

$ sudo systemctl start apache2

Để restart, nhập:

$ sudo systemctl restart apache2

Nếu bạn chỉ đơn giản là thay đổi cấu hình, Apache có thể tải lại mà không làm mất kết nối, để làm điều này bạn nhập:

$ sudo systemctl reload apache2

 

Mặc định Apache tự khởi động khi server khởi động. Nếu bạn không muốn điều này, vô hiệu hóa nó bằng cách nhập:

$ sudo systemctl disable apache2

 

Để bật lại chúng ta nhập:

$sudo systemctl enable apache2

Apache sẽ tự khởi động khi server khởi động.

 

Bước 5 - Thiết lập máy chủ để chạy website

 

Mình sẽ tạo thư mục chứa project bằng lệnh:

$ sudo mkdir /var/www/html/your_domain

Tiếp theo, mình chỉ định quyền sở hữu thư mục với biến $USER, nhập:

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

Để phân quyền cho phép user có thể đọc, ghi và thực thi các lệnh tệp, sử dụng lệnh

$ sudo chmod -R 755 /var/www/html/your_domain 

Tiếp theo, tạo một trang index.html mẫu sử dụng nano, nhập:

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

 

Bên trong, hãy nhập HTML mẫu sau: 

 

Lưu và đóng khi bạn đã hoàn thành CTRL + O -> Enter -> CTRL + X

Để Apache có thể hiểu và chạy được domain vừa cài đặt, bạn cần tạo file cấu hình máy chủ ảo. Chúng ta sẽ không chỉnh sửa file cấu hình mặc định của apache (/etc/apache2/sites-available/000-default.conf)  mà sẽ tạo một file mới (/etc/apache2/sites-available/your_domain.conf), nhập lệnh:

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

 

Tiếp theo ta nhập nội dung sau: 

 

 

 

Options Indexes FollowSymLinks MultiViews

AllowOverride All

Order allow,deny

allow from all

 

    ServerAdmin webmaster@localhost

    ServerName your_domain

    ServerAlias www.your_domain

    DocumentRoot /var/www/html/your_domain

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

 

 

 

Lưu và đóng lại khi hoàn tất.

Để kích hoạt file ta dùng tool a2ensite

$ sudo a2ensite your_domain.conf

Và disable site cấu hình mặc định trong 000-default.conf

$ sudo a2dissite 000-default.conf

Tiếp theo kiểm tra xem cấu hình có bị lỗi không

$ sudo apache2ctl configtest

Bạn sẽ nhận được kết quả sau

Output

Syntax OK

 

Restart Apache để thực hiện những thay đổi của mình

$ sudo systemctl restart apache2

OK, vậy là đã thành công rồi đấy, bạn truy cập link website của mình để xem kết quả nhé.

http://your_domain kết quả trả về như vậy là ok.

 

Lưu ý bạn cần trỏ tên miền đúng vào địa chỉ IP của server nhé.

 

OK. Vậy là xong. hẹn các bạn ở bài sau. Chúc các bạn cài đặt thành công.

Mục lục nội dung