2013-08-17 5 views
8

So che questa domanda è stata esaminata molto, ma le soluzioni qui non risolvono.httpd: Impossibile determinare in modo affidabile il nome di dominio completo del server

Cominciamo con un po 'di background Info:

OS X 10.8.4 Apache 2.2.22

Il problema: Ottengo questo errore nella console e Apache non riesce a trovare il mio localhost , ma inizia ok. Strano.

[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 

Quindi normalmente questo potrebbe indicare che il mio ServerName non viene impostato correttamente. Bene:/e ho provato con diverse varianti come Specter.local, localhost, ecc.

Ecco una copia del mio /private/etc/httpd.conf & questo è lo stesso per/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 

mio file host è configurato come segue:

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 

Nel mio /private/etc/apache2/users/ta.conf è il seguente

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

Non so che altro dovrebbe essere configurato davvero. Funzionava ma postare l'aggiornamento 10,7, non ha mai funzionato e ora che sto cercando di risolverlo sta facendo la mia testa.

Fatemi sapere se avete bisogno di maggiori informazioni.

+1

Il codice che emette quel messaggio viene eseguito solo quando la configurazione globale non ha alcun nomeserver, sei sicuro che quei file di configurazione siano in uso? – covener

risposta

8

Ignora TUTTO il consiglio sull'impostazione di ServerNames. IMHO questa è una falsa pista. Apache sta cercando di utilizzare componenti di sistema standard per determinare un FQDN e non trovare nulla di adatto. Certo, potresti sovvertire questo processo aggiungendo una direttiva globalmente ad Apache, ma penso che questo stia trattando il sintomo. Si dovrebbe avere le direttive ServerName nei blocchi virtualhost, ovviamente.

Invece, modifica il file hosts e assicurati di avere un FQDN elencato lì. Ho visto vari suggerimenti sulla sintassi per il particolare 127 * linea, ma penso che non importa in che ordine le cose sono in, fino a quando v'è un nome di dominio completo elencato:

127.0.0.1  localhost.localdomain localhost  foo.example.com 

Questo ha funzionato per me e sembrava molto più importante di tutti gli altri "ha funzionato per me!" upvotes su post raccomandandoti di modificare httpd.conf e così via. Spero che questo aiuti e che non vengo svalutato. Se non sei d'accordo, si prega di spiegare perché con esempi. Grazie.

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

volta Apache in grado di determinare nome di dominio completo del sistema, sarà quindi leggere le vostre direttive specifiche per i vostri ServerName NameBasedHosts.

+3

"assicurati di avere un FQDN elencato lì" - Ho visto questo in molte risposte a questa domanda. Con il nome di dominio pienamente qualificato, vuoi dire che posso effettivamente usare foo.example.com o il dominio qui deve essere un * reale * dominio? Non capisco mai se foo.example.com significhi 'il tuo attuale nome di dominio acquistato e di proprietà qui' o specificamente 'inserisci qui qualsiasi nome di dominio che segue il modello FQDN, cioè www.mynonexistentdomain.com'. Qualcuno potrebbe fornire chiarezza? – Wittner

1

Recentemente ho avuto lo stesso problema su un mac e anche se ho modificato il mio file host come Spanky suggerisce (e penso che sia anche necessario), ho anche avuto bisogno di modificare il mio httpd.conf.

nel caso in cui qualcuno ha questo in futuro ciò che segue può lavorare

nel file/etc/apache2/httpd.conf aggiungere questa riga dopo riga del ServerAdmin [email protected]

ServerName your-favorite-server-name 

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

1

La seguente riga nel file httpd.conf è corretto:

ServerName localhost 

Il problema è che il macOS è il file sbagliato (non /private/etc/httpd.conf).

per trovare la posizione giusta del file di configurazione di Apache httpd.conf, eseguire:

apachectl -t -D DUMP_INCLUDES 

quindi doppio controllo se ServerName sia commentata e impostato a localhost.