2013-08-17 14 views
8

Wiem, że to pytanie było często sprawdzane, ale rozwiązania nie rozwiązują ich.httpd: Nie można wiarygodnie określić w pełni kwalifikowanej nazwy domeny serwera

Zacznijmy trochę informacji tła:

OS X 10.8.4 Apache 2.2.22

Problem: otrzymuję ten błąd w konsoli i Apache nie mogę znaleźć mojego localhost , ale zaczyna się dobrze. Dziwne.

[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 

Zwykle wskazywałoby to, że moja nazwa serwera nie jest ustawiona poprawnie. Cóż, to jest:/i próbowałem z różnymi wariantami, takimi jak Spectre.local, localhost, itp.

Oto kopia mojego /private/etc/httpd.conf & to jest to samo dla/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 

Mój plik hosta jest ustawiony w następujący sposób:

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 

W moim /private/etc/apache2/users/ta.conf jest następujący

# 
# 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> 

Nie jestem pewien, co jeszcze należy skonfigurować. Kiedyś pracował, ale po aktualizacji 10.7, to nigdy nie zadziałało, a teraz, gdy próbuję go rozwiązać, wpada mi to do głowy.

Daj mi znać, jeśli potrzebujesz więcej informacji.

+1

Kod, który powoduje, że komunikat pojawia się tylko wtedy, gdy konfiguracja globalna nie ma nazwy serwera, czy jesteś pewien, że te pliki konfiguracyjne są używane? – covener

Odpowiedz

8

Zignoruj ​​WSZYSTKIE porady dotyczące ustawiania nazw serwerów. IMHO to czerwony śledź. Apache próbuje użyć standardowych komponentów systemu, aby określić FQDN i nie znalazł niczego odpowiedniego. Oczywiście, możesz obalić ten proces, dodając dyrektywę globalnie do Apache, ale metinks traktuje to jako objaw. Musisz powinien mieć mieć oczywiście dyrektywy ServerName w blokach virtualhost.

Zamiast edytować plik hosts i upewnij się, że masz FQDN tam wymienione. Widziałem różne sugestie na temat składni dla danej linii 127 *, ale myślę, że to nie ma znaczenia w jakiej kolejności są rzeczy, tak długo jak istnieje FQDN wymienione:

127.0.0.1  localhost.localdomain localhost  foo.example.com 

ten pracował dla mnie i wydawało się bardziej do rzeczy, niż wszystkie inne "pracował dla mnie!" upvotes na stanowiskach polecających edytować plik httpd.conf i takie. Mam nadzieję, że to pomoże i że nie zostanie mi przyznane obniżenie. Jeśli się nie zgadzasz, proszę podać przyczyny z przykładami. Dzięki.

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

Po Apache może ustalić FQDN systemu, to wtedy czytać swoje specyficzne dyrektyw ServerName dla NameBasedHosts.

+3

"upewnij się, że masz tam FQDN" - widziałem to w wielu odpowiedziach na to pytanie. Czy w pełni kwalifikowana nazwa domeny oznacza, że ​​mogę faktycznie korzystać z domeny foo.example.com, czy też domena musi być * faktyczną * domeną? Nigdy nie rozumiem, czy foo.example.com oznacza "faktycznie kupioną i posiadaną nazwę domeny tutaj", czy też "umieść tutaj dowolną nazwę domeny zgodną z wzorcem FQDN, np. Www.mynonexistentdomain.com". Czy ktoś może zapewnić jasność? – Wittner

1

Niedawno miałem ten sam problem na Macu i chociaż edytowałem plik mojego hosta, jak sugeruje Spanky (i myślę, że to też jest konieczne), potrzebowałem również edytować mój httpd.conf.

w przypadku ktoś ma to w przyszłości następujące mogą pracować

w pliku/etc/apache2/httpd.conf dodać tę linię po linii ServerAdmin [email protected]

ServerName your-favorite-server-name 

źródło: https://blog.cloudtroopers.com/upgrade-osx-1010-yosemite-and-keep-apache-functional

1

Poniższy wiersz w pliku httpd.conf jest poprawna:

ServerName localhost 

Problem polega na tym, że na macOS jest nieprawidłowym plikiem (nie /private/etc/httpd.conf).

Aby znaleźć odpowiednią lokalizację httpd.conf Apache pliku konfiguracyjnego, uruchom:

apachectl -t -D DUMP_INCLUDES 

następnie dokładnie sprawdzić czy ServerName jest komentarzem i ustawić localhost.

Powiązane problemy