Erro Apache “Não foi possível determinar com segurança o nome de domínio totalmente qualificado do servidor”

381

Quando eu reinicio meu servidor Apache usando o comando

sudo /etc/init.d/apache2 restart

Eu recebo o seguinte erro:

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

O servidor está usando 127.0.1.1 em vez de 127.0.0.1? O que causa esse erro?

    
por Deepu 14.02.2013 / 14:09

14 respostas

462

13.04 e mais antigos

Este é apenas um aviso amigável e não é realmente um problema (já que algo não funciona).

Se você inserir um

ServerName localhost   

em httpd.conf ou apache2.conf em /etc/apache2 e reinicie o apache, o aviso desaparecerá.

Se você tiver um nome dentro de /etc/hostname , também poderá usar esse nome em vez de localhost .

E ele usa 127.0.1.1 se estiver dentro de seu /etc/hosts :

127.0.0.1 localhost
127.0.1.1 myhostname

Método preferido

  

Solução de problemas do Apache

Se você receber este erro:

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

use um editor de texto como "sudo nano" na linha de comando ou "gksudo gedit" na área de trabalho para criar um novo arquivo,

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

ou

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

adicione

ServerName localhost

para o arquivo e salve. Isso tudo pode ser feito em um único comando com o seguinte:

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

Mas no Ubuntu 14.04:

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

Não esqueça o ".conf" (sem que não funcione).

    
por Rinzwind 14.02.2013 / 14:18
153

13.10 ou mais recente

A partir do Apache 2.4 - que está disponível por padrão a partir de 13.10 - você não pode usar o método sobre como adicionar um arquivo de configuração no diretório conf.d .

O Apache não usa mais o diretório conf.d . Todos os arquivos de configuração são armazenados dentro do diretório /etc/apache2/conf-available e todos os arquivos de configuração devem ter agora uma extensão .conf .

Para resolver esta mensagem no Apache 2.4, temos que criar um arquivo de configuração dentro do diretório conf-available. Por exemplo, servername.conf .

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

E dentro disso só precisamos adicionar uma linha

ServerName localhost

Você pode combinar os dois comandos anteriores em um com:

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

Se você quiser usar um nome de domínio ou qualquer outro nome, dependendo da exigência, basta substituir localhost pelo que você precisar. Em seguida, você precisa ativar essa configuração. Para isso, você precisa executar o seguinte comando:

sudo a2enconf servername

a2enconf é um comando para ativar um arquivo de configuração no Apaches 2.4. Observe também que servername no comando acima é do nome do arquivo de configuração servername.conf . Se o seu arquivo de configuração fosse ngenericserver.conf , você teria que escrever sudo a2enconf ngenericserver .

Depois disso, recarregue o servidor e a mensagem acima não irá mais incomodar você.

sudo service apache2 reload

ou

sudo apache2ctl graceful

Agora, depois disso, você verá que a mensagem não será mostrada novamente e o problema será corrigido.

    
por Starx 26.12.2013 / 19:45
24
  • Abra um terminal
  • Abra o arquivo /etc/apache2/httpd.conf :

    sudo editor /etc/apache2/httpd.conf # [1]
    
  • Por padrão, estaria em branco. Basta adicionar a seguinte linha:

    ServerName localhost
    
  • Salve o arquivo e saia

  • Reinicie o servidor

    sudo service apache2 restart
    

[1] Inicie o editor padrão, consulte sudo update-alternatives --config editor

    
por green 14.02.2013 / 14:17
22

O Apache2 também pode obter o FQDN de um nome de host do sistema configurado adequadamente em vez de codificar permanentemente no arquivo de configuração do apache. Codificar também causará confusão se o nome do host for alterado. Você realmente não precisa de nenhuma ServerName diretivas em httpd.conf ou qualquer arquivo de configuração do apache.

Coloque o seguinte em /etc/hosts :

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

onde hostname.domainname.com é o FQDN da sua máquina.

Juntamente com um nome de host configurado corretamente em /etc/hostname/ ou com hostnamectl , isso também ajudará outros serviços em sua máquina a serem executados corretamente (por exemplo, o prompt de login, mostrando This is hostname.domainname.com em vez de This is hostname.unknown_domain .)

    
por Andrew Mao 18.09.2013 / 20:05
15

Na nova versão do apache2, você apenas segue o comando assim:

sudo nano /etc/apache2/apache2.conf

Adicione o seguinte fim de linha de arquivo:

ServerName localhost

Em seguida, reinicie o apache2:

sudo service apache2 restart

Está feito.

    
por empugandring 16.04.2014 / 08:38
4

Acho um pouco melhor criar um novo arquivo em /etc/conf.d para modificar apache2.conf ou httpd.conf .

É uma preferência pessoal que mantém minhas alterações de configuração separadas do pacote de distribuição. Então as atualizações são menos complicadas.

Eu crio o arquivo /etc/apache2/conf.d/AAserverName e ele contém somente:

ServerName myhost.mycomain.tld

As outras sugestões certamente funcionam também.

    
por areeda 06.09.2013 / 17:31
2

No Ubuntu 16.04:

sudo -i

echo 'ServerName localhost' > /etc/apache2/conf-available/server-name.conf
a2enconf server-name
    
por Eduardo Cuomo 17.04.2017 / 15:26
1

Adicione ServerName localhost

Para

 sudo leafpad /etc/apache2/apache2.conf

 sudo leafpad /etc/apache2/httpd.conf

Não é um erro. É apenas um lembrete de amigo

    
por Serem 05.07.2014 / 11:36
0

No Ubuntu 11.10, vi esta mensagem, juntamente com uma inicialização interrompida que ocorreu porque meu disco estava cheio. Um dos arquivos de log foi desonesto . Provavelmente, não houve realmente um problema com o Apache, mas essa mensagem foi a última dica dada antes da inicialização.

Para corrigir o problema, tive que inicializar no modo de recuperação e remover o arquivo de log rebelde.

    
por nobar 07.05.2013 / 17:17
0

Especificar ServerName localhost em seus arquivos de configuração fora das seções do host virtual é a maneira de fazer isso.

Algumas outras respostas sugerem que você deve modificar /etc/apache2/httpd.conf . Este arquivo é sobrescrito quando o apache é atualizado do apt. Para a configuração do Apache que você não deseja sobrescrever, você deve criar um novo arquivo. Aqui está o "caminho do Debian" para fazer essa mudança de configuração:

# 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

Isso é basicamente o mesmo que a resposta de Stark, mas em um formato de script fácil de copiar e colar. Eu tinha originalmente postado isso em uma pergunta que foi marcada como duplicada: link

    
por Stephen Ostermiller 24.03.2017 / 14:02
0

Se você estiver usando o bash e quiser dependências mínimas (e quiser apenas um one-liner para o seu script de ponto de entrada se você estiver usando o Docker como eu), essas duas opções devem funcionar.

Se você quiser localhost:

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

Se você quiser o nome do host existente:

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

Isso usa os operadores de redirecionamento de bash para anexar o string para o final do arquivo. O eco insere automaticamente a nova linha, então você está pronto.

    
por Andrew Odri 17.11.2017 / 20:23
0

Execute o seguinte comando:

apachectl -t -D DUMP_INCLUDES

para determinar o caminho para o arquivo de configuração httpd.conf , edite esse arquivo e descomente / modifique a linha que especifica o valor da opção ServerName , por exemplo,

ServerName localhost

Para o servidor da web, use o nome DNS registrado (por exemplo, example.com ).

  

Se o seu host não tiver um nome DNS registrado, insira seu endereço IP aqui.

    
por kenorb 23.10.2017 / 14:24
0

No Ubuntu 16.04 :

Adicione ServerName localhost ao arquivo httpd.conf usando o seguinte comando.

sudo vi  /etc/apache2/httpd.conf

Em seguida, inclua essa linha Include httpd.conf no final deste arquivo

sudo vi /etc/apache2/apache2.conf

Verifique se há erros de sintaxe novamente

sudo apache2ctl configtest

Agora você deve obter

Syntax OK

Agora você pode reiniciar o servidor normalmente, recarregando a configuração sudo service apache2 restart

    
por daumie 08.01.2018 / 22:47
0

No Ubuntu 16.04 :

Adicione ServerName localhost ao arquivo httpd.conf usando o seguinte comando.

sudo vi  /etc/apache2/httpd.conf

Em seguida, inclua essa linha Include httpd.conf no final deste arquivo

sudo vi /etc/apache2/apache2.conf

Verifique se há erros de sintaxe novamente

sudo apache2ctl configtest

Agora você deve obter

Syntax OK

Agora você pode reiniciar o servidor normalmente, recarregando a configuração

sudo service apache2 reload

ou mate o processo e comece de novo

sudo service apache2 restart
    
por daumie 08.01.2018 / 22:48