Câu hỏi Lỗi Apache “Không thể xác định một cách đáng tin cậy tên miền đầy đủ của máy chủ”


Khi tôi khởi động lại máy chủ Apache bằng lệnh

sudo /etc/init.d/apache2 restart

Tôi nhận được lỗi sau đây:

Restarting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting apache2:
Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

Máy chủ có sử dụng 127.0.1.1 thay vì 127.0.0.1 không? Điều gì gây ra lỗi này?


385
2018-02-14 13:09


gốc




Các câu trả lời:


13.04 tuổi trở lên

Đây chỉ là một cảnh báo thân thiện và không thực sự là một vấn đề (như trong một cái gì đó không hoạt động).

Nếu bạn chèn

ServerName localhost   

trong cả hai httpd.conf hoặc là apache2.conf trong /etc/apache2 và khởi động lại apache thông báo sẽ biến mất.

Nếu bạn có một cái tên bên trong /etc/hostname bạn cũng có thể sử dụng tên đó thay vì localhost.


Và nó sử dụng 127.0.1.1 nếu nó ở trong của bạn /etc/hosts:

127.0.0.1 localhost
127.0.1.1 myhostname

Phương pháp ưa thích

Gỡ rối Apache

Nếu bạn gặp lỗi này:

apache2: Could not determine the server's fully qualified domain name, 
using 127.0.0.1 for ServerName

sau đó sử dụng trình soạn thảo văn bản như "sudo nano" tại dòng lệnh hoặc "gksudo gedit" trên màn hình để tạo tệp mới,

sudo nano /etc/apache2/conf.d/fqdn

hoặc là

gksu "gedit /etc/apache2/conf.d/fqdn"

sau đó thêm

ServerName localhost

vào tệp và lưu. Điều này tất cả có thể được thực hiện trong một lệnh duy nhất với những điều sau đây:

 echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn

Nhưng trên Ubuntu 14.04:

 echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/fqdn.conf
 sudo a2enconf fqdn

Đừng quên ".conf" (nếu không sẽ không hoạt động).


470
2018-02-14 13:18



Điều này cũng được đề cập trong tài liệu thiết lập Ubuntu LAMP cho Gỡ rối Apache. Ở đó họ khuyên bạn nên tạo một tập tin /etc/apache2/conf.d/fqdn với ServerName localhost trong đó - icc97
Câu trả lời rất hay - nhưng tôi cũng khuyên bạn nên đặt nó trong thư mục conf.d :) - cwd
/etc/apache2/conf.d/ không tồn tại sau khi cài đặt lamp-server^ năm 14.04 - redanimalwar
@redanimalwar Dành cho 13.10 và mới hơn, hãy xem Câu trả lời của @ Starx phía dưới. - Dan
Bước cuối cùng (tạo sym-link trong 14.04) sudo a2enconf fqdn mặc dù về mặt kỹ thuật thì nó cũng giống nhau. - yoshi


13.10 trở lên

Theo Apache 2.4 - có sẵn theo mặc định là 13.10 - bạn không thể sử dụng phương pháp về cách thêm tệp cấu hình vào conf.d danh mục.

Apache không còn sử dụng conf.d danh mục. Tất cả các tệp cấu hình được lưu trữ bên trong /etc/apache2/conf-available và tất cả các tệp cấu hình bây giờ sẽ có .conf sự mở rộng.

Để giải quyết thông báo này trong Apache 2.4, chúng ta phải tạo một tệp cấu hình bên trong thư mục có sẵn. Ví dụ servername.conf.

sudo vi /etc/apache2/conf-available/servername.conf

Và bên trong, chúng ta chỉ cần thêm một dòng

ServerName localhost

Bạn có thể kết hợp hai lệnh trước trong một với:

echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf

Nếu bạn muốn sử dụng một tên miền hoặc bất kỳ tên nào khác tùy thuộc vào yêu cầu của nó, bạn chỉ cần thay thế localhost với bất cứ điều gì bạn cần. Tiếp theo bạn phải kích hoạt cấu hình này. Đối với điều này, bạn cần phải chạy lệnh sau:

sudo a2enconf servername

a2enconf là một lệnh để kích hoạt tệp cấu hình trong Apaches 2.4. Cũng lưu ý rằng servername trên lệnh trên là từ tên của tệp cấu hình servername.conf. Nếu tệp cấu hình của bạn là ngenericserver.conf thì bạn sẽ phải viết sudo a2enconf ngenericserver.

Sau khi tải lại máy chủ và thông báo trên sẽ không còn lỗi cho bạn nữa.

sudo service apache2 reload

hoặc là

sudo apache2ctl graceful

Bây giờ sau này, bạn sẽ thấy rằng tin nhắn sẽ không được hiển thị một lần nữa và vấn đề sẽ được cố định.


158
2017-12-26 18:45



Có ai biết làm thế nào để làm cho Apache nói cái nào tập tin cấu hình nó có vấn đề với? Tôi không biết tại sao các nhà phát triển không bao giờ nghĩ rằng để đưa điều này vào các thông báo lỗi của họ - nó hầu như không mất nhiều mã! - John Y
Nếu tôi có một fqdm Internet cho máy chủ này, đây có phải là nơi để đặt nó? tức là tôi nên thay thế myhost.org thay cho localhost? - CPBL
@CPBL Đây sẽ là tên máy chủ mặc định cho tất cả các trang web. Nếu bạn chỉ có một trang web, thì đó là tất cả những gì bạn cần làm. Nếu bạn có nhiều trang web trên máy chủ của mình, bạn cũng sẽ cần thêm chỉ thị servername cho mỗi trang web trong cấu hình máy chủ ảo tương ứng của chúng. - Dan
Hoạt động trên 14.04 LTS. - Parto
Liên kết được trích dẫn của bạn có vẻ đã chết, vui lòng sửa. - Fredrick Gauss


  • Mở một thiết bị đầu cuối
  • Mở /etc/apache2/httpd.conf tập tin:

    sudo editor /etc/apache2/httpd.conf # [1]
    
  • Theo mặc định, nó sẽ trống. Chỉ cần thêm dòng sau:

    ServerName localhost
    
  • Lưu file và thoát

  • Khởi động lại máy chủ

    sudo service apache2 restart
    

[1] Khởi chạy trình chỉnh sửa mặc định, xem sudo update-alternatives --config editor


24
2018-02-14 13:17



sau khi thực thi lệnh cuối, lỗi sau xảy ra ** Khởi động lại máy chủ web apache2 / usr / sbin / apache2ctl: 87: ulimit: giới hạn cài đặt lỗi (Hoạt động không được phép) / usr / sbin / apache2ctl: 87: ulimit: giới hạn cài đặt lỗi (Thao tác không được phép) (13) Quyền bị từ chối: make_sock: không thể liên kết đến địa chỉ 0.0.0.0:80 không có ổ cắm nghe, tắt Không thể mở nhật ký Hành động 'bắt đầu' không thành công. Nhật ký lỗi Apache có thể có thêm thông tin. [thất bại] ** @ green7 - Deepu
thử 'sudo dịch vụ apache2 khởi động lại' - waterloo2005


Apache2 cũng có thể lấy FQDN từ một tên máy chủ hệ thống được cấu hình đúng hơn là mã hóa cứng vào tệp cấu hình apache. Hardcoding nó cũng sẽ gây nhầm lẫn nếu tên máy chủ thay đổi. Bạn thực sự không cần bất kỳ ServerName chỉ thị trong httpd.conf hoặc bất kỳ tệp cấu hình apache nào.

Đặt các mục sau vào /etc/hosts:

# IPv4 and IPv6 localhost aliases
127.0.0.1 hostname.domainname.com  hostname  localhost
::1       hostname.domainname.com  hostname  localhost

Ở đâu hostname.domainname.com là FQDN của máy của bạn.

Cùng với tên máy chủ được định cấu hình đúng trong /etc/hostname/ Hoặc với hostnamectl, điều này cũng sẽ giúp các dịch vụ khác trên máy của bạn chạy đúng cách (tức là lời nhắc đăng nhập, hiển thị This is hostname.domainname.com thay vì This is hostname.unknown_domain.)


22
2017-09-18 18:05



1 cho "tên máy chủ hệ thống được định cấu hình đúng". Tôi muốn cấu hình máy chủ đúng cách. Điều này cũng đã sửa lỗi của tôi trong nhật ký [warn] RSA server certificate CommonName (CN) <fqdn> does NOT match server name!? - transistor1
Bạn có nghĩ rằng điều này sẽ làm việc với Apache 2.2.22? Tôi vẫn nhận được "Không thể xác định một cách đáng tin cậy tên miền đầy đủ của máy chủ, sử dụng 127.0.1.1 cho Tên máy chủ" - David Winiecki
Là hostname localhost đáng lẽ là myubuntuservername localhost? Hoặc chuỗi chữ hostname localhost? Bạn không rõ ràng trong câu trả lời của bạn - Jonathan
Đây sẽ là câu trả lời được chấp nhận. Dường như bạn có thể cần phải liên kết FQDN với địa chỉ IP tĩnh thay vì 127.0.0.1, Tuy nhiên. - Skippy le Grand Gourou


Trong phiên bản mới của apache2 bạn chỉ cần làm theo lệnh như thế này:

sudo nano /etc/apache2/apache2.conf

Thêm cuối dòng dòng mới của tệp:

ServerName localhost

Sau đó khởi động lại apache2:

sudo service apache2 restart

Xong rôi.


15
2018-04-16 06:38





Tôi thấy nó tốt hơn một chút để tạo một tệp mới trong /etc/conf.d điều đó để sửa đổi apache2.conf hoặc là httpd.conf.

Đó là một sở thích cá nhân giữ các thay đổi cấu hình của tôi tách biệt với gói phân phối. Vì vậy, các bản cập nhật ít phức tạp hơn.

Tôi tạo tập tin /etc/apache2/conf.d/AAserverName và nó chỉ chứa:

ServerName myhost.mycomain.tld

Những gợi ý khác chắc chắn cũng có tác dụng.


4
2017-09-06 15:31





Trong Ubuntu 16.04:

sudo -i

echo 'ServerName localhost' > /etc/apache2/conf-available/server-name.conf
a2enconf server-name

2
2018-04-17 13:26





Thêm vào ServerName localhost

Đến

 sudo leafpad /etc/apache2/apache2.conf

 sudo leafpad /etc/apache2/httpd.conf

Nó không phải là một lỗi .. Nó chỉ là một lời nhắc nhở bạn bè


1
2017-07-05 09:36





Trên Ubuntu 11.10, tôi thấy thông báo này, cùng với một khởi động treo xảy ra vì đĩa của tôi đã đầy. Một trong các tệp nhật ký đã bị lừa đảo. Có lẽ đã không thực sự là một vấn đề với Apache, nhưng thông điệp này là đầu mối cuối cùng được đưa ra trước khi khởi động treo.

Để khắc phục sự cố, tôi phải khởi động vào chế độ khôi phục và xóa tệp nhật ký hướng ra.


0
2018-05-07 15:17





Chỉ định ServerName localhost trong các tệp cấu hình của bạn bên ngoài phần lưu trữ ảo là cách để thực hiện việc này.

Một số câu trả lời khác cho thấy bạn nên sửa đổi /etc/apache2/httpd.conf. Tệp này bị ghi đè khi apache được nâng cấp từ apt. Đối với cấu hình Apache mà bạn không muốn bị ghi đè, bạn nên tạo một tệp mới. Đây là "cách Debian" để thay đổi cấu hình này:

# create the configuration file in the "available" section
echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf
# enable it by creating a symlink to it from the "enabled" section
sudo a2enconf servername
# restart the server
sudo service apache2 restart

Đây là cơ bản giống như câu trả lời của Stark, nhưng trong một dễ dàng để sao chép và dán hình thức kịch bản. Ban đầu tôi đã đăng câu hỏi này trong câu hỏi được đánh dấu là trùng lặp: https://askubuntu.com/a/432408


0
2018-03-24 13:02