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


Quando eu reinicio meu servidor Apache usando o comando

sudo /etc/init.d/apache2 restart

Estou tendo o erro a seguir:

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?


385
2018-02-14 13:09


origem




Respostas:


13.04 e mais velhos

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

Se você inserir um

ServerName localhost   

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

Se você tem um nome dentro /etc/hostname você também pode usar esse nome em vez de localhost.


E isso usa 127.0.1.1 se estiver dentro do 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

então 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"

então 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).


470
2018-02-14 13:18



Isso também é mencionado na documentação de configuração do Ubuntu LAMP para Solução de problemas do Apache. Lá eles recomendam criar um arquivo /etc/apache2/conf.d/fqdn com ServerName localhost nisso - icc97
Resposta muito boa - mas também recomendo colocá-lo no diretório conf.d :) - cwd
/etc/apache2/conf.d/ não existe depois da minha instalação de lamp-server^ em 14.04 - redanimalwar
@redanimalwar Para 13.10 e mais recente veja @ Resposta da Starx abaixo. - Dan
Para o último passo (criando sym-link em 14.04) eu recomendaria sudo a2enconf fqdn embora tecnicamente seja o mesmo. - yoshi


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 adicionar um arquivo de configuração no conf.d diretório.

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

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 de sua multa, basta substituir localhost com o 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 habilitar 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 foi ngenericserver.conf então você teria que escrever sudo a2enconf ngenericserver.

Depois disso, recarregue o servidor e a mensagem acima não irá mais incomodá-lo.

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.


158
2017-12-26 18:45



Alguém sabe como fazer Apache dizer qual arquivo de configuração que está tendo o problema? Eu não sei porque os desenvolvedores nunca pensam em colocar isso em suas mensagens de erro - dificilmente é preciso muito código! - John Y
Se eu tenho um Internet fqdm para este servidor, este é o lugar para colocá-lo? ou seja, eu deveria substituir o myhost.org no lugar do localhost? - CPBL
@CPBL Este será o nome do servidor padrão para todos os sites. Se você tiver apenas um site, isso é tudo que você precisa fazer. Se você tiver vários sites em seu servidor, também precisará adicionar a diretiva servername para cada site em sua respectiva configuração de host virtual. - Dan
Funciona em 14.04 LTS. - Parto
Seu link citou parece morto, por favor conserte. - Fredrick Gauss


  • Abra um terminal
  • Abra o /etc/apache2/httpd.conf Arquivo:

    sudo editor /etc/apache2/httpd.conf # [1]
    
  • Por padrão, seria 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


24
2018-02-14 13:17



depois de executar o último comando, ocorre o seguinte erro ** Reiniciando o servidor web apache2 / usr / sbin / apache2ctl: 87: ulimit: limite de configuração de erro (Operação não permitida) / usr / sbin / apache2ctl: 87: ulimit: limite de configuração de erro permitido) (13) Permissão negada: make_sock: não foi possível vincular ao endereço 0.0.0.0:80 nenhum soquete de escuta disponível, desligando Impossível abrir logs Falha na ação 'start'. O log de erros do Apache pode ter mais informações. [falha] ** @ green7 - Deepu
tente 'sudo service apache2 restart' - waterloo2005


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 nenhum 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 hostname configurado corretamente /etc/hostname/ ou com hostnamectl, isso também ajudará outros serviços em sua máquina a funcionar corretamente (ou seja, o prompt de login, mostrando This is hostname.domainname.com ao invés de This is hostname.unknown_domain.)


22
2017-09-18 18:05



+1 para "um nome de host do sistema configurado corretamente". Eu queria configurar o servidor corretamente. Isso também corrigiu meu erro no log [warn] RSA server certificate CommonName (CN) <fqdn> does NOT match server name!? - transistor1
Você acha que isso deve funcionar com o Apache 2.2.22? Ainda estou recebendo "Não foi possível determinar com segurança o nome de domínio totalmente qualificado do servidor, usando 127.0.1.1 para ServerName" - David Winiecki
É hostname localhost deveria ser myubuntuservername localhost? Ou a string literal hostname localhost? Você não estava claro em sua resposta - Jonathan
Essa deve ser a resposta aceita. Parece que você pode precisar associar o FQDN ao endereço IP estático em vez de 127.0.0.1, Apesar. - Skippy le Grand Gourou


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

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.


15
2018-04-16 06:38





Eu acho que é um pouco melhor criar um novo arquivo em /etc/conf.d que 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 contém apenas:

ServerName myhost.mycomain.tld

As outras sugestões certamente funcionam também.


4
2017-09-06 15:31





No Ubuntu 16.04:

sudo -i

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

2
2018-04-17 13:26





Adicionar ServerName localhost

Para

 sudo leafpad /etc/apache2/apache2.conf

 sudo leafpad /etc/apache2/httpd.conf

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


1
2017-07-05 09:36