Server Apache HTTP là một trong những web server phổ biến nhất hiện nay, với nhiều tính năng mạnh mẽ như các module load động, hỗ trợ đa phương tiện và khả năng tích hợp dễ dàng với nhiều loại phần mềm. Bài viết này sẽ hướng dẫn chi tiết cách cài đặt web server Apache trên Ubuntu 20.04.
Đ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.
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.
Để cài đặt Apache trên Ubuntu 20.04, bạn cần sử dụng một máy chủ Ubuntu 20.04 có cấu hình phù hợp. Nếu chưa có máy chủ, bạn có thể tham khảo các gói VPS của Vietnix. Với nhiều lựa chọn về cấu hình và giá cả phù hợp, Vietnix là một lựa chọn uy tín và tin cậy để bạn triển khai các ứng dụng và dịch vụ của bạn hiệu quả.
Vietnix hiện đang cung cấp các gói VPS đa dạng như VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp và VPS NVMe. Đặc biệt, VPS Vietnix có nhiều ưu điểm như tốc độ cao, ổn định, backup tự động hàng tuần, hỗ trợ nhiều hệ điều hành bao gồm cả Ubuntu 20.04, quản trị đơn giản và kích hoạt VPS ngay sau khi đăng ký.
Khi đăng ký gói VPS tại Vietnix, bạn còn được tặng theme & plugin WordPress trị giá đến 26.000.000 VND. Hãy liên hệ với Vietnix ngay để được tư vấn chi tiết.
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.
Ngoài những thông tin trên, bạn có thể tham khảo:
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.
Sau khi đã nắm được cách cài đặt Apache trên Ubuntu 20.04, bạn có thể liên hệ với Vietnix để được tư vấn lựa chọn các gói VPS phù hợp để triển khai theo hướng dẫn. Vietnix hiện đang là nhà cung cấp dịch vụ VPS hàng đầu và uy tín tại Việt Nam, với những thành tựu đáng kể như:
- 10 năm kinh nghiệm cung cấp dịch vụ VPS.
- Đồng hành với hơn 50.000 khách hàng trong và ngoài nước.
- Hơn 100.000 dịch vụ đã được kích hoạt.
- Đã nhận được giải thưởng “Thương hiệu Việt Nam xuất sắc 2022”.
- 97% khách hàng sử dụng VPS tại Vietnix đánh giá 5 sao và giới thiệu cho người quen.
Chỉ cần bạn đưa ra nhu cầu, Vietnix sẽ tư vấn giải pháp phù hợp cho bạn. Liên hệ ngay!
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
- Hotline: 1800 1093 – 07 088 44444
- Email: sales@vietnix.com.vn
Lời kết
Qua bài viết này, bạn đã cài đặt và cấu hình thành công web server Apache. Apache cung cấp rất nhiều tùy chọn khác nhau để cung cấp nội dung tùy vào nhu cầu sử dụng. Nếu có bất kỳ thắc mắc nào khác, hãy để lại ở phần comment bên dưới để được Vietnix hỗ trợ nhanh nhất.