Trang chủ / Chuyên đề / Cách cài đặt máy chủ Apache trên Centos 8
Thứ hai, 28/09/2020 | 11:34 GMT+7

Cách cài đặt máy chủ Apache trên Centos 8

Apache HTTP là máy chủ web được sử dụng rộng rãi nhất trên thế giới. Nó cung cấp nhiều tính năng mạnh mẽ bao gồm các mô-đun, hỗ trợ phương tiện truyền thông mạnh mẽ và tích hợp rộng rãi với các phần mềm phổ biến khác. Trong hướng dẫn này, ta sẽ cài đặt máy chủ web Apache với CentOS 8 .

Chuẩn bị

Bạn cần các thành phần sau để hoàn thành hướng dẫn này:

Bước 1 - Cài đặt Apache 

Apache có sẵn trong repository mặc định của CentOS, nghĩa là bạn có thể cài đặt nó bằng trình quản lý gói dnf .

Cài đặt gói Apache:

  • sudo dnf install httpd

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

Bằng cách hoàn thành Bước 4 của Hướng dẫn Cài đặt Server Ban đầu với CentOS 8 được đề cập trong phần yêu cầu, bạn đã cài đặt firewalld trên server để phục vụ các truy cập qua HTTP.

Nếu bạn cấu hình Apache để đi qua HTTPS, cần mở cổng 443 bằng cách bật dịch vụ https :

  • sudo firewall-cmd --permanent --add-service=https

Tiếp theo, reload firewall để các rule (luật) mới này có hiệu lực:

  • sudo firewall-cmd --reload

Sau khi firewall reload, bạn đã sẵn sàng khởi động dịch vụ và kiểm tra web server.

Bước 2 - Kiểm tra Web Server

Apache không tự động khởi động trên CentOS sau khi quá trình cài đặt hoàn tất, vì vậy bạn cần start Apache theo cách thủ công:

  • sudo systemctl start httpd

Xác minh dịch vụ đang chạy bằng lệnh sau:

  • sudo systemctl status httpd

Bạn sẽ nhận được trạng thái active khi dịch vụ đang chạy:

Output
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disa>
   Active: active (running) since Thu 2020-04-23 22:25:33 UTC; 11s ago
     Docs: man:httpd.service(8)
 Main PID: 14219 (httpd)
   Status: "Running, listening on: port 80"
    Tasks: 213 (limit: 5059)
   Memory: 24.9M
   CGroup: /system.slice/httpd.service
           ├─14219 /usr/sbin/httpd -DFOREGROUND
           ├─14220 /usr/sbin/httpd -DFOREGROUND
           ├─14221 /usr/sbin/httpd -DFOREGROUND
           ├─14222 /usr/sbin/httpd -DFOREGROUND
           └─14223 /usr/sbin/httpd -DFOREGROUND

...

Như trên, dịch vụ đã chạy. Tuy nhiên, cách tốt nhất để kiểm tra là gọi một trang từ Apache.

Bạn có thể truy cập trang đích Apache mặc định để xác nhận phần mềm đang chạy đúng thông qua địa chỉ IP. Hãy nhập địa chỉ đó vào thanh địa chỉ của trình duyệt:

http://your_server_ip

Bạn sẽ thấy trang web CentOS 8 Apache mặc định:

Trang Apache mặc định cho CentOS 8

Trang này cho biết Apache đang hoạt động chính xác và gồm một số thông tin cơ bản về các file Apache quan trọng và vị trí folder.

Bước 3 - Quản lý tiến trình Apache

Dịch vụ đã được cài đặt và đang chạy, bây giờ bạn có thể sử dụng các lệnh systemctl khác nhau để quản lý dịch vụ.

Để dừng web server , hãy nhập:

  • sudo systemctl stop httpd

Để khởi động web server khi nó bị dừng, hãy nhập:

  • sudo systemctl start httpd

Để dừng và sau đó bắt đầu lại dịch vụ, hãy nhập:

  • sudo systemctl restart httpd

Nếu chỉ đơn giản là thay đổi cấu hình, Apache có thể reload mà không làm mất kết nối:

  • sudo systemctl reload httpd

Theo mặc định, Apache được cấu hình để khởi động tự động khi server khởi động. Nếu không cần, bạn hãy tắt bằng lệnh:

  • sudo systemctl disable httpd

Để cho phép dịch vụ khởi động khi server khởi động, hãy nhập:

  • sudo systemctl enable httpd

Cấu hình mặc định cho Apache sẽ cho phép server lưu trữ một trang web duy nhất. Nếu lưu trữ nhiều tên domain trên server , bạn cần phải cấu hình các Virtual host trên web server Apache .

Khi sử dụng web server Apache, bạn có thể sử dụng Virtual host để cấu hình nhiều domain trên một server duy nhất. Trong bước này, bạn sẽ cài đặt một domain có tên là example.com , bạn có thể thay thế domain này bằng tên domain của bạn.

Apache trên CentOS 8 có một cấu hình Virtual host được kích hoạt theo mặc định với folder root: /var/www/html . Thay vì sửa đổi /var/www/html , bạn sẽ tạo cấu trúc folder bên trong /var/www cho trang web example.com , giữ nguyên /var/www/html mặc định.

Tạo folder html cho example.com như sau, sử dụng cờ -p để tạo bất kỳ folder nào cần thiết:

  • sudo mkdir -p /var/www/example.com/html

Tạo một folder bổ sung để lưu trữ các file Log cho trang web:

  • sudo mkdir -p /var/www/example.com/log

Tiếp theo, chỉ định quyền sở hữu folder html với biến môi trường $USER :

  • sudo chown -R $USER:$USER /var/www/example.com/html

Đảm bảo root web có các quyền mặc định:

  • sudo chmod -R 755 /var/www

Tiếp theo, tạo một trang index.html mẫu bằng vi hoặc trình soạn thảo nào đó bạn muốn:

  • sudo vi /var/www/example.com/html/index.html

Nhấn i để chuyển sang chế độ INSERT và thêm HTML mẫu sau vào file:

/var/www/example.com/html/index.html
<html>
  <head>
    <title>Welcome to Example.com!</title>
  </head>
  <body>
    <h1>Success! The example.com virtual host is working!</h1>
  </body>
</html>

Lưu file bằng cách nhấn ESC , nhập :wq và nhấn ENTER .

Với folder trang web và file index, bạn đã sẵn sàng để tạo file Virtual host. Các file Virtual host chỉ cấu hình của các trang web riêng biệt và cho web server Apache biết cách phục vụ các yêu cầu domain khác nhau.

Trước khi tạo Virtual host, bạn cần tạo một folder sites-available để lưu trữ chúng. Bạn cũng cần tạo folder sites-enabled để thông báo cho Apache rằng Virtual host đã sẵn sàng đáp ứng truy cập. Folder sites-enabled sẽ chứa các liên kết mềm (softlink) đến các Virtual host. Tạo cả hai folder bằng lệnh sau:

  • sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

Tiếp theo, yêu cầu Apache tìm kiếm các Virtual host trong folder sites-enabled . Để thực hiện điều này, hãy chỉnh sửa file cấu hình chính của Apache, thêm một dòng khai báo folder tùy chọn cho các file cấu hình bổ sung:

  • sudo vi /etc/httpd/conf/httpd.conf

Nhấn viết hoa G để chuyển về cuối file. Sau đó nhấn i để chuyển sang chế độ INSERT và thêm dòng sau vào cuối file:

/etc/httpd/conf/httpd.conf
...
# Supplemental configuration
#
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*.conf

Lưu file khi bạn hoàn tất việc thêm dòng đó. Bây giờ đã có các folder Virtual host, bạn sẽ tạo file Virtual host.

Bắt đầu bằng cách tạo một file mới trong folder sites-available trên sites-available :

  • sudo vi /etc/httpd/sites-available/example.com.conf

Thêm vào đoạn cấu hình sau và thay đổi domain example.com tên domain :

/etc/httpd/sites-available/example.com.conf
<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /var/www/example.com/html
    ErrorLog /var/www/example.com/log/error.log
    CustomLog /var/www/example.com/log/requests.log combined
</VirtualHost>

Thao tác này sẽ cho Apache biết nơi tìm trực tiếp root chứa các file web có thể truy cập. Nó cũng cho Apache biết nơi chứa lỗi và yêu cầu log cho trang web cụ thể này.

Lưu file khi bạn hoàn tất.

Bạn đã tạo các file Virtual host, bạn sẽ kích hoạt chúng để Apache sử dụng. Để thực hiện việc này, hãy tạo một liên kết softlink cho từng Virtual host trong folder sites-enabled :

  • sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

Virtual host hiện đã được cấu hình và sẵn sàng cung cấp nội dung.

Bạn có thể truy cập http://example.com để kiểm tra kết quả (thay example.com bằng domain của bạn)

Kết luận

Trong hướng dẫn trên, bạn đã cài đặt và quản lý web server Apache ở mức cơ bản nhất. Nếu bạn muốn xây dựng ứng dụng hoàn chỉnh hơn, bạn có thể xem bài viết này về cách cấu hình LAMP trên CentOS 8 .



Các tin trước

Tổng quan sử dụng SSH, làm việc với SSH Client - Server 2020-09-28

Cách cài đặt SSH Key trên Centos 8, đăng nhập không cần password! 2020-09-27

Cài đặt bảo mật cơ bản cho Centos 8 2020-09-27

Lập lịch với Crontab trên Centos 8 2020-09-27

Bảo mật Apache với Lets Encrypt trên Centos 8 2020-09-19

Tạo chứng chỉ số tự ký trên Apache Centos 8 (self-signed-ssl-certificate) 2020-09-19

Tối ưu SQL với Index, FullText Search 2020-08-10

Bảo mật Apache với Lets Encrypt 2020-08-06

Cài đặt Node.js trên Ubuntu 18.04 2020-08-06

Thực hành bài LAB Toàn tập Select SQL Query 2020-08-05