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:
- User không phải root có quyền sudo được cấu hình trên server , hãy cài đặt theo hướng dẫn cài đặt server ban đầu cho CentOS 8 .
- Đảm bảo firewall cơ bản được cấu hình theo Bước 4 của Cài đặt Server Ban đầu với CentOS 8 (được khuyến khích) trong hướng dẫn trên.
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:
● 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 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 .
Bước 4 - Cài đặt Virtual host (Khuyến nghị)
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:
<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:
... # 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 :
<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