Apache là một web server phổ biến được sử dụng rộng rãi nhờ tính ổn định, hiệu năng và khả năng tùy chỉnh cao. Việc cài đặt Apache trên Ubuntu 20.04 tương đối đơn giản, giúp bạn nhanh chóng triển khai các ứng dụng web. Trong bài viết này, mình sẽ hướng dẫn chi tiết cách cài đặt web server Apache trên Ubuntu 20.04.
Những điểm chính cần nắm
- Cần user non-root có quyền sudo và tường lửa đã được kích hoạt trên Ubuntu 20.04 để cài đặt Apache.
- Hướng dẫn cài đặt và cấu hình Apache gồm 6 bước: cài đặt, chỉnh tường lửa, kiểm tra, quản lý tiến trình, thiết lập Virtual Host và tìm hiểu các file/thư mục quan trọng.
- Vietnix với 12 năm kinh nghiệm và hơn 20,000 dịch vụ, cung cấp đa dạng giải pháp VPS đáp ứng linh hoạt mọi nhu cầu hiệu suất và ngân sách của khách hàng.
Điều kiện để cài đặt web server Apache trên Ubuntu 20.04
Để làm theo các bước trong hướng dẫn này, trước tiên bạn cần thiết lập một user non-root với quyền sudo. Bên cạnh đó server cũng cần kích hoạt sẵn tường lửa.

Trong trường hợp có sẵn tài khoản non-root trước đó, hãy đăng nhập và bắt đầu bài hướng dẫn.
Cách cài đặt web server Apache trên Ubuntu 20.04
Bước 1: Cài đặt web server Apache
Apache có thể được cài đặt trực tiếp từ repo của Ubuntu. Trước tiên hãy cập nhật index gói local để áp dụng các thay đổi mới nhất (sẽ cần chờ trong thời gian ngắn tùy thuộc các gói cần thiết trạng thái phiên bản từng gói):
sudo apt update
Sau đó chạy lệnh dưới đây để cài đặt package apache2
:
sudo apt install apache2
Bây giờ apt
sẽ cài đặt apache
và các dependency cần thiết.
Bước 2: Thay đổi cài đặt tường lửa
Trước khi kiểm tra Apache, bạn cần chỉnh sửa một số cấu hình tường lửa để cho phép truy cập từ bên ngoài vào port mặc định của web. Ở dưới đây Vietnix sẽ đề cập việc tường lửa cấu hình bằng UFW.
Trong quá trình cài đặt, Apache sẽ tự đăng ký một số profile ứng dụng trong UFW để cho phép hoặc chặn quyền truy cập đến Apache qua tường lửa.
Bạn có thể dùng lệnh sau để xem các profile ufw
hiện có:
sudo ufw app list
Output sẽ là danh sách các profile ứng dụng:
Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
Theo như output thì có ba profile của Apache:
- Apache: Chỉ mở port 80 (lưu lượng không được mã hóa).
- Apache Full: Mở port 80 và port 443 (lưu lượng được mã hóa bằng TLS/SSL).
- Apache Secure: Chỉ mở port 443 (được mã hóa bằng TLS/SSL).
Đến bước này ta vẫn chưa cấu hình SSL cho server nên bạn chỉ cần cho phép các lưu lượng trên port 80:
sudo ufw allow 'Apache'
Sau đó kiểm tra thay đổi:
sudo ufw status
Output sẽ hiển thị danh sách lưu lượng HTTP được cho phép trên server:
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
Bước 3: Kiểm tra web server
Sau khi cài đặt xong thì Ubuntu sẽ tự khởi động Apache. Bạn có thể kiểm tra trạng thái của dịch vụ bằng lệnh sau:
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
Bên cạnh đó, bạn cũng có thể thử truy cập landing page mặc định của Apache để xác nhận rằng phần mềm vẫn đang chạy bình thường qua địa chỉ IP của server. Nếu không biết địa chỉ IP thì bạn có thể chạy lệnh dưới đây trong command prompt của server:
hostname -I
Sau đó màn hình sẽ trả về một số địa chỉ, ngăn cách nhau bởi khoảng trắng. Bạn có thể thử lần lượt từng địa chỉ trong đó để tìm được IP của server.
Một cách khác nữa là dùng công cụ Icanhazip, cho phép xem địa chỉ IP public của server:
curl -4 icanhazip.com
Sau khi có được địa chỉ IP của server, hãy nhập vào trong thanh địa chỉ của trình duyệt web:
http://your_server_ip
Màn hình sẽ hiển thị trang web mặc định của Ubuntu 20.04.

Trang này cho biết rằng Apache vẫn đang hoạt động bình thường. Bên cạnh đó trang cũng cung cấp một số thông tin về những file Apache quan trọng và vị trí các thư mục.
Bước 4: Quản lý tiến trình Apache
Sau khi cài đặt và khởi chạy web server, bạn có thể bắt đầu tìm hiểu một số lệnh quản lý cơ bản bằng công cụ systemctl
ở trong bước này.
Chạy lệnh sau để dừng web server:
sudo systemctl stop apache2
Để khởi động server:
sudo systemctl start apache2
Để restart dịch vụ:
sudo systemctl restart apache2
Nếu bạn chỉ thực hiện các thay đổi cấu hình trên web server thì Apache có chế độ reload mà không cần ngắt kết nối bằng lệnh sau:
sudo systemctl reload apache2
Theo mặc định, Apache được cấu hình để tự khởi động mỗi khi server boot. Bạn có thể disable tính năng này bằng lệnh:
sudo systemctl disable apache2
Nếu muốn bật lại tính năng vừa rồi:
sudo systemctl enable apache2
Bước 5: Thiết lập Virtual Host
Khi sử dụng web server Apache, bạn có thể sử dụng các virtual host (tương tự như các server block – khối server – trong Nginx) để đóng gói các chi tiết cấu hình và lưu trữ nhiều miền từ một server. Trong ví dụ này, Vietnix sẽ thiết lập một miền vietnixtest, bạn có thể thay thế thành tên miền tương ứng của riêng mình.
Apache trên Ubuntu 20.04 đã enable sẵn một server block, được cấu hình để cung cấp tài liệu từ thư mục /var/www/html
. Nếu chỉ host một trang thì không có vấn đề gì, nhưng đối với số lượng trang lớn thì sẽ khó quản lý. Thay vì chỉnh sửa trực tiếp /var/www/html
thì bạn nên tạo một cấu trúc thư mục trong /var/www
cho trang vietnixtest, để nguyên /var/www/html
làm thư mục mặc định để cung cấp nếu request của client không khớp với bất kỳ trang nào.
Tạo thư mục cho vietnixtest như sau:
sudo mkdir /var/www/vietnixtest
Sau đó, gán quyền truy cập thư mục bằng biến môi trường $USER
:
sudo chown -R $USER:$USER /var/www/vietnixtest
Quyền truy cập các root của web nên chính xác nếu bạn chưa thay đổi bất kỳ giá trị umask nào. Để đảm bảo cho phép chủ sở hữu quyền đọc, ghi và thực thi, đồng thời cho quyền đọc và thực thi đối với group và những user khác thì bạn có thể dùng lệnh sau:
sudo chmod -R 755 /var/www/vietnixtest
Sau đó tạo một trang mẫu index.html
bằng một text editor bất kỳ:
sudo nano /var/www/vietnixtest/index.html
Ở bên trong, thêm đoạn HTML sau:
<html>
<head>
<title>Welcome to vietnixtest!</title>
</head>
<body>
<h1>Success! The vietnixtest virtual host is working!</h1>
</body>
</html>
Sau đó lưu rồi đóng lại file.
Để Apache có thể cung cấp nội dung thì bạn cần tạo một file virtual host với các directive chính xác. Thay vì chỉnh sửa trực tiếp file cấu hình trong /etc/apache2/sites-available.000-default.conf
thì bạn có thể tạo một file mới trong /etc/apache2/sites-available/vietnixtest.conf
:
sudo nano /etc/apache2/sites-available/vietnixtest.conf
Sau đó paste đoạn code dưới đây:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName vietnixtest.com
ServerAlias www.vietnixtest.com
DocumentRoot /var/www/vietnixtest
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Trong đó DocumentRoot
đã được cập nhật thành directory mới, còn ServerAdmin
được đặt thành địa chỉ email và admin của trang vietnixtest được quyền truy cập. Bên cạnh đó ta cũng đã thêm hai directive: ServerName
để thiết lập domain cơ sở khớp với định nghĩa virtual host, và ServerAlias
dùng để định nghĩa các tên khác nên được khớp như những têm cơ sở.
Lưu và đóng lại file sau khi hoàn tất.
Bây giờ bạn có thể enable file bằng công cụ a2ensite
:
sudo a2ensite vietnixtest.conf
Disable trang mặc định được định nghĩa trong 000-default.conf
:
sudo a2dissite 000-default.conf
Sau đó kiểm tra lỗi cấu hình nếu có:
sudo apache2ctl configtest
Nếu output là Syntax OK
thì không có lỗi gì xảy ra.
Cuối cùng là restart lại Apache để áp dụng các thay đổi:
sudo systemctl restart apache2
Bây giờ thì Apache đã bắt đầu cung cấp nội dung cho tên miền của bạn. Bạn có thể vào trang http://vietnixtest
để kiểm tra.
Bước 6: Làm quen với một số file và directory quan trọng trong Apache
Nội dung:
/var/www/html
: Nội dung web thực tế, theo mặc định chỉ bao gồm trang Apache mặc định mà bạn đã thấy trước đó, được cung cấp ngoài thư mục/var/www/html
. Bạn có thể thay đổi thiết lập bằng cách thay đổi các file cấu hình của Apache.
Cấu hình server:
/etc/apache2
: Thư mục cấu hình Apache. Tất cả các file cấu hình Apache đều nằm trong thư mục này./etc/apache2/apache2.conf
: File cấu hình chính của Apache. Người dùng có thể chỉnh sửa file này để thay đổi cấu hình global của Apache. File này chịu trách nhiệm load nhiều file khác trong thư mục cấu hình./etc/apache2/ports.conf
: File này chỉ định các port mà Apache sẽ nghe. Theo mặc định, Apache chỉ nghe trên port 80 và có thể cả 443 nếu module cung cấp SSL được bật./etc/apache2/sites-available/
: Nơi có thể lưu trữ các virtual host trên mỗi website. Apache sẽ không sử dụng các file cấu hình được tìm thấy trong thư mục này trừ khi được liên kết với thư mụcsites-enabled
. Thông thường, tất cả cấu hình server block được thực hiện trong thư mục này, sau đó được kích hoạt bằng cách liên kết với thư mục khác bằng lệnha2ensite
./etc/apache2/sites-enabled/
: Thư mục lưu trữ các virtual host đã được enable trên mỗi trang. Các thư mục này thường được tạo bằng cách liên kết với các file cấu hình trong thư mụcsites-available
vớia2ensite
. Apache đọc các file cấu hình và các liên kết được tìm thấy trong thư mục này khi nó khởi động hoặc reload để biên dịch một cấu hình hoàn chỉnh./etc/apache2/conf-available/
,/etc/apache2/conf-enabled/
: Các thư mục này có cùng mối quan hệ với các thư mụcsites-available
vàsites-enabled
, nhưng được sử dụng để lưu trữ các đoạn cấu hình không thuộc về một virtual host. Các file trong thư mụcconf-available
có thể được enable bằng lệnha2enconf
và disable bằng lệnha2disconf
./etc/apache2/mods-available/
,/etc/apache2/mods-enabled/
: Các thư mục này lần lượt chứa các module khả dụng và đã được enable. Các file kết thúc bằng.load
chứa các đoạn (fragment) để tải các module cụ thể, còn các file kết thúc bằng.conf
chứa cấu hình cho các module đó. Người dùng có thể enable và disable các module lần lượt bằng lệnha2enmod
vàa2dismod
.
Server Log:
/var/log/apache2/access.log
: Theo mặc định thì mọi request đến web server đều được ghi lại trong file log, trừ khi Apache được cấu hình để làm theo cách khác./var/log/apache2/error.log
: Theo mặc định thì mọi lỗi đều được ghi trong file này. DirectiveLogLevel
trong cấu hình Apache chỉ định mức độ chi tiết của bản ghi lỗi.
Vietnix – Đối tác uy tín cho dịch vụ VPS tại Việt Nam
Với hơn 12 năm hoạt động trong lĩnh vực Hosting và VPS, Vietnix đã ghi dấu ấn với hơn 20,000 dịch vụ được kích hoạt. Hiện tại, Vietnix mang đến các lựa chọn phong phú như VPS AMD, VPS GPU, VPS NVMe, VPS SSD, VPS Giá Rẻ, đáp ứng mọi nhu cầu từ hiệu suất cao đến chi phí tối ưu. Nếu bạn đang tìm kiếm giải pháp VPS chất lượng, hãy thuê VPS từ Vietnix để trải nghiệm sự ổn định và hiệu quả vượt trội.
Thông tin liên hệ:
- Hotline: 18001093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/
Trên đây là hướng dẫn chi tiết về cách cài đặt web server Apache trên Ubuntu 20.04. Hy vọng bài viết đã cung cấp cho bạn những kiến thức cần thiết để bắt đầu triển khai các ứng dụng web. Việc nắm vững cách cấu hình và quản lý Apache sẽ giúp bạn vận hành web server một cách hiệu quả. Đừng ngần ngại tìm hiểu thêm về các module và tính năng nâng cao của Apache để tối ưu hóa hiệu suất và bảo mật cho website của bạn.
Mọi người cũng đọc thêm:
Application Server là gì? Tổng hợp kiến thức về App Server từ A-Z
Hướng dẫn cài đặt Nextcloud trên Ubuntu 20.04
Cách sử dụng PostgreSQL với ứng dụng Django trên Ubuntu 20.04
Hướng dẫn sử dụng Docker Compose để cài đặt Laravel đối với phiên bản Ubuntu 20.04
Hướng dẫn cách cài đặt Fathom Analytics trên Ubuntu 20.04