Apache hatası "Sunucunun tam etki alanı adını güvenilir bir şekilde belirleyemedi"

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

sudo /etc/init.d/apache2 restart

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

Restarting web server apache2apache2: 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? Ne bu hata neden olur?

13.04 ve üzeri

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 sonra terminale yazarak apache'yi yeniden başlatın:

sudo systemctl reload apache2

bildirim kaybolacak.

İçinde bir adın varsa /etc/hostname bunun yerine bu adı da kullanabilirsiniz localhost.


Ve kullanır 127.0.1.1 eğer senin içindeyse /etc/hosts:

127.0.0.1 localhost127.0.1.1 myhostname

Tercih edilen yöntem

Apache Sorunlarını Giderme

Bu hatayı alırsanız:

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

ardından, 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 ve kaydet. Tüm bunlar aşağıdakilerle tek bir komutta yapılabilir:

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

Ama Ubuntu 14.04'te:

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

Unutmayın ".conf" (olmadan çalışmaz).

13.10 veya daha yeni

13.10'dan itibaren varsayılan olarak kullanılabilen Apache 2.4'ten itibaren yapılandırma dosyası ekleme yöntemini kullanamazsınız. conf.d dizin.

Apache artık conf.d dizin. Tüm yapılandırma dosyaları içinde saklanır /etc/apache2/conf-available dizin ve tüm yapılandırma dosyaları artık bir .conf uzantı.

Apache 2.4'te bu mesajı çözmek için conf-available dizininin içinde bir yapılandırma dosyası oluşturmamız gerekiyor. Örneğin servername.conf.

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

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

ServerName localhost

Önceki iki komutu bir arada aşağıdaki komutlarla birleştirebilirsiniz::

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

Gereksinime bağlı olarak bir alan adı veya başka bir ad kullanmak istiyorsanız, sadece değiştirin localhost ne olursa olsun gerekir. Ardından, bu yapılandırmayı etkinleştirmeniz gerekir. Bunun için aşağıdaki komutu çalıştırmanız gerekir:

sudo a2enconf servername

a2enconf Apaches 2.4'te bir yapılandırma dosyasını etkinleştirmek için kullanılan bir komuttur. Ayrıca şunu da unutmayın servername yukarıdaki komut yapılandırma dosyasının adından gelmektedir servername.conf. Yapılandırma dosyanız ngenericserver.conf o zaman yazmak zorundasın. sudo a2enconf ngenericserver.

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

sudo service apache2 reload

veya

sudo apache2ctl graceful

Bundan sonra mesajın tekrar gösterilmeyeceğini ve sorunun giderileceğini göreceksiniz.

Apache2, fqdn'yi apache yapılandırma dosyasına kodlanmış yerine düzgün yapılandırılmış bir sistem ana bilgisayar adından da alabilir. Sabit kodlama, ana bilgisayar adı değişirse de karışıklığa neden olur. Aslında hiç ihtiyacın yok. ServerName direktifler httpd.conf veya herhangi bir apache yapılandırma dosyası.

Aşağıdakileri koyun /etc/hosts:

# IPv4 and IPv6 localhost aliases127.0.0.1 hostname.domainname.com  hostname  localhost::1       hostname.domainname.com  hostname  localhost

nerede hostname.domainname.com makinenizin fqdn'si.

Düzgün yapılandırılmış bir ana bilgisayar adı ile birlikte /etc/hostname/ veya ile hostnamectl bu, makinenizdeki diğer servislerin düzgün çalışmasına da yardımcı olacaktır (örn. This is hostname.domainname.com yerine This is hostname.unknown_domain.)

  • Terminal açma
  • Açın /etc/apache2/httpd.conf dosya:

    sudo editor /etc/apache2/httpd.conf # [1]
  • Varsayılan olarak, boş olur. Sadece aşağıdaki satırı ekleyin:

    ServerName localhost
  • Dosyayı kaydedin ve çıkın

  • Sunucuyu yeniden başlatın

    sudo service apache2 restart

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

Apache2'nin yeni sürümünde, aşağıdaki komutu uygulamanız yeterlidir:

sudo nano /etc/apache2/apache2.conf

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

ServerName localhost

Ardından apache2'yi yeniden başlatın:

sudo service apache2 restart

Bitti.

Yeni bir dosya oluşturmanın biraz daha iyi olduğunu düşünüyorum /etc/conf.d bu da değiştirmek için apache2.conf veya httpd.conf.

Yapılandırma değişikliklerimi dağıtım paketinden ayrı tutan kişisel bir tercihtir. Yani güncellemeler daha az karmaşıktır.

Dosyayı oluşturuyorum /etc/apache2/conf.d/AAserverName ve sadece içerir:

ServerName myhost.mycomain.tld

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

Ubuntu 16.04'te:

sudo -iecho 'ServerName localhost' > /etc/apache2/conf-available/server-name.confa2enconf server-name

Üzerinde Ubuntu 16.04:

Eklemek ServerName localhost dosyaya httpd.conf istimal aşağıdaki komutu gthe.

sudo vi  /etc/apache2/httpd.conf

Ardından bu satırı ekleyin Include httpd.conf bu dosyanın sonunda

sudo vi /etc/apache2/apache2.conf

Sözdizimi hatalarını tekrar kontrol edin

sudo apache2ctl configtest

Şimdi almalısın

Syntax OK

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

sudo service apache2 reload

veya işlemi öldürün ve tekrar başlayın

sudo service apache2 restart

Eklemek ServerName localhost

-e doğru

 sudo leafpad /etc/apache2/apache2.conf sudo leafpad /etc/apache2/httpd.conf

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

Belirtme ServerName localhost yapılandırma dosyalarınızda sanal ana bilgisayar bölümleri dışında bunu yapmanın yolu budur.

Diğer bazı cevaplar, değiştirmeniz gerektiğini önerir /etc/apache2/httpd.conf. Apache apt'den yükseltildiğinde bu dosyanın üzerine yazılır. Üzerine yazılmasını istemediğiniz Apache yapılandırması için yeni bir dosya oluşturmanız gerekir. İşte bu yapılandırma değişikliğini yapmanın "Debian yolu":

# create the configuration file in the "available" sectionecho "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf# enable it by creating a symlink to it from the "enabled" sectionsudo a2enconf servername# restart the serversudo service apache2 restart

Bu temelde Stark'ın cevabıyla aynıdır, ancak kopyalanması ve yapıştırılması kolay bir komut dosyası biçimindedir. Bunu başlangıçta yinelenen olarak işaretlenmiş bir soruda yayınlamıştım: https://askubuntu.com/a/432408