Thứ năm, 06/08/2020 | 00:00 GMT+7

Lỗi cấu hình Apache AH00558: Không thể xác định một cách đáng tin cậy tên miền đủ điều kiện của server

Loạt bài hướng dẫn này giải thích cách khắc phục sự cố và sửa chữa một số lỗi phổ biến nhất mà bạn có thể gặp phải khi sử dụng web server Apache .

Một phần của Loạt bài: Các lỗi Apache thường gặp

Mỗi hướng dẫn trong loạt bài này bao gồm mô tả về các lỗi cấu hình Apache, mạng, hệ thống file hoặc quyền phổ biến. Loạt bài này bắt đầu với tổng quan về các lệnh và file log mà bạn có thể sử dụng để khắc phục sự cố Apache. Các hướng dẫn tiếp theo kiểm tra các lỗi cụ thể một cách chi tiết.

Apache AH00558: Could not reliably determine the server's fully qualified domain name thông báo AH00558: Could not reliably determine the server's fully qualified domain name được tạo ra khi Apache không được cấu hình với chỉ thị ServerName global . Thông báo chủ yếu dành cho mục đích thông tin và lỗi AH00558 sẽ không ngăn Apache chạy chính xác.

Trong hướng dẫn này, bạn sẽ học cách phát hiện thông báo AH00558 bằng các phương pháp được mô tả trong hướng dẫnCách khắc phục sự cố các lỗi Apache thường gặp ở phần đầu của loạt bài này. Bạn cũng sẽ học cách cài đặt chỉ thị ServerName để giải quyết thông báo.

Nếu bạn đã xác định rằng server Apache của bạn bị ảnh hưởng bởi thông báo AH00558 và bạn muốn bỏ qua các bước khắc phục sự cố, bước Đặt Chỉ thị ServerName Global ở cuối hướng dẫn này giải thích cách giải quyết thông báo.

Khắc phục sự cố bằng systemctl

Bước đầu tiên khi bạn khắc phục sự cố AH00558: Could not reliably determine the server's fully qualified domain name thông báo AH00558: Could not reliably determine the server's fully qualified domain name là kiểm tra trạng thái của Apache bằng systemctl . Đầu ra từ systemctl trong nhiều trường hợp sẽ chứa tất cả thông tin mà bạn cần để giải quyết thông báo.

Trên các bản phân phối Linux có nguồn root từ Ubuntu và Debian, hãy chạy phần sau để kiểm tra trạng thái của Apache:

Hệ thống Ubuntu và Debian
  • sudo systemctl status apache2.service -l --no-pager

Trên CentOS Fedora và các hệ thống có nguồn root từ RedHat, hãy sử dụng lệnh này để kiểm tra trạng thái của Apache:

Hệ thống CentOS và Fedora
  • sudo systemctl status httpd.service -l --no-pager

Cờ -l sẽ đảm bảo systemctl xuất ra toàn bộ nội dung của một dòng, thay vì thay thế bằng systemctl ( ) cho các dòng dài. Cờ --no-pager sẽ xuất toàn bộ log ra màn hình của bạn mà không cần gọi một công cụ như less chỉ hiển thị màn hình nội dung tại một thời điểm.

Bạn sẽ nhận được kết quả tương tự như sau:

Output
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Wed 2020-07-29 14:30:03 UTC; 33min ago Process: 34 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 46 (apache2) Tasks: 55 (limit: 2344) CGroup: /system.slice/apache2.service ├─46 /usr/sbin/apache2 -k start ├─47 /usr/sbin/apache2 -k start └─48 /usr/sbin/apache2 -k start Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Starting The Apache HTTP Server... Jul 29 14:30:03 68e2cf19f3f1 apachectl[34]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Started The Apache HTTP Server.

Dòng được đánh dấu chứa thông báo AH00558 là dòng quan trọng. Về cơ bản, nó thông báo cho bạn rằng Apache không thể tìm thấy chỉ thị ServerName hợp lệ trong file cấu hình của nó, vì vậy nó sẽ sử dụng địa chỉ IP đầu tiên mà nó phát hiện được. Trong ví dụ này, đó là địa chỉ IP công cộng của server : 172.17.02 . Nếu bạn đang khắc phục sự cố thông báo AH00558, địa chỉ IP được phát hiện có thể khác hoặc có thể là tên DNS con người có thể đọc được.

Nếu kết quả systemctl của bạn chứa giá trị được phát hiện tự động của bất kỳ địa chỉ IP hoặc tên server nào, hãy chuyển đến phần cuối cùng của hướng dẫn này, Đặt Chỉ thị ServerName Global để giải quyết vấn đề. Trong phần đó, bạn sẽ cấu hình Apache với giá trị ServerName mặc định an toàn bằng địa chỉ IP cho localhost : 127.0.0.1 .

Nếu kết quả systemctl của bạn không chỉ ra giá trị mà bạn có thể sử dụng cho chỉ thị ServerName , phần tiếp theo của hướng dẫn này giải thích cách kiểm tra log systemd bằng cách sử dụng journalctl để định vị thông báo AH00558.

Khắc phục sự cố bằng cách sử dụng journalctl

Để kiểm tra log systemd cho Apache, bạn sẽ sử dụng lệnh journalctl . Khi gọi journalctl , có hai cờ cụ thể sẽ giúp bạn xác định vị trí các thư cụ thể nếu có một lượng lớn mục nhập log .

Cờ đầu tiên mà bạn sẽ thêm vào journalctl gọi journalctl là cờ --since today . Nó sẽ giới hạn kết quả của lệnh chỉ để ghi các mục bắt đầu từ 00:00:00 của ngày hiện tại. Sử dụng tùy chọn này sẽ giúp hạn chế dung lượng các mục nhập log mà bạn cần kiểm tra khi kiểm tra lỗi.

Cờ thứ hai mà bạn sẽ sử dụng là cùng một tùy chọn --no-pager mà bạn đã sử dụng với systemctl , sẽ xuất toàn bộ log ra màn hình của bạn cùng một lúc.

Trên Ubuntu và các hệ thống có nguồn root từ Debian, hãy chạy lệnh sau:

  • sudo journalctl -u apache2.service --since today --no-pager

Trên các hệ thống có nguồn root từ CentOS, Fedora và RedHat, hãy sử dụng lệnh này để kiểm tra log :

  • sudo journalctl -u httpd.service --since today --no-pager

Nếu server Apache của bạn đang tạo thông báo AH00558, hãy xem kết quả lệnh journalctl cho các dòng như sau:

Output
-- Logs begin at Wed 2020-07-29 14:30:02 UTC, end at Wed 2020-07-29 14:45:03 UTC. -- . . . Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Starting The Apache HTTP Server... Jul 29 14:30:03 68e2cf19f3f1 apachectl[34]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Started The Apache HTTP Server.

Dòng kết quả thứ hai là thông báo AH00558. Dòng này bao gồm địa chỉ IP công cộng của server , là địa chỉ mà Apache tự động phát hiện và đặt làm mặc định trong thời gian chạy. Với thông báo này là xác nhận về lỗi AH00558, bạn có thể tiến hành Đặt chỉ thị tên ServerName global để giải quyết vấn đề.

Nếu không, phần tiếp theo giải thích cách chẩn đoán thông báo lỗi AH00558 bằng lệnh apachectl .

Khắc phục sự cố bằng apachectl

AH00558: Could not reliably determine the server's fully qualified domain name lỗi AH00558: Could not reliably determine the server's fully qualified domain name có thể được phát hiện bằng cách sử dụng trình apachectl của Apache. Với apachectl bạn có thể nhận được các thư như thế này trước khi reload hoặc khởi động lại Apache, và bạn có thể tránh được việc phải tìm kiếm thông qua systemctljournalctl bản ghi để xác định vị trí lỗi.

Để kiểm tra cấu hình Apache của bạn cho thông báo AH00558, hãy chạy lệnh sau:

  • sudo apachectl configtest

Bạn sẽ nhận được kết quả như sau nếu server của bạn bị ảnh hưởng bởi thông báo lỗi AH00558:

Output
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message Syntax OK

Như với các phần trước trong hướng dẫn này, sử dụng systemctljournalctl để định vị thông báo AH00558, dòng chứa thông báo AH00558, được đánh dấu trong ví dụ trước, là dòng quan trọng. lưu ý địa chỉ IP 172.17.0.2 trong ví dụ này có thể khác trên server của bạn.

Phần tiếp theo của hướng dẫn này giải thích cách đặt lệnh ServerName để giải quyết thông báo lỗi AH00558.

Đặt chỉ thị tên ServerName global

Để giải quyết AH00558: Could not reliably determine the server's fully qualified domain name thông báo lỗi AH00558: Could not reliably determine the server's fully qualified domain name , bạn cần thêm lệnh ServerName vào cấu hình Apache của bạn . Apache sử dụng lệnh ServerName để ánh xạ các yêu cầu HTTP đến với địa chỉ IP hoặc tên server DNS bằng cách sử dụng lệnh VirtualHost để xử lý các yêu cầu cho nhiều trang web bằng cách sử dụng một server duy nhất.

Thông báo lỗi lưu ý chỉ thị ServerName cũng phải được đặt. Làm như vậy sẽ đảm bảo Apache có thể xử lý một cách duyên dáng các yêu cầu đến không ánh xạ tới VirtualHost mà không tạo ra lỗi bổ sung.

Để có khả năng tương thích tối đa với các cấu hình Apache khác nhau, hãy sử dụng giá trị 127.0.0.1 cho chỉ thị ServerName global của bạn. Bạn có thể sử dụng địa chỉ IP hoặc tên DNS khác tương ứng với cấu hình server của bạn nếu cần, nhưng an toàn nhất là sử dụng 127.0.0.1 .

Trên Ubuntu và các hệ thống bắt nguồn từ Debian, hãy mở file /etc/apache2/apache2.conf với quyền root bằng nano hoặc editor bạn muốn :

  • sudo nano /etc/apache2/apache2.conf

Thêm một dòng chứa ServerName 127.0.0.1 vào cuối file :

/etc/apache2/apache2.conf
. . . # Include the virtual host configurations: IncludeOptional sites-enabled/*.conf  # vim: syntax=apache ts=4 sw=4 sts=4 sr noet ServerName 127.0.0.1 

Trên các hệ thống có nguồn root từ CentOS, Fedora và RedHat, hãy mở file /etc/httpd/conf/httpd.conf với quyền root bằng nano hoặc editor bạn muốn :

  • sudo nano /etc/httpd/conf/httpd.conf

Thêm dòng ServerName 127.0.0.1 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 ServerName 127.0.0.1 

Lưu file khi bạn hoàn tất. Nếu bạn đã sử dụng nano , hãy làm như vậy bằng cách nhấn CTRL + X , Y , sau đó ENTER .

Khi bạn đã thêm lệnh ServerName vào cấu hình của bạn , hãy chạy apachectl để kiểm tra xem cấu hình có hợp lệ không.

  • sudo apachectl configtest

Một lệnh gọi cấu hình apachectl configtest thành công sẽ dẫn đến kết quả như thế này:

Output
Syntax OK

Đến đây bạn có thể khởi động lại Apache bằng lệnh systemctl restart thích hợp cho bản phân phối Linux của bạn.

Trên Ubuntu và các hệ thống bắt nguồn từ Debian, hãy chạy như sau:

  • sudo systemctl restart apache2.service

Trên các hệ thống có nguồn root từ CentOS, Fedora và RedHat sử dụng lệnh này để khởi động lại Apache:

  • sudo systemctl restart httpd.service

Sau khi bạn khởi động lại Apache, thông báo lỗi AH00558 sẽ không còn xuất hiện trong log của bạn nữa. Bạn có thể xác nhận thông báo được tắt tiếng bằng cách chạy bất kỳ lệnh nào trong ba systemctl , journalctl hoặc apachectl được trình bày trong hướng dẫn này.

Kết luận

Trong hướng dẫn này, bạn đã tìm hiểu về AH00558: Could not reliably determine the server's fully qualified domain name thông báo lỗi AH00558: Could not reliably determine the server's fully qualified domain name . Mặc dù những thông báo này không ngăn Apache chạy, nhưng chúng có thể được giải quyết bằng cách cài đặt chỉ thị ServerName .

Bạn đã học cách tìm kiếm thông báo lỗi AH00558 bằng lệnh systemctl , journalctlapachectl . Cuối cùng, bạn đã học cách chỉnh sửa cấu hình Apache của bạn trên các bản phân phối Linux khác nhau để tắt tiếng thông báo.

Nếu bạn muốn tìm hiểu thêm về cách Apache sử dụng chỉ thị ServerName , tài liệu Apache về Server ảo dựa trên tên sẽ giải thích chỉ thị chi tiết hơn.


Tags:

Các tin trước

Cách bảo mật Apache bằng Let's Encrypt trên Ubuntu 18.04 2020-08-06
Lỗi cấu hình Apache AH02572: Không thể cấu hình ít nhất một chứng chỉ và khóa 2020-08-06
Lỗi mạng Apache AH00072: make_sock: không thể liên kết với địa chỉ 2020-07-30
Cách khắc phục các lỗi Apache thường gặp 2020-07-30
Lỗi cấu hình Apache AH00526: Lỗi cú pháp 2020-07-30
Cách tạo chứng chỉ SSL tự ký cho Apache trong Ubuntu 20.04 2020-07-06
Cách tạo chứng chỉ SSL tự ký cho Apache trên CentOS 8 2020-06-30
Cách bảo mật Apache bằng Let's Encrypt trên CentOS 8 2020-06-29
Cách cấu hình Apache HTTP với Sự kiện MPM và PHP-FPM trên Ubuntu 18.04 2020-05-13
Cách cài đặt web server Apache trên CentOS 8 [Quickstart] 2020-05-08