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ỗ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:
- 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:
- 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 systemctl
và journalctl
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:
OutputAH00558: 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 systemctl
và journalctl
để đị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 :
. . . # 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 :
. . . # 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:
OutputSyntax 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
, journalctl
và apachectl
. 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.
Các tin liên quan
Cách bảo mật Apache bằng Let's Encrypt trên Ubuntu 18.042020-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 MPM Event 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