Hướng dẫn cài đặt và cấu hình apache web server trong Ubuntu 20.04

Bước 1: Cài đặt Apache web server
Apache web server có sẵn trong kho quản lý gói cài đặt của Ubuntu. Chạy lệnh cật nhật dưới để update các gói phần mềm cho Ubuntu
sudo apt update
Sau đó, cài đặt gói apache2 với lệnh sau:
sudo apt install apache2
Sau khai xác nhận cài đặt, apt sẽ cài đặt Apache và tất cả các gói phụ thuộc vào server

Bước 2: Cài đặt tường lửa
Nếu máy chủ của bạn đang sử dụng tường lửa vui lòng thực hiện các bước sau để cho phép bên ngoài truy cập vào web server 
Liệt kê danh sách ứng dụng bởi ufw như sau
sudo ufw app list
Bạn sẽ nhận được một sanh sách các ứng dụng như sau
 

Available applications:
   Apache
   Apache Full
   Apache Secure
   OpenSSH

Thông thường chúng ta sẽ sử dụng "Apache Full" để mở các port 80 và 443 cho việc truy cập web
Thực hiện lệnh sau để cho phép việc mở trên
sudo ufw allow 'Apache Full'
Kiểm tra kết quả sử dụng lệnh
sudo ufw status

Bước 3: Kiểm tra hoạt động của Apache web server
Sau khi cài đặt apache, Ubuntu 20.04 tự động start Apache web server. Kiểm tra trạng thái của Apache sử dụng systemctl như sau
sudo systemctl status apache2

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

Sử dụng trình duyệt truy cập theo link
http://your_server_ip
Bạn sẽ nhìn thấy trang mặc định của Ubuntu 20.04 Apache web server


Bước 4: Quản lý dịch vụ Apache web server

Để stop web server thì sử dụng lệnh
​​​​​​​sudo systemctl stop apache2
Để start apache thì sử dụng lệnh
sudo systemctl start apache2
Để stop sau đó start web server thì sử dụng lệnh
sudo systemctl restart apache2
Nếu bạn chỉ là thực hiện thay đổi cấu hình, Apache có thể tải lại mà không làm mất kết nối. Để thực hiện việc này, hãy sử dụng lệnh sau:
sudo systemctl reload apache2
Bước 5: Cấu hình Virtual Host cho tên miền website
Đầu tiên bạn cần tạo một thư mục chứa code website. Ví dụ có thể tạo một thư mục trong /var/ww/your-domain với lệnh như dưới
sudo mkdir /var/www/your_domain
Sau đó bạn có thể upload source code lên thư mục này qua FTP hoặc SFTP. Trong ví dụ này mình sẽ tạo 1 file index.html
sudo nano /var/www/your_domain/index.html
Và copy nội dung dưới vào trong file index.html trên

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

Tiếp theo, chúng ta tạo virtual host cho tên miền your_domain bằng lệnh sau
sudo nano /etc/apache2/sites-available/your_domain.conf
Và copy nội dung dưới vào file your_domain.conf

<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>

Sau đó thực hiện lệnh dưới để kích hoạt virtual host vừa cấu hình
sudo a2ensite your_domain.conf
Kiểm tra lại cấu hình apache web server có gặp lỗi không
sudo apache2ctl configtest
Nếu mọi thứ thành công thì bạn sẽ thấy xuất hiện dòng: Syntax OK
Cuối cùng là Restart lại apache để thực hiện thay đổi các cấu hình vừa thao tác
sudo systemctl restart apache2
Bây giờ chúng ta có thể truy cập website theo tên miền với link http://your-domain

CloudFly TechBlog

**Vui lòng đăng nhập để có thể trả lời bài viết này**