it-swarm-eu.dev

Chyba Apache „Nelze spolehlivě určit plně kvalifikovaný název domény serveru“

Když restartuji server Apache pomocí příkazu

Sudo /etc/init.d/Apache2 restart

Zobrazila se následující chyba:

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

Používá server místo 127.0.0.1 server 127.0.1.1? Co způsobuje tuto chybu?

456
Deepu

6 # 13.04 a starší

Toto je pouze přátelské varování a ve skutečnosti to není problém (jako v tom, že něco nefunguje).

Pokud jdete na:

/etc/Apache2/Apache2.conf

a vložte:

ServerName localhost   

a restartujte Apache zadáním do terminálu:

Sudo systemctl reload Apache2

oznámení zmizí.

Pokud máte jméno uvnitř /etc/hostname Toto jméno můžete také použít místo localhost.


A používá 127.0.1.1 pokud je uvnitř vašeho /etc/hosts:

127.0.0.1 localhost
127.0.1.1 myhostname

přednostňovaná metoda

Odstraňování problémů s Apache

Pokud se zobrazí tato chyba:

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

pak pomocí textového editoru, například „Sudo nano“ na příkazovém řádku nebo „gksudo gedit“ na ploše, vytvořte nový soubor,

Sudo nano /etc/Apache2/conf.d/fqdn

nebo

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

poté přidejte

ServerName localhost

do souboru a uložit. To vše lze provést jedním příkazem s následujícím:

 echo "ServerName localhost" | Sudo tee /etc/Apache2/conf.d/fqdn

Ale na Ubuntu 14.04:

 echo "ServerName localhost" | Sudo tee /etc/Apache2/conf-available/fqdn.conf
 Sudo a2enconf fqdn

Nezapomeňte na ".conf" (bez nebude fungovat).

546
Rinzwind

13.10 nebo novější

Od verze Apache 2.4 - která je ve výchozím nastavení k dispozici od 13.10 - nemůžete použít metodu přidávání konfiguračního souboru do conf.d adresář.

Apache již nepoužívá conf.d adresář. Všechny konfigurační soubory jsou uloženy uvnitř /etc/Apache2/conf-available adresář a všechny konfigurační soubory by nyní měly mít .conf rozšíření.

Abychom tuto zprávu vyřešili v Apache 2.4, musíme vytvořit konfigurační soubor v adresáři conf-available. Například servername.conf.

Sudo vi /etc/Apache2/conf-available/servername.conf

A uvnitř toho stačí přidat jeden řádek

ServerName localhost

Předchozí dva příkazy můžete kombinovat s:

echo "ServerName localhost" | Sudo tee /etc/Apache2/conf-available/servername.conf

Pokud chcete použít doménové jméno nebo jiné jméno v závislosti na požadavku jeho pokuty, stačí nahradit localhost cokoli, co potřebujete. Dále musíte tuto konfiguraci povolit. K tomu je třeba spustit následující příkaz:

Sudo a2enconf servername

a2enconf je příkaz k povolení konfiguračního souboru v Apaches 2.4. Také si všimněte, že servername na výše uvedeném příkazu je z názvu konfiguračního souboru servername.conf. Pokud byl váš konfigurační soubor ngenericserver.conf pak byste museli napsat Sudo a2enconf ngenericserver.

Po tomto opětovném načtení vás server a výše uvedená zpráva již nebudou opravovat.

Sudo service Apache2 reload

nebo

Sudo Apache2ctl graceful

Nyní uvidíte, že se zpráva již nezobrazí a problém bude odstraněn.

181
Starx

Apache2 může také získat FQDN ze správně nakonfigurovaného systémového názvu hostitele, než aby byl pevně zakódován do konfiguračního souboru Apache. Hardcoding to také způsobí zmatek, pokud se změní jméno hostitele. Ve skutečnosti nepotřebujete žádné ServerName směrnice v httpd.conf nebo jakékoli konfigurační soubory Apache.

Vložte následující text do /etc/hosts:

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

kde hostname.domainname.com je FQDN vašeho stroje.

Spolu se správně nakonfigurovaným názvem hostitele v /etc/hostname/ nebo s hostnamectl, pomůže to také správnému fungování dalších služeb na vašem počítači (tj. přihlašovací výzva zobrazující This is hostname.domainname.com namísto This is hostname.unknown_domain.)

31
Andrew Mao
  • Otevřete terminál
  • Otevři /etc/Apache2/httpd.conf file:

    Sudo editor /etc/Apache2/httpd.conf # [1]
    
  • Ve výchozím nastavení bude prázdné. Stačí přidat následující řádek:

    ServerName localhost
    
  • Uložte soubor a ukončete

  • Restartujte server

    Sudo service Apache2 restart
    

[1] Spusťte výchozí editor, viz Sudo update-alternatives --config editor

28
green

V nové verzi Apache2 stačí následující příkaz:

Sudo nano /etc/Apache2/Apache2.conf

Přidejte následující nový řádek konce souboru:

ServerName localhost

Poté restartujte Apache2:

Sudo service Apache2 restart

Je to hotovo.

22
empugandring

Zjistil jsem, že je trochu lepší vytvořit nový soubor v /etc/conf.d, které upraví buď Apache2.conf nebo httpd.conf.

Je to osobní preference, která udržuje mé změny konfigurace odděleně od distribučního balíčku. Aktualizace jsou tedy méně komplikované.

Vytvářím soubor /etc/Apache2/conf.d/AAserverName a obsahuje pouze:

ServerName myhost.mycomain.tld

Ostatní návrhy samozřejmě fungují také.

6
areeda

V Ubuntu 16.04:

Sudo -i

echo 'ServerName localhost' > /etc/Apache2/conf-available/server-name.conf
a2enconf server-name
2
Eduardo Cuomo

Přidat ServerName localhost

Na

 Sudo leafpad /etc/Apache2/Apache2.conf

 Sudo leafpad /etc/Apache2/httpd.conf

Není to chyba .. Je to jen připomínka přítele

1
Serem

Zadání ServerName localhost v konfiguračních souborech mimo virtuální sekce Host je to možné.

Některé další odpovědi naznačují, že byste měli upravit /etc/Apache2/httpd.conf. Tento soubor bude přepsán, když bude Apache upgradován z apt. Pro konfiguraci Apache, kterou nechcete přepsat, byste měli vytvořit nový soubor. Zde je „debian způsob“, jak tuto konfiguraci změnit:

# 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

To je v podstatě stejné jako Starkova odpověď, ale ve formě snadno kopírovatelné a vložitelné skriptu. Původně jsem to zveřejnil v otázce, která byla označena jako duplikát: https://askubuntu.com/a/432408

1

Zapnuto buntu 16.04:

Přidat ServerName localhost do souboru httpd.confpoužijte následující příkaz.

Sudo vi  /etc/Apache2/httpd.conf

Potom vložte tento řádek Include httpd.conf na konci tohoto souboru

Sudo vi /etc/Apache2/Apache2.conf

Znovu zkontrolujte chyby syntaxe

Sudo Apache2ctl configtest

Nyní byste měli dostat

Syntax OK

Nyní můžete server restartovat elegantně opětovným načtením konfigurace

Sudo service Apache2 reload

nebo zabít proces a začít znovu

Sudo service Apache2 restart
1
Dominic Motuka

Na Ubuntu 11.10 jsem viděl tuto zprávu spolu s zavěšeným zaváděním, protože můj disk byl plný. Jeden ze souborů protokolu byl nečestný . Pravděpodobně to nebyl problém s Apache, ale tato zpráva byla poslední vodítko, které se dalo před zavěšením bot.

Abych problém vyřešil, musel jsem nastartovat do režimu obnovy a odstranit nepřipravený soubor protokolu.

0
nobar

Spusťte následující příkaz:

apachectl -t -D DUMP_INCLUDES

určit cestu k vašemu httpd.conf konfigurační soubor, pak tento soubor upravte a zrušte/upravte řádek, který určuje hodnotu pro možnost ServerName, např.

ServerName localhost

Pro webový server použijte registrované jméno DNS (např. example.com).

Pokud váš hostitel nemá registrované jméno DNS, zadejte zde jeho IP adresu.

0
kenorb

Pokud používáte bash a chcete minimální závislosti (a chcete-li pro svůj jednorázový skript, pokud používáte Docker jako já), měli byste tyto dvě možnosti fungovat.

Pokud chcete localhost:

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

Pokud chcete existující název hostitele:

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

Pomocí operátory přesměrování bash připojí řetězec na konec souboru. Echo automaticky vloží nový řádek, takže jste všichni nastaveni.

0
Andrew Odri

Zapnuto buntu 16.04:

Přidat ServerName localhost do souboru httpd.confpoužijte následující příkaz.

Sudo vi  /etc/Apache2/httpd.conf

Potom vložte tento řádek Include httpd.conf na konci tohoto souboru

Sudo vi /etc/Apache2/Apache2.conf

Znovu zkontrolujte chyby syntaxe

Sudo Apache2ctl configtest

Nyní byste měli dostat

Syntax OK

Nyní můžete server elegantně restartovat opětovným načtením konfigurační služby Sudo Apache2 restart

0
Dominic Motuka