Domanda Errore Apache "Impossibile determinare in modo affidabile il nome di dominio completo del server"


Quando riavvio il mio server Apache utilizzando il comando

sudo /etc/init.d/apache2 restart

Ottengo il seguente errore:

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

Il server utilizza 127.0.1.1 invece di 127.0.0.1? Cosa causa questo errore?


385
2018-02-14 13:09


origine




risposte:


13.04 e precedenti

Questo è solo un avvertimento amichevole e non proprio un problema (in quanto qualcosa non funziona).

Se inserisci un

ServerName localhost   

in entrambe httpd.conf o apache2.conf in /etc/apache2 e riavviare apache l'avviso sparirà.

Se hai un nome dentro /etc/hostname puoi anche usare quel nome al posto di localhost.


E usa 127.0.1.1 se è dentro il tuo /etc/hosts:

127.0.0.1 localhost
127.0.1.1 myhostname

Metodo preferito

Risoluzione dei problemi di Apache

Se ottieni questo errore:

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

quindi utilizzare un editor di testo come "sudo nano" nella riga di comando o "gksudo gedit" sul desktop per creare un nuovo file,

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

o

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

Poi aggiungi

ServerName localhost

al file e salvare. Questo può essere fatto in un unico comando con il seguente:

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

Ma su Ubuntu 14.04:

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

Non dimenticare il ".conf" (senza non funzionerà).


470
2018-02-14 13:18



Questo è anche menzionato nella documentazione di installazione di Ubuntu LAMP per Risoluzione dei problemi di Apache. Lì raccomandano di creare un file /etc/apache2/conf.d/fqdn con ServerName localhost dentro - icc97
Ottima risposta - ma ti consiglio anche di inserirlo nella directory conf.d :) - cwd
/etc/apache2/conf.d/ non esiste dopo la mia installazione di lamp-server^ nel 14.04 - redanimalwar
@redanimalwar Per 13.10 e successivi vedi @ Risposta di Starx sotto. - Dan
Per l'ultimo passaggio (creando sym-link in 14.04), consiglierei sudo a2enconf fqdn anche se tecnicamente dovrebbe essere lo stesso. - yoshi


13.10 o più recente

A partire da Apache 2.4 - che è disponibile per impostazione predefinita a partire da 13.10 - non è possibile utilizzare il metodo per aggiungere un file di configurazione nel conf.d directory.

Apache non usa più il conf.d directory. Tutti i file di configurazione sono memorizzati all'interno /etc/apache2/conf-available directory e tutti i file di configurazione ora dovrebbero avere un .conf estensione.

Per risolvere questo messaggio in Apache 2.4, dobbiamo creare un file di configurazione all'interno della directory conf-available. Per esempio servername.conf.

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

E all'interno di questo abbiamo solo bisogno di aggiungere una riga

ServerName localhost

Puoi combinare i due comandi precedenti in uno con:

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

Se si desidera utilizzare un nome di dominio o qualsiasi altro nome a seconda del requisito, è sufficiente sostituirlo localhost con tutto ciò di cui hai bisogno. Quindi devi abilitare questa configurazione. Per questo, è necessario eseguire il seguente comando:

sudo a2enconf servername

a2enconf è un comando per abilitare un file di configurazione in Apache 2.4. Si noti inoltre che servername sul comando precedente è dal nome del file di configurazione servername.conf. Se il tuo file di configurazione era ngenericserver.conf allora dovresti scrivere sudo a2enconf ngenericserver.

Dopo questo ricaricare il server e il messaggio precedente non ti disturberanno più.

sudo service apache2 reload

o

sudo apache2ctl graceful

Ora dopo questo vedrai che il messaggio non verrà più mostrato e il problema verrà risolto.


158
2017-12-26 18:45



Qualcuno sa come far dire Apache quale file di configurazione ha il problema? Non so perché gli sviluppatori non pensano mai a mettere questo nei loro messaggi di errore - non ci vuole quasi molto codice! - John Y
Se ho un fqdm su Internet per questo server, è questo il posto in cui metterlo? cioè dovrei sostituire myhost.org al posto di localhost? - CPBL
@CPBL Questo sarà il nome del server predefinito per tutti i siti. Se hai solo un sito, questo è tutto ciò che devi fare. Se sul server sono presenti più siti, sarà inoltre necessario aggiungere la direttiva servername per ciascun sito nella rispettiva configurazione dell'host virtuale. - Dan
Funziona su 14.04 LTS. - Parto
Il tuo link citato sembra morto, per favore aggiusta. - Fredrick Gauss


  • Apri un terminale
  • Apri il /etc/apache2/httpd.conf file:

    sudo editor /etc/apache2/httpd.conf # [1]
    
  • Di default, sarebbe vuoto. Basta aggiungere la seguente riga:

    ServerName localhost
    
  • Salva il file ed esci

  • Riavvia il server

    sudo service apache2 restart
    

[1] Avvia l'editor predefinito, vedi sudo update-alternatives --config editor


24
2018-02-14 13:17



dopo l'esecuzione dell'ultimo comando si verifica il seguente errore ** Riavvio del server Web apache2 / usr / sbin / apache2ctl: 87: ulimit: limite di impostazione dell'errore (Operazione non consentita) / usr / sbin / apache2ctl: 87: ulimit: limite di impostazione dell'errore (Operazione not consentito) (13) Autorizzazione negata: make_sock: impossibile eseguire il binding all'indirizzo 0.0.0.0:80 nessun socket di ascolto disponibile, spegnimento Impossibile aprire i registri Azione 'start' non riuscita. Il log degli errori di Apache potrebbe contenere più informazioni. [fail] ** @ green7 - Deepu
prova 'sudo service apache2 restart' - waterloo2005


Apache2 può anche ottenere il FQDN da un hostname di sistema configurato correttamente piuttosto che codificato nel file di configurazione di apache. Anche l'hardcoding causerà confusione se il nome host cambia. In realtà non ne hai bisogno ServerName direttive in httpd.conf o qualsiasi file di configurazione di apache.

Metti il ​​seguente in /etc/hosts:

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

dove hostname.domainname.com è il nome FQDN della tua macchina.

Insieme a un hostname correttamente configurato in /etc/hostname/ o con hostnamectl, questo aiuterà anche altri servizi sulla tua macchina a funzionare correttamente (cioè il prompt di accesso, che mostra This is hostname.domainname.com invece di This is hostname.unknown_domain.)


22
2017-09-18 18:05



+1 per "un hostname di sistema configurato correttamente". Volevo configurare il server correttamente. Questo ha anche corretto il mio errore nel registro [warn] RSA server certificate CommonName (CN) <fqdn> does NOT match server name!? - transistor1
Pensi che questo dovrebbe funzionare con Apache 2.2.22? Sto ancora ottenendo "Impossibile determinare in modo affidabile il nome di dominio completo del server, utilizzando 127.0.1.1 per ServerName" - David Winiecki
È hostname localhost dovrebbe essere myubuntuservername localhost? O la stringa letterale hostname localhost? Non eri chiaro nella tua risposta - Jonathan
Questa dovrebbe essere la risposta accettata. Sembra che potrebbe essere necessario associare il nome FQDN all'indirizzo IP statico anziché 127.0.0.1, anche se. - Skippy le Grand Gourou


Nella nuova versione di apache2 basta seguire il comando in questo modo:

sudo nano /etc/apache2/apache2.conf

Aggiungi la seguente nuova riga di fine file:

ServerName localhost

Quindi riavviare apache2:

sudo service apache2 restart

E 'fatto.


15
2018-04-16 06:38





Trovo che sia un po 'meglio creare un nuovo file in /etc/conf.d quello di modificare entrambi apache2.conf o httpd.conf.

È una preferenza personale che mantiene le mie modifiche di configurazione separate dal pacchetto di distribuzione. Quindi gli aggiornamenti sono meno complicati.

Creo il file /etc/apache2/conf.d/AAserverName e contiene solo:

ServerName myhost.mycomain.tld

Anche gli altri suggerimenti funzionano sicuramente.


4
2017-09-06 15:31





In Ubuntu 16.04:

sudo -i

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

2
2018-04-17 13:26





Inserisci ServerName localhost

A

 sudo leafpad /etc/apache2/apache2.conf

 sudo leafpad /etc/apache2/httpd.conf

Non è un errore .. È solo un promemoria di un amico


1
2017-07-05 09:36





Su Ubuntu 11.10, ho visto questo messaggio, insieme a un avvio appeso perché il mio disco era pieno. Uno dei file di registro era diventato canaglia. Probabilmente non c'era un problema con Apache, ma questo messaggio era l'ultimo indizio fornito prima che il boot si bloccasse.

Per risolvere il problema, ho dovuto avviare in modalità di ripristino e rimuovere il file di registro ribelle.


0
2018-05-07 15:17





specificando ServerName localhost nei file di configurazione al di fuori delle sezioni dell'host virtuale è il modo per farlo.

Alcune altre risposte suggeriscono che dovresti modificare /etc/apache2/httpd.conf. Questo file viene sovrascritto quando Apache viene aggiornato da apt. Per la configurazione di Apache che non vuoi sovrascrivere, devi creare un nuovo file. Ecco il "modo Debian" per modificare questa configurazione:

# 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

Questo è fondamentalmente lo stesso della risposta di Stark, ma in un modulo di script facile da copiare e incollare. Inizialmente avevo pubblicato questo messaggio in una domanda contrassegnata come duplicata: https://askubuntu.com/a/432408


0
2018-03-24 13:02





Se stai usando bash e vuoi delle dipendenze minime (e vuoi solo un one-liner per il tuo script di punti di accesso se si utilizza Docker come me), queste due opzioni dovrebbero funzionare.

Se vuoi localhost:

echo "ServerName localhost" >> /etc/apache2/apache2.conf

Se si desidera il nome host esistente:

echo "ServerName $(cat /etc/hostname)" >> /etc/apache2/apache2.conf

Questo usa il operatori di reindirizzamento bash per aggiungere la stringa alla fine del file. Echo inserisce automaticamente la nuova riga, quindi tutto è pronto.


0
2017-11-17 19:23