Apache hatası “Sunucunun tam etki alanı adı güvenilir bir şekilde belirlenemedi”


432

Komutu kullanarak Apache sunucumu yeniden başlattığımda

sudo /etc/init.d/apache2 restart

Aşağıdaki hatayı alıyorum:

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

Sunucu 127.0.0.1 yerine 127.0.1.1 kullanıyor mu? Bu hataya ne sebep olur?

Yanıtlar:


509

6 # 13.04 ve daha üstü

Bu sadece dostça bir uyarıdır ve gerçekten bir sorun değildir (bir şeyin işe yaramadığı gibi).

Eğer gidersen:

/etc/apache2/apache2.conf

ve ekle:

ServerName localhost   

ve ardından apache'yi terminale yazarak yeniden başlatın:

sudo systemctl reload apache2

bildirim kaybolacak.

İçinde bir adınız /etc/hostnamevarsa, bunun yerine bu adı da kullanabilirsiniz localhost.


Ve 127.0.1.1senin içinde ise kullanır /etc/hosts:

127.0.0.1 localhost
127.0.1.1 myhostname

Tercih edilen yol

Apache'de sorun giderme

Bu hatayı alırsanız:

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

daha sonra yeni bir dosya oluşturmak için komut satırında "sudo nano" veya masaüstünde "gksudo gedit" gibi bir metin editörü kullanın,

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

veya

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

sonra Ekle

ServerName localhost

dosyaya kaydedin ve kaydedin. Bu, aşağıdakilerle birlikte tek bir komutla yapılabilir:

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

Ancak Ubuntu 14.04'te:

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

".Conf" unu unutmayın (çalışmaz).


2
Bu ayrıca, Apache Sorun Giderme ile ilgili Ubuntu LAMP kurulum belgelerinde de belirtilmiştir . Orada bir dosya /etc/apache2/conf.d/fqdn oluşturmayı tavsiye ServerName localhostİçinde
icc97

Çok iyi cevap - ama aynı zamanda conf.d dizinine koymanızı tavsiye ederim :)
cwd

3
/etc/apache2/conf.d/sonra yok benim kurulumu lamp-server^14.04 de
redanimalwar

@redanimalwar 13.10 ve daha yenileri için aşağıda @ Starx'ın cevabına bakınız.
Dan

3
Son adım için (14.04'te sym-link oluşturmak) sudo a2enconf fqdnTeknik olarak aynı olsa da tavsiye ederim .
nuala

176

13.10 veya daha yenisi

Varsayılan olarak 13.10'dan itibaren kullanılabilen Apache 2.4'ten itibaren - conf.ddizine bir config dosyası ekleme yöntemini kullanamazsınız .

Apache artık conf.ddizini kullanmıyor . Tüm yapılandırma dosyaları /etc/apache2/conf-availabledizinde saklanır ve tüm yapılandırma dosyalarının bir .confuzantısı olmalıdır .

Bu mesajı Apache 2.4'te çözmek için, uygun dizinde bir yapılandırma dosyası oluşturmalıyız. Örneğin servername.conf.

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

Ve bunun içine sadece bir satır eklememiz gerekiyor

ServerName localhost

Önceki iki komutu bir ile birleştirebilirsiniz:

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

İhtiyaç durumuna bağlı olarak bir etki alanı adı veya başka bir ad kullanmak istiyorsanız, ihtiyacınız localhostolan şeyle değiştirin . Daha sonra bu yapılandırmayı etkinleştirmeniz gerekir. Bunun için aşağıdaki komutu çalıştırmanız gerekir:

sudo a2enconf servername

a2enconfApaches 2.4'te bir yapılandırma dosyasını etkinleştirmek için kullanılan bir komuttur. Ayrıca servername, yukarıdaki komutun yapılandırma dosyasının adından olduğunu unutmayın servername.conf. Yapılandırma dosyanız ngenericserver.confo zaman olsaydı, yazmak zorunda kalacaksınız sudo a2enconf ngenericserver.

Bundan sonra sunucuyu yeniden yükleyin ve yukarıdaki mesaj sizi rahatsız etmeyecek.

sudo service apache2 reload

veya

sudo apache2ctl graceful

Bundan sonra mesajın bir daha gösterilmeyeceğini ve sorunun çözüleceğini göreceksiniz.


3
Apache'nin hangi yapılandırma dosyasında sorun olduğunu söylemesini bilen var mı ? Geliştiricilerin bunu neden hata mesajlarına sokmayı asla düşünmediklerini bilmiyorum - bu çok fazla kod gerektirmiyor!
John Y,

Bu sunucu için bir İnternet fqdm varsa, bu koymak için yer burası mı? yani, myhost.org'u localhost yerine sübvanse etmeli miyim?
CPBL

1
@ CPBL Bu, tüm siteler için varsayılan sunucu adı olacaktır. Yalnızca bir siteniz varsa, yapmanız gereken tek şey budur. Sunucunuzda birden fazla siteniz varsa, her site için sunucu adı yönergesini kendi sanal ana bilgisayar yapılandırmalarına eklemeniz gerekir.
Dan,

1
14.04 LTS'de çalışıyor.
Parto

1
Alıntı yaptığınız bağlantı ölü görünüyor, lütfen düzeltin.
Fredrick Gauss

28

Apache2, FQDN'yi apache config dosyasına kodlanmış değil, uygun şekilde yapılandırılmış bir sistem ana bilgisayar adından da alabilir. Sabit kodlama aynı zamanda ana bilgisayar adı değişirse karışıklığa neden olur. Aslında herhangi bir apache yapılandırma dosyasında herhangi bir ServerNameyönergeye ihtiyacınız yok httpd.conf.

Aşağıdakileri yazın /etc/hosts:

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

nerede hostname.domainname.commakinenizin FQDN'idir.

Bu, içinde /etc/hostname/veya ile doğru bir şekilde yapılandırılmış bir ana bilgisayar adı ile birlikte hostnamectl, makinenizdeki diğer hizmetlerin de düzgün çalışmasına yardımcı olur (örneğin, oturum açma istemi This is hostname.domainname.comyerine , gösterilmesi This is hostname.unknown_domain.)


5
"Düzgün yapılandırılmış bir sistem ana bilgisayar adı" için +1. Sunucuyu doğru şekilde yapılandırmak istedim. Bu aynı zamanda [warn] RSA server certificate CommonName (CN) <fqdn> does NOT match server name!?
transistör 1

Bunun Apache 2.2.22 ile çalışması gerektiğini düşünüyor musunuz? Hala "SunucuAdı için 127.0.1.1 kullanarak sunucunun tam etki alanı adını güvenilir bir şekilde belirleyemedi"
David Winiecki

Olması hostname localhostgerekiyordu myubuntuservername localhost? Veya dize değişmez hostname localhost? Eğer cevap net değildi
Jonathan

2
Bu kabul edilen cevap olmalı. Ancak FQDN'yi statik IP adresiyle ilişkilendirmeniz gerekebilir gibi görünüyor 127.0.0.1.
Skippy le Grand Gourou

1
Ubuntu 18.04'te benim için en iyi cevap buydu. Dokümantasyonun tutarlı olmasına rağmen, tam nitelikli alan adı burada veya herhangi bir yerde aynı terminoloji olmasa bile. tam olarak nitelenmiş alan adım google.com ve sunucumun adı google ise, / etc / hosts adresindeki girişim 127.0.0.1 olacaktır diliyorum. Bunu kullandım: digitalocean.com/community/tutorials/…
NZ Dev

26
  • Bir terminal aç
  • /etc/apache2/httpd.confDosyayı aç :

    sudo editor /etc/apache2/httpd.conf # [1]
    
  • Varsayılan olarak, boş olacaktır. Aşağıdaki satırı eklemeniz yeterlidir:

    ServerName localhost
    
  • Dosyayı kaydet ve çık

  • Sunucuyu yeniden başlat

    sudo service apache2 restart
    

[1] Varsayılan düzenleyiciyi başlat, bkz. sudo update-alternatives --config editor


son komutu yerine getirdikten sonra aşağıdaki hata meydana gelir ** Web sunucusunu yeniden başlatma izinli) (13) İzin reddedildi: make_sock: 0.0.0.0:80 adresine bağlanamadı. Dinleme soketi yok, kapatılıyor Günlükleri açamıyorum Eylem 'start' başarısız oldu. Apache hata günlüğünde daha fazla bilgi olabilir. [fail] ** @ green7
Deepu

'sudo service apache2 restart' komutunu deneyin
waterloo2005

20

Apache2'nin yeni sürümünde şöyle bir komut izliyorsunuz:

sudo nano /etc/apache2/apache2.conf

Dosyanın aşağıdaki yeni satır sonunu ekleyin:

ServerName localhost

Sonra apache2'yi yeniden başlatın:

sudo service apache2 restart

Bitti.


6

/etc/conf.dYa apache2.confda değiştirmek için yeni bir dosya oluşturmak biraz daha iyidir httpd.conf.

Yapılandırma değişikliklerimin dağıtım paketinden ayrı kalmasını sağlayan kişisel bir tercih. Bu yüzden güncellemeler daha az karmaşık.

Dosyayı oluşturuyorum /etc/apache2/conf.d/AAserverNameve sadece içeriyor:

ServerName myhost.mycomain.tld

Diğer öneriler de kesinlikle işe yarıyor.


2

Ubuntu 16.04’de:

sudo -i

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

1

Eklemek ServerName localhost

için

 sudo leafpad /etc/apache2/apache2.conf

 sudo leafpad /etc/apache2/httpd.conf

Bu bir hata değil .. Sadece bir arkadaş hatırlatıcısı


1

ServerName localhostYapılandırma dosyalarınızdaki sanal ana bilgisayar bölümleri dışında belirtmek bunu yapmanın yoludur.

Bazı diğer cevaplar değişiklik yapmanız gerektiğini gösteriyor /etc/apache2/httpd.conf. Apache apt'den yükseltildiğinde bu dosyanın üzerine yazılır. Üzerine yazmak istemediğiniz Apache yapılandırması için yeni bir dosya oluşturmalısınız. Bu yapılandırma değişikliğini yapmanın "Debian yolu":

# 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

Bu temelde Stark'ın cevabı ile aynıdır, fakat script formunu kopyalayıp yapıştırmak kolaydır. Aslında, yinelenen olarak işaretlenmiş bir soruda bunu yayınlamıştım: https://askubuntu.com/a/432408


1

On Ubuntu 16.04 :

Aşağıdaki komutu kullanarak bize ServerName localhostdosya ekleyin httpd.conf.

sudo vi  /etc/apache2/httpd.conf

Sonra bu satırı Include httpd.confbu dosyanın sonuna ekleyin.

sudo vi /etc/apache2/apache2.conf

Sözdizimi hatalarını tekrar kontrol et

sudo apache2ctl configtest

Şimdi almalısın

Syntax OK

Artık yapılandırmayı yeniden yükleyerek sunucuyu dikkatlice yeniden başlatabilirsiniz.

sudo service apache2 reload

veya işlemi sonlandırın ve tekrar başlayın

sudo service apache2 restart

0

Ubuntu 11.10'da bu mesajı gördüm; diskim doluydu. Günlük dosyalarından biri haydut oldu . Muhtemelen Apache ile ilgili bir problem yoktu, ama bu mesaj açılıştan önce verilen son ipucuydu.

Sorunu çözmek için, kurtarma moduna önyüklemek ve yollu günlük dosyasını kaldırmak zorunda kaldım.


0

Bash kullanıyorsanız ve minimum bağımlılık istiyorsanız (ve benim gibi Docker kullanıyorsanız , giriş noktası komut dosyanız için tek bir satır istiyorsanız ), bu iki seçenek işe yaramalı .

Eğer localhost istiyorsanız:

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

Mevcut ana bilgisayar adını istiyorsanız:

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

Bu , dizgeyi dosyanın sonuna eklemek için bash yeniden yönlendirme işleçlerini kullanır . Echo otomatik olarak yeni satırı ekler, böylece hepiniz hazır olursunuz.


0

Aşağıdaki komutu çalıştırın:

apachectl -t -D DUMP_INCLUDES

httpd.confyapılandırma dosyanızın yolunu belirlemek için, o dosyayı düzenleyin ve ServerNameseçeneğin değerini belirten satırı değiştirin, değiştirin.

ServerName localhost

Web sunucusu için kayıtlı DNS adını kullanın (örn. example.com).

Ana makinenizde kayıtlı bir DNS adı yoksa, IP adresini buraya girin.


0

On Ubuntu 16.04 :

Aşağıdaki komutu kullanarak bize ServerName localhostdosya ekleyin httpd.conf.

sudo vi  /etc/apache2/httpd.conf

Sonra bu satırı Include httpd.confbu dosyanın sonuna ekleyin.

sudo vi /etc/apache2/apache2.conf

Sözdizimi hatalarını tekrar kontrol et

sudo apache2ctl configtest

Şimdi almalısın

Syntax OK

Artık sudo service apache2 yeniden başlatmasını yapılandırarak sunucuyu dikkatlice yeniden başlatabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.