httpd: Không thể xác định một cách đáng tin cậy tên miền đủ điều kiện của máy chủ, sử dụng 127.0.0.1 cho ServerName


172

Tôi đã thử khởi động lại máy chủ Apache của mình trên CentOS 5.0 và nhận được thông báo này:

httpd: Không thể xác định một cách đáng tin cậy tên miền đủ điều kiện của máy chủ, sử dụng 127.0.0.1 cho ServerName

Đây là /etc/hoststập tin:

127.0.0.1    server4-245    server4-245.com    localhost.localdomain localhost
::1        localhost6.localdomain6 localhost6

Đây là /etc/sysconfig/networktập tin:

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=server4-245

Tôi cũng có cái này trong tệp httpd.conf của Apache:

ServerName localhost

Tuy nhiên, tôi vẫn nhận được thông báo lỗi đầu tiên khi khởi động lại Apache.


1
Đảm bảo bạn chỉnh sửa đúng httpd.conf. Thông thường ServerName xylà tốt.
KingCrunch

Câu trả lời:


95

Tệp máy chủ của bạn không bao gồm FQDN hợp lệ, cũng không phải là localhostFQDN. Một FQDN phải bao gồm một phần tên máy chủ, cũng như một phần tên miền. Ví dụ: dưới đây là một FQDN hợp lệ:

host.server4-245.com

Chọn một FQDN và đưa cả hai vào /etc/hoststệp của bạn trên cả địa chỉ IPv4 và IPv6 bạn đang sử dụng (trong trường hợp của bạn localhosthoặc 127.0.0.1) và thay đổi ServerNamecấu hình httpd của bạn để khớp.

/ etc / host:

127.0.0.1    localhost.localdomain localhost host.server4-245.com
::1          localhost.localdomain localhost host.server4-245.com

httpd.conf:

ServerName host.server4-245.com

6
Cũng lưu ý rằng bạn sẽ muốn sửa đổi mục HOSTNAME của mình trong tệp / etc / sysconfig / mạng để khớp với tên bạn đã chọn.
Paul Stengel

2
Hừm. Tôi đã có: 127.0.0.1 localhost gondor gondor.localdomain 192.168.0.3 gondor.localdomain nhưng có vẻ như linux không nghĩ rằng gondor.localdomain cũng là một FQDN. Có vấn đề gì với điều đó? Tôi có phải có TLD không?
Adam

Xin chào, tôi đã thử tất cả các cách trên và tôi vẫn nhận được các lỗi tương tự, tôi hoàn toàn không hiểu những gì tôi thiếu ở đây. FQDN của tôi là ak.local.com được đặt theo cùng một cách với câu trả lời của bạn nhưng tôi vẫn nhận được các vấn đề tương tự. Tôi đang chạy trên OSX 10.10
AKFourSeven

1
Tôi thấy rằng: 127.0.0.1 myserver myserver.mydom.com ... etc << không hoạt động 127.0.0.1 myserver.mydom.com myserver ... etc << không hoạt động
Martin

208

Nếu bạn không có httpd.conftrong thư mục /etc/apache2, bạn nên có apache2.conf - chỉ cần thêm:

Tên máy chủ localhost

Sau đó khởi động lại apache2dịch vụ.


2
Hoạt động hoàn hảo trên Ubuntu 12.04 LTS chạy nhiều máy chủ ảo.
Gor

3
Hoạt động hoàn hảo trên Mac OS 10.7.5 chạy nhiều máy chủ ảo.
DudeOnRock

1
Hoạt động trên Mac OS 10.7.5 chạy Virtualbox
iWizard

3
Hoạt động hoàn hảo trên Centos 6.4.
Kel Solaar

7
Hoạt động hoàn hảo trên Centos 6 (phiên bản đám mây), mặc dù httpd.conf đã ở / etc / httpd / conf /
gbarry

64

Sau lần cài đặt ban đầu của máy chủ Apache, tôi đã gặp lỗi sau khi khởi động lại dịch vụ Apache trên Ubuntu 12.04 (Pangolin chính xác)

Giải pháp thực sự đơn giản. Chỉ cần thêm ServerNamechỉ thị vào /etc/apache2/httpd.conf:

sudo nano /etc/apache2/httpd.conf

Thêm vào: ServerName localhost

Cuối cùng khởi động lại máy chủ Apache:

sudo /etc/init.d/apache2 restart

1
Trong CentOS 7, đường dẫn sẽ là /etc/httpd/conf/httpd.conf
Debashis

11

Vì vậy, trong khi điều này được trả lời và được chấp nhận, nó vẫn được đưa ra như một kết quả tìm kiếm hàng đầu và các câu trả lời được đưa ra (sau rất nhiều nghiên cứu) khiến tôi gãi đầu và đào sâu hơn rất nhiều. Vì vậy, đây là một cách bố trí nhanh chóng về cách tôi giải quyết vấn đề.

Giả sử máy chủ của tôi là myserver.myhome.com và địa chỉ IP tĩnh của tôi là 192.168.1.150:

  1. Chỉnh sửa tập tin máy chủ

    $ sudo nano -w /etc/hosts
    
    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    
    127.0.0.1 myserver.myhome.com myserver
    
    192.168.1.150 myserver.myhome.com myserver
    
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    ::1 myserver.myhome.com myserver
    
  2. Chỉnh sửa httpd.conf

    $ sudo nano -w /etc/apache2/httpd.conf
    
    ServerName myserver.myhome.com
    
  3. Chỉnh sửa mạng

    $ sudo nano -w /etc/sysconfig/network HOSTNAME=myserver.myhome.com
    
  4. Kiểm chứng

    $ hostname
    
    (output) myserver.myhome.com
    
    $ hostname -f
    
    (output) myserver.myhome.com
    
  5. Khởi động lại Apache

    $ sudo /etc/init.d/apache2 restart
    

Có vẻ như sự khác biệt bao gồm myserver.myhome.comcả 127.0.0.1 cũng như địa chỉ IP tĩnh 192.168.1.150 trong tệp máy chủ. Tương tự trên Ubuntu Server và CentOS.


9

Trong httpd.conf, tìm kiếm "Tên máy chủ". Nó thường được nhận xét theo mặc định trên Mac. Chỉ cần bỏ ghi chú và điền vào. Hãy chắc chắn rằng bạn cũng có bộ tên / ip được đặt trong / etc / hosts.


Cảm ơn, điều này rất hữu ích. httpd đã không chọn fqdn của tôi trong / etc / hosts và tên máy chủ của tôi có vẻ được cấu hình đúng.
Banjer

8

Hãy chắc chắn rằng bạn đang chỉnh sửa đúng httpd.conf tệp, sau đó sẽ xảy ra lỗi về tên miền của máy chủ không đáng tin cậy (đây là lỗi phổ biến nhất).

Để định vị httpd.conftệp cấu hình Apache của bạn , hãy chạy:

apachectl -t -D DUMP_INCLUDES

Sau đó chỉnh sửa tệp và bỏ ghi chú hoặc thay đổi ServerNamedòng thành:

ServerName localhost

Sau đó khởi động lại apache của bạn bằng cách: sudo apachectl restart


1
"Hãy chắc chắn rằng bạn đang chỉnh sửa đúng tệp ometpd.conf", điều này đã giúp tôi trên macOS. Tôi đã không chỉnh sửa đúng http.conftập tin. Cảm ơn.
Asme chỉ cần


3

Có hai cách để khắc phục lỗi này:

  1. Include /etc/apache2/httpd.conf

    Thêm dòng trên vào tập tin /etc/apache2/apache2.conf

  2. Thêm dòng này vào cuối tệp /etc/apache2/apache2.conf :

    Tên máy chủ localhost


1

Tôi đã giải quyết thông báo tên miền đủ điều kiện trong các trường hợp khác nhau bằng cách thêm tên máy chủ của máy chủ của tôi vào tệp /etc/apache2/httpd.conf và vào /etc/apache2/apache2.conftệp.

Nhập hostname -fvào thiết bị đầu cuối của bạn. Truy vấn này sẽ trả về tên máy chủ của bạn.

Sau đó chỉnh sửa /etc/apache2/httpd.conftệp (hoặc tạo tệp nếu nó không tồn tại vì một số lý do) và thêm ServerName <your_hostname>.

Ngoài ra, tôi cũng có thể loại bỏ tin nhắn bằng cách thêm ServerName <your_hostname>vào /etc/apache2/apache2.conftập tin.

Nếu mọi việc suôn sẻ, khi bạn khởi động lại Apache, thông báo sẽ biến mất.


1

Hầu hết các câu trả lời đề nghị chỉ cần thêm ServerName localhostvào /etc/apache2/apache2.conf.

Nhưng trích dẫn tài liệu Apache  :

Sự hiện diện của thông báo lỗi này cũng chỉ ra rằng Apache httpd không thể có được tên máy chủ đủ điều kiện bằng cách thực hiện tra cứu ngược lại trên địa chỉ IP của máy chủ của bạn. Mặc dù các hướng dẫn ở trên sẽ loại bỏ cảnh báo trong mọi trường hợp, nhưng cũng nên sửa lỗi phân giải tên của bạn để ánh xạ ngược này hoạt động.

Do đó, thêm một dòng như vậy /etc/hostscó lẽ là một giải pháp mạnh mẽ hơn:

192.0.2.0  foobar.example.com  foobar

Trong đó 192.0.2.0 là địa chỉ IP tĩnh của máy chủ có tênfoobar trongexample.com miền.

Người ta có thể kiểm tra FQDN, ví dụ như với

hostname -A

(phím tắt cho hostname --all-fqdn).


1

Hóa ra tôi gặp vấn đề này và đó là do tôi đã sử dụng "tab" để thụt dòng thay vì dấu cách. Chỉ cần đăng, trong trường hợp nó giúp bất cứ ai.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.