Hướng dẫn chi tiết cách cài đặt web server Apache trên Ubuntu 20.04

Lượt xem
Home

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.

Điều kiện để 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

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:

  1. Apache: Chỉ mở port 80 (lưu lượng không được mã hóa).
  2. Apache Full: Mở port 80 và port 443 (lưu lượng được mã hóa bằng TLS/SSL).
  3. 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.

Màn hình trang web mặc định của Apache
Màn hình trang web mặc định của Apache

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ục sites-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ệnh a2ensite.
  • /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ục sites-available với a2ensite. 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ục sites-availablesites-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ục conf-available có thể được enable bằng lệnh a2enconf và disable bằng lệnh a2disconf.
  • /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ệnh a2enmoda2dismod.

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. Directive LogLevel 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.

Chia sẻ lên

Theo dõi trên

Logo Google new

Đánh giá

5/5 - (173 bình chọn)

Hưng Nguyễn

Kết nối với mình qua

Icon Quote
Icon Quote
Đăng ký nhận tin
Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vietnix

Bình luận

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận