Cài đặt Apache trên Ubuntu 22.04 - Install Apache on Ubuntu 22.04

Khi bạn đã hoàn tất việc thiết lập này, đăng nhập bằng tài khoản người dùng không phải là root và tiến hành bước đầu tiên.

Hướng dẫn install Apache Ubuntu 22.04

Bước 1: Install Apache Ubuntu 22.04

Apache có sẵn trong kho lưu trữ phần mềm mặc định của Ubuntu, cho phép bạn cài đặt nó bằng các công cụ quản lý gói thông thường.

Bắt đầu bằng cách cập nhật chỉ mục gói cục bộ để phản ánh những thay đổi mới nhất từ nguồn gốc:

$ sudo apt update

Sau đó, cài đặt gói apache2:

$ sudo apt install apache2

Sau khi xác nhận cài đặt, apt sẽ cài đặt Apache và tất cả các phụ thuộc cần thiết.

Bước 2: Điều chỉnh tưởng lửa

Trước khi kiểm tra Apache, bạn cần phải sửa đổi cài đặt tường lửa để cho phép truy cập từ bên ngoài vào các cổng web mặc định. Nếu bạn đã tuân theo hướng dẫn trong các yêu cầu tiên quyết, bạn nên cấu hình một tường lửa UFW để hạn chế truy cập vào máy chủ của bạn.

Trong quá trình cài đặt, Apache đã đăng ký với UFW để cung cấp một số hồ sơ ứng dụng có thể được sử dụng để kích hoạt hoặc vô hiệu hóa truy cập vào Apache thông qua tường lửa.

Liệt kê các hồ sơ ứng dụng ufw bằng cách chạy lệnh sau:

$ sudo ufw app list

Kết quả của bạn sẽ là một danh sách các hồ sơ ứng dụng:

Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

Như được chỉ ra trong đầu ra, có ba hồ sơ có sẵn cho Apache:

  • Apache: Hồ sơ này mở chỉ cổng 80 (lưu lượng web bình thường, không mã hóa).
  • Apache Full: Hồ sơ này mở cả hai cổng 80 (lưu lượng web bình thường, không mã hóa) và cổng 443 (lưu lượng được mã hóa TLS/SSL).
  • Apache Secure: Hồ sơ này mở chỉ cổng 443 (lưu lượng được mã hóa TLS/SSL).

Nên khuyến nghị bạn kích hoạt hồ sơ hạn chế nhất mà vẫn cho phép lưu lượng đã cấu hình. Vì bạn chưa cấu hình SSL cho máy chủ của mình trong hướng dẫn này, bạn chỉ cần cho phép lưu lượng trên cổng 80:

$ sudo ufw allow 'Apache'

Bạn có thể xác minh thay đổi bằng cách kiểm tra trạng thái:

$ sudo ufw status

Kết quả đầu ra sẽ cung cấp một danh sách lưu lượng HTTP được cho phép:

Output
Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)

Như được chỉ ra trong đầu ra, hồ sơ đã được kích hoạt để cho phép truy cập vào máy chủ web Apache.

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

Ở cuối quá trình install Apache Ubuntu 22.04, Ubuntu sẽ khởi động Apache. Máy chủ web sẽ được bật và hoạt động.

Đảm bảo dịch vụ này đang hoạt động bằng cách chạy lệnh cho hệ thống init systemd:

$ sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
Active: active (running) since Tue 2022-04-26 15:33:21 UTC; 43s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 5089 (apache2)
Tasks: 55 (limit: 1119)
Memory: 4.8M
CPU: 33ms
CGroup: /system.slice/apache2.service
├─5089 /usr/sbin/apache2 -k start
├─5091 /usr/sbin/apache2 -k start
└─5092 /usr/sbin/apache2 -k start

Như được xác nhận bởi đầu ra này, dịch vụ đã được khởi động thành công. Tuy nhiên, cách tốt nhất để kiểm tra điều này là yêu cầu một trang từ Apache.

Bạn có thể truy cập trang chào mừng mặc định của Apache để xác nhận rằng phần mềm đang hoạt động đúng cách thông qua địa chỉ IP của máy chủ. Nếu bạn không biết địa chỉ IP của máy chủ của mình, bạn có thể lấy nó bằng một vài cách khác nhau từ dòng lệnh.

Hãy thử gõ các lệnh sau tại dòng lệnh máy chủ của bạn:

$ hostname -I

Bạn sẽ nhận được một số địa chỉ cách nhau bằng dấu cách. Bạn có thể thử mỗi địa chỉ này trong trình duyệt web của bạn để xác định xem chúng có hoạt động không.

Một lựa chọn khác là sử dụng công cụ icanhazip.com miễn phí. Đây là một trang web mà khi truy cập, nó sẽ trả về địa chỉ IP công cộng của máy tính bạn dựa trên thông tin từ một vị trí khác trên internet:

$ curl -4 icanhazip.com

Khi bạn có địa chỉ IP của máy chủ, nhập nó vào thanh địa chỉ của trình duyệt:

http://your_server_ip

Bạn sẽ thấy trang web mặc định của Apache trên Ubuntu 22.04 như sau:

Cài đặt Apache trên Ubuntu 22.04 - Install Apache Ubuntu 22.04

Trang này cho biết rằng Apache đang hoạt động đúng cách. Nó cũng bao gồm một số thông tin cơ bản về các tệp và thư mục quan trọng của Apache.

Bước 4: Quản lý quy trình Apache

Bây giờ khi máy chủ web của bạn đã được khởi động và hoạt động, hãy xem xét một số lệnh quản lý cơ bản sử dụng systemctl.

Để dừng máy chủ web của bạn, chạy lệnh:

$ sudo systemctl stop apache2

Để khởi động máy chủ web khi nó đã bị tắt, chạy lệnh:

$ sudo systemctl start apache2

Để tắt và sau đó khởi động lại dịch vụ, chạy lệnh:

$ sudo systemctl restart apache2

Nếu bạn chỉ đang thay đổi cấu hình mà không muốn ngắt kết nối, Apache thường có thể tải lại mà không cần ngắt kết nối. Để làm điều này, sử dụng lệnh sau:

$ sudo systemctl reload apache2

Mặc định thì Apache được cấu hình để tự động khởi động khi máy chủ khởi động. Nếu điều này không phù hợp với bạn, bạn có thể tắt chế độ này bằng cách chạy lệnh:

$ sudo systemctl disable apache2

Để bật lại dịch vụ tự khởi động khi máy chủ khởi động, chạy lệnh sau:

$ sudo systemctl enable apache2

Bây giờ, Apache sẽ tự khởi động khi máy chủ khởi động lại.

Bước 5: Cài đặt Virtual Hosts (được khuyến nghị)

Khi sử dụng máy chủ web Apache, bạn có thể sử dụng các virtual host (tương tự các khối máy chủ trong Nginx) để đóng gói các chi tiết cấu hình và chứa nhiều tên miền từ một máy chủ duy nhất. Ví dụ này sẽ thiết lập một tên miền gọi là your_domain, nhưng bạn nên thay thế nó bằng tên miền riêng của bạn.

Apache trên Ubuntu 22.04 có một khối máy chủ được kích hoạt theo mặc định được cấu hình để phục vụ tài liệu từ thư mục /var/www/html. Mặc dù điều này hoạt động tốt cho một trang web duy nhất nhưng có thể trở nên phức tạp nếu bạn đang lưu trữ nhiều trang web.

Thay vì sửa đổi /var/www/html, hãy tạo cấu trúc thư mục bên trong /var/www cho trang web your_domain của bạn và để /var/www/html ở nguyên vị trí như thư mục mặc định sẽ được phục vụ nếu yêu cầu từ máy khách không khớp với bất kỳ trang web nào khác.

Tạo thư mục cho your_domain như sau:

$ sudo mkdir /var/www/your_domain

Tiếp theo, gán quyền sở hữu của thư mục cho người dùng bạn đang đăng nhập hiện tại bằng biến môi trường $USER:

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

Quyền truy cập của thư mục gốc web của bạn nên là đúng nếu bạn chưa thay đổi giá trị umask của mình, đó là giá trị mặc định của quyền truy cập tệp tin. Để đảm bảo rằng quyền của bạn là chính xác và cho phép chủ sở hữu đọc, ghi và thực thi tệp tin, trong khi chỉ cấp quyền đọc và thực thi cho các nhóm, người khác. Bạn có thể nhập lệnh sau:

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

Tiếp theo, tạo một trang index.html mẫu bằng cách sử dụng nano hoặc trình soạn thảo yêu thích của bạn:

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

Bên trong, thêm mã HTML mẫu sau:

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

Lưu và đóng tệp khi bạn hoàn thành. Nếu bạn đang sử dụng nano, bạn có thể làm điều này bằng cách nhấn CTRL + X, sau đó Y và ENTER.

Để Apache có thể phục vụ nội dung này, cần tạo một tệp ảo host với các chỉ thị chính xác. Thay vì sửa đổi trực tiếp tệp cấu hình mặc định tại /etc/apache2/sites-available/000-default.conf, hãy tạo một tệp mới tại /etc/apache2/sites-available/your_domain.conf:

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

Thêm vào khối cấu hình sau đây, tương tự như mặc định nhưng đã được cập nhật cho thư mục và tên miền mới của bạn:

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

Chú ý rằng chúng ta đã cập nhật DocumentRoot đến thư mục mới và ServerAdmin đến một địa chỉ email mà người quản trị trang web your_domain có thể truy cập. Bên cạnh đó, thêm hai chỉ thị: ServerName, thiết lập tên miền cơ sở sẽ phù hợp với định nghĩa máy chủ ảo này và ServerAlias, xác định các tên bổ sung khác sẽ phù hợp như thể chúng là tên cơ sở.

Lưu và đóng tệp khi bạn hoàn thành.

Bây giờ kích hoạt tệp này bằng công cụ a2ensite:

$ sudo a2ensite your_domain.conf

Vô hiệu hóa trang web mặc định được định nghĩa trong 000-default.conf:

$ sudo a2dissite 000-default.conf

Tiếp theo, kiểm tra lỗi cấu hình bằng lệnh:

$ sudo apache2ctl configtest

Bạn nên nhận được đầu ra sau:

Output
. . .
Syntax OK

Khởi động lại Apache để thực hiện các thay đổi:

$ sudo systemctl restart apache2

Apache bây giờ sẽ phục vụ tên miền của bạn. Bạn có thể kiểm tra điều này bằng cách truy cập http://your_domain, nơi bạn sẽ thấy một cái gì đó tương tự như sau:

Cài đặt Apache trên Ubuntu 22.04 - Install Apache Ubuntu 22.04

Bước 6: Làm quen với các tệp và thư mục quan trọng của Apache

Bây giờ bạn đã biết cách quản lý dịch vụ Apache, hãy dành một vài phút để làm quen với một số thư mục và tệp quan trọng sau đây.

Nội dung:

  • /var/www/html: Thư mục nội dung web thực tế, theo mặc định chỉ bao gồm trang web Apache mặc định bạn đã thấy trước đó được phục vụ từ thư mục /var/www/html. Điều này có thể thay đổi bằng cách sửa các tệp cấu hình Apache.

Cấu hình máy chủ:

  • /etc/apache2: Thư mục cấu hình Apache. Tất cả các tệp cấu hình Apache đều nằm ở đây.
  • /etc/apache2/apache2.conf: Tệp cấu hình chính của Apache. Điều này có thể được sửa đổi để thay đổi cấu hình toàn cục của Apache. Tệp này chịu trách nhiệm tải nhiều tệp khác trong thư mục cấu hình.
  • /etc/apache2/ports.conf: Tệp này xác định các cổng mà Apache sẽ lắng nghe. Theo mặc định, Apache lắng nghe trên cổng 80 và bổ sung lắng nghe trên cổng 443 khi một mô-đun cung cấp khả năng SSL được kích hoạt.
  • /etc/apache2/sites-available/: Thư mục, nơi các máy chủ ảo cho từng trang web có thể được lưu trữ. Apache sẽ không sử dụng các tệp cấu hình được tìm thấy trong thư mục này trừ khi chúng được liên kết với thư mục sites-enabled. Thông thường, tất cả cấu hình khối máy chủ được thực hiện trong thư mục này và sau đó được kích hoạt bằng cách liên kết với thư mục khác với lệnh a2ensite.
  • /etc/apache2/sites-enabled/: Thư mục, nơi lưu trữ các máy chủ ảo đã được kích hoạt cho từng trang web. Thông thường, những máy chủ này được tạo bằng cách liên kết đến các tệp cấu hình được tìm thấy trong thư mục sites-available bằng lệnh a2ensite. Apache đọc các tệp cấu hình và liên kết được tìm thấy trong thư mục này khi nó khởi động hoặc tải lại để 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ó mối quan hệ giống như thư mục sites-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áy chủ ảo. Các tệp trong thư mục conf-available có thể được kích hoạt bằng lệnh a2enconf và vô hiệu hóa bằng lệnh a2disconf.
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: Các thư mục này chứa các mô-đun có sẵn và đã được kích hoạt, tương ứng. Các tệp kết thúc bằng .load chứa các đoạn để tải các mô-đun cụ thể, trong khi các tệp kết thúc bằng .conf chứa cấu hình cho các mô-đun đó. Các mô-đun có thể được kích hoạt và vô hiệu hóa bằng cách sử dụng các lệnh a2enmod và a2dismod.

Nhật ký máy chủ:

  • /var/log/apache2/access.log: Theo mặc định, mọi yêu cầu đến máy chủ web của bạn sẽ được ghi lại trong tệp nhật ký này, trừ khi Apache được cấu hình khác.
  • /var/log/apache2/error.log: Mặc định thì tất cả các lỗi sẽ được ghi lại trong tệp này. Chỉ thị LogLevel trong cấu hình Apache xác định mức độ chi tiết của nhật ký lỗi.

Bây giờ bạn đã cài đặt install Apache Ubuntu 22.04 của mình, bạn có nhiều tùy chọn cho loại nội dung bạn có thể phục vụ và các công nghệ bạn có thể sử dụng để tạo trải nghiệm phong phú hơn.

Mọi người cùng tìm kiếm: install apache2 ubuntu 22.04, cài apache trên ubuntu, install apache ubuntu 22.04, apache ubuntu, apache2 ubuntu, apache2, how to install apache on ubuntu 22.04, apache install ubuntu, install httpd on ubuntu 22.04