2013-08-17 47 views
8

Tôi biết câu hỏi này đã được xem xét rất nhiều, nhưng các giải pháp ở đây không giải quyết chúng.httpd: Không thể xác định một cách đáng tin cậy tên miền đầy đủ của máy chủ

Hãy bắt đầu với một chút thông tin nền:

OS X 10.8.4 Apache 2.2.22

Vấn đề: tôi nhận được lỗi này trong giao diện điều khiển và Apache không thể tìm thấy localhost của tôi , nhưng bắt đầu ok. Kỳ dị.

[Sat Aug 17 13:40:06 2013] [info] mod_ssl/2.2.22 compiled against Server: Apache/2.2.22, Library: OpenSSL/0.9.8r 
httpd: Could not reliably determine the server's fully qualified domain name, using Specter.local for ServerName 

Vì vậy, thông thường điều này sẽ trỏ đến ServerName của tôi không được đặt đúng. Vâng, đó là:/và tôi đã thử với các biến thể khác nhau như Spectre.local, localhost, v.v.

Đây là bản sao /private/etc/httpd.conf & của tôi là như nhau cho/private/etc/apache2 /httpd.conf

# ServerName gives the name and port that the server uses to identify itself. 
# This can often be determined automatically, but we recommend you specify 
# it explicitly to prevent problems during startup. 
# 
# If your host doesn't have a registered DNS name, enter its IP address here. 
# 
ServerName localhost 

file host của tôi là thiết lập như sau:

127.0.0.1 localhost localhost.local 
255.255.255.255 broadcasthost 
127.0.0.1  themill.dev 
127.0.0.1  phpmyadmin.dev 
127.0.0.1  Specter.local 

Trong /private/etc/apache2/users/ta.conf của tôi là sau

# 
# Use name-based virtual hosting. 
# 
NameVirtualHost *:80 
# DEV: THEMILL SITE 
<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot "/Users/ta/Sites/themill/htdocs" 
    ServerName themill.dev 
    ServerAlias *.themill.dev 
    ErrorLog "/Users/ta/Sites/themill/log/error_log" 
    CustomLog "/Users/ta/Sites/themill/log/access_log" common 
</VirtualHost> 

# PHPMYADMIN 
<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot "/Users/ta/Sites/phpmyadmin" 
    ServerName phpmyadmin.dev 
    ServerAlias *.phpmyadmin.dev 
    ErrorLog "/Users/ta/Sites/phpmyadmin/log/error_log" 
    CustomLog "/Users/ta/Sites/phpmyadmin/log/access_log" common 
</VirtualHost> 

Không chắc chắn những gì khác nên được cấu hình thực sự. Nó được sử dụng để làm việc nhưng đăng 10,7 nâng cấp, nó không bao giờ làm việc và bây giờ tôi đang cố gắng giải quyết nó nó làm đầu của tôi.

Hãy cho tôi biết nếu bạn cần thêm thông tin.

+1

Mã phát hành thư đó chỉ chạy khi cấu hình chung không có tên máy chủ, bạn có chắc là các tệp cấu hình đó đang được sử dụng không? – covener

Trả lời

8

Bỏ qua TẤT CẢ lời khuyên về cách đặt ServerNames. IMHO đây là một cá trích đỏ. Apache đang cố gắng sử dụng các thành phần hệ thống tiêu chuẩn để xác định một FQDN và không tìm thấy bất cứ điều gì phù hợp. Chắc chắn, bạn có thể lật đổ quá trình này bằng cách thêm một chỉ thị trên toàn cầu vào Apache, nhưng methinks điều này đang điều trị triệu chứng. Bạn nên có chỉ thị ServerName trong các khối máy chủ ảo của bạn, tất nhiên.

Thay vào đó, hãy chỉnh sửa tệp lưu trữ của bạn và đảm bảo rằng bạn có FQDN được liệt kê ở đó. Tôi đã thấy lời đề nghị khác nhau về cú pháp cho riêng 127 * dòng, nhưng tôi nghĩ rằng nó không có vấn đề gì để mọi thứ đang ở, miễn là có một FQDN niêm yết:

127.0.0.1  localhost.localdomain localhost  foo.example.com 

này làm việc cho tôi và dường như còn quan trọng hơn tất cả những người khác "làm việc cho tôi!" upvotes trên bài viết đề nghị bạn chỉnh sửa httpd.conf và như vậy. Tôi hy vọng điều này sẽ giúp và tôi không nhận được downvoted. Nếu bạn không đồng ý, vui lòng nêu rõ lý do tại sao có các ví dụ. Cảm ơn.

http://wiki.apache.org/httpd/CouldNotDetermineServerName

Khi Apache có thể xác định FQDN của hệ thống, nó sẽ sau đó đọc chỉ thị ServerName cụ thể của bạn cho NameBasedHosts của bạn.

+3

"hãy chắc chắn rằng bạn có một FQDN được liệt kê ở đó" - Tôi đã thấy điều này trong nhiều câu trả lời cho câu hỏi này. Theo Tên miền hoàn toàn đủ điều kiện, ý bạn là tôi thực sự có thể sử dụng foo.example.com hoặc tên miền ở đây phải là miền * thực *? Tôi không bao giờ hiểu được liệu foo.example.com có ​​nghĩa là 'tên miền được mua và sở hữu thực tế của bạn ở đây' hay cụ thể 'đặt bất kỳ tên miền nào ở đây theo mẫu FQDN tức là www.mynonexistentdomain.com'. Ai đó có thể cung cấp sự rõ ràng? – Wittner

1

Gần đây tôi đã gặp vấn đề tương tự trên mac và mặc dù tôi đã chỉnh sửa tệp lưu trữ của mình như Spanky gợi ý (và tôi nghĩ điều này cũng cần thiết), tôi cũng cần chỉnh sửa httpd.conf của mình.

trong trường hợp bất kỳ ai có điều này trong tương lai, những điều sau đây có thể hoạt động

trong/etc/apache2/httpd của bạn.conf thêm dòng này sau khi ServerAdmin [email protected] dòng

ServerName your-favorite-server-name 

nguồn: https://blog.cloudtroopers.com/upgrade-osx-1010-yosemite-and-keep-apache-functional

1

Các dòng sau trong file httpd.conf của bạn là chính xác:

ServerName localhost 

Vấn đề là trên macOS đó là tệp sai (không phải /private/etc/httpd.conf).

Để tìm vị trí đúng của tập tin cấu hình httpd.conf Apache của bạn, hãy chạy:

apachectl -t -D DUMP_INCLUDES 

séc sau đó kích đúp dù ServerName là không chú thích và thiết lập để localhost.

Các vấn đề liên quan