Pertanyaan Kesalahan Apache "Tidak dapat menentukan dengan pasti nama domain yang sepenuhnya memenuhi syarat server"


Ketika saya me-restart server Apache saya menggunakan perintah

sudo /etc/init.d/apache2 restart

Saya mendapatkan kesalahan berikut:

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

Apakah server menggunakan 127.0.1.1 bukannya 127.0.0.1? Apa yang menyebabkan kesalahan ini?


385
2018-02-14 13:09


asal




Jawaban:


13.04 dan lebih tua

Ini hanya peringatan yang ramah dan tidak benar-benar masalah (karena tidak ada yang berhasil).

Jika Anda memasukkan

ServerName localhost   

baik httpd.conf atau apache2.conf di /etc/apache2 dan restart apache pemberitahuannya akan hilang.

Jika Anda memiliki nama di dalamnya /etc/hostname Anda juga dapat menggunakan nama itu, bukan localhost.


Dan itu menggunakan 127.0.1.1 jika itu ada di dalam Anda /etc/hosts:

127.0.0.1 localhost
127.0.1.1 myhostname

Metode yang disukai

Troubleshooting Apache

Jika Anda mendapatkan kesalahan ini:

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

kemudian gunakan editor teks seperti "sudo nano" di baris perintah atau "gksudo gedit" di desktop untuk membuat file baru,

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

atau

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

lalu tambahkan

ServerName localhost

ke file dan simpan. Ini semua bisa dilakukan dalam satu perintah dengan yang berikut:

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

Tetapi pada Ubuntu 14.04:

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

Jangan lupa ".conf" (tanpa tidak berfungsi).


470
2018-02-14 13:18



Ini juga disebutkan dalam dokumentasi pengaturan LAMP Ubuntu untuk Troubleshooting Apache. Di sana mereka merekomendasikan membuat file /etc/apache2/conf.d/fqdn dengan ServerName localhost di dalamnya - icc97
Jawaban yang sangat bagus - tetapi saya juga merekomendasikan untuk memasukkannya ke dalam direktori conf.d :) - cwd
/etc/apache2/conf.d/ tidak ada setelah instalasi saya lamp-server^ di 14.04 - redanimalwar
@redanimalwar Untuk 13.10 dan yang lebih baru Jawaban @ Starx di bawah. - Dan
Untuk langkah terakhir (membuat sym-link di 14.04) saya sarankan sudo a2enconf fqdn meskipun secara teknis seharusnya sama. - yoshi


13.10 atau lebih baru

Seperti Apache 2.4 - yang tersedia secara default pada 13.10 - Anda tidak dapat menggunakan metode tentang menambahkan file konfigurasi di conf.d direktori.

Apache tidak lagi menggunakan conf.d direktori. Semua file konfigurasi disimpan di dalam /etc/apache2/conf-available direktori dan semua file konfigurasi sekarang harus memiliki .conf perpanjangan.

Untuk menyelesaikan pesan ini di Apache 2.4, kita harus membuat file konfigurasi di dalam direktori conf-available. Sebagai contoh servername.conf.

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

Dan di dalam ini kita hanya perlu menambahkan satu baris

ServerName localhost

Anda dapat menggabungkan dua perintah sebelumnya dalam satu dengan:

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

Jika Anda ingin menggunakan nama domain atau nama lain apa pun tergantung pada persyaratannya, cukup ganti localhost dengan apa pun yang Anda butuhkan. Selanjutnya Anda harus mengaktifkan konfigurasi ini. Untuk ini, Anda perlu menjalankan perintah berikut:

sudo a2enconf servername

a2enconf adalah perintah untuk mengaktifkan file konfigurasi dalam Apache 2.4. Juga perhatikan itu servername pada perintah di atas adalah dari nama file konfigurasi servername.conf. Jika file konfigurasi Anda adalah ngenericserver.conf maka Anda harus menulis sudo a2enconf ngenericserver.

Setelah ini, muat ulang server dan pesan di atas tidak akan lagi mengganggumu.

sudo service apache2 reload

atau

sudo apache2ctl graceful

Sekarang setelah ini Anda akan melihat bahwa pesan tidak akan ditampilkan lagi dan masalah akan diperbaiki.


158
2017-12-26 18:45



Apakah ada yang tahu cara membuat Apache mengatakan yang file konfigurasi itu memiliki masalah dengan? Saya tidak tahu mengapa pengembang tidak pernah berpikir untuk menempatkan ini dalam pesan kesalahan mereka - itu hampir tidak membutuhkan banyak kode! - John Y
Jika saya memiliki fqdm Internet untuk server ini, apakah ini tempat untuk meletakkannya? yaitu saya harus substansial myhost.org di tempat localhost? - CPBL
@CPBL Ini akan menjadi nama server default untuk semua situs. Jika Anda hanya memiliki satu situs, maka itulah yang perlu Anda lakukan. Jika Anda memiliki beberapa situs di server Anda, Anda juga harus menambahkan direktif servername untuk setiap situs dalam konfigurasi virtual host masing-masing. - Dan
Bekerja pada 14,04 LTS. - Parto
Tautan Anda yang dikutip tampak mati, mohon perbaiki. - Fredrick Gauss


  • Buka terminal
  • Buka /etc/apache2/httpd.conf mengajukan:

    sudo editor /etc/apache2/httpd.conf # [1]
    
  • Secara default, itu akan kosong. Cukup tambahkan baris berikut:

    ServerName localhost
    
  • Simpan file dan keluar

  • Mulai ulang server

    sudo service apache2 restart
    

[1] Luncurkan editor default, lihat sudo update-alternatives --config editor


24
2018-02-14 13:17



setelah mengeksekusi perintah terakhir, kesalahan berikut terjadi ** Restarting apache2 / usr / sbin / apache2ctl: 87: ulimit: batas pengaturan kesalahan (Operasi tidak diizinkan) / usr / sbin / apache2ctl: 87: ulimit: batas pengaturan kesalahan (Operasi tidak diizinkan) (13) Izin ditolak: make_sock: tidak dapat mengikat ke alamat 0.0.0.0:80 tidak ada soket yang tersedia, mematikan Tidak dapat membuka log Tindakan 'start' gagal. Log kesalahan Apache mungkin memiliki lebih banyak informasi. [gagal] ** @ green7 - Deepu
coba 'sudo service apache2 restart' - waterloo2005


Apache2 juga bisa mendapatkan FQDN dari hostname sistem dikonfigurasi dengan baik daripada hardcod ke file config apache. Hardcode itu juga akan menyebabkan kebingungan jika perubahan nama host. Anda sebenarnya tidak membutuhkannya ServerName arahan dalam httpd.conf atau file konfigurasi apache.

Masukkan yang berikut ini /etc/hosts:

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

dimana hostname.domainname.com adalah FQDN dari mesin Anda.

Bersama dengan hostname yang dikonfigurasi dengan benar di /etc/hostname/ atau dengan hostnamectl, ini juga akan membantu layanan lain pada mesin Anda berjalan dengan baik (yaitu, prompt login, ditampilkan This is hostname.domainname.com dari pada This is hostname.unknown_domain.)


22
2017-09-18 18:05



+1 untuk "hostname sistem dikonfigurasi dengan benar". Saya ingin mengkonfigurasi server dengan benar. Ini juga memperbaiki kesalahan saya di log [warn] RSA server certificate CommonName (CN) <fqdn> does NOT match server name!? - transistor1
Apakah Anda pikir ini harus bekerja dengan Apache 2.2.22? Saya masih mendapatkan "Tidak dapat menentukan dengan pasti nama domain yang sepenuhnya memenuhi syarat server, menggunakan 127.0.1.1 untuk ServerName" - David Winiecki
Aku s hostname localhost seharusnya myubuntuservername localhost? Atau string literalnya hostname localhost? Anda tidak jelas dalam jawaban Anda - Jonathan
Ini harus menjadi jawaban yang diterima. Tampaknya Anda mungkin perlu menghubungkan FQDN dengan alamat IP statis daripada 127.0.0.1, meskipun. - Skippy le Grand Gourou


Dalam versi baru apache2 Anda hanya mengikuti perintah seperti ini:

sudo nano /etc/apache2/apache2.conf

Tambahkan baris file baru berikut ini:

ServerName localhost

Kemudian restart apache2:

sudo service apache2 restart

Selesai.


15
2018-04-16 06:38





Saya merasa sedikit lebih baik untuk membuat file baru /etc/conf.d itu untuk memodifikasi juga apache2.conf atau httpd.conf.

Ini adalah preferensi pribadi yang membuat perubahan konfigurasi saya terpisah dari paket distribusi. Jadi, pembaruan tidak begitu rumit.

Saya membuat file /etc/apache2/conf.d/AAserverName dan hanya berisi:

ServerName myhost.mycomain.tld

Saran-saran lainnya tentu bekerja juga.


4
2017-09-06 15:31





Di Ubuntu 16.04:

sudo -i

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

2
2018-04-17 13:26





Menambahkan ServerName localhost

Untuk

 sudo leafpad /etc/apache2/apache2.conf

 sudo leafpad /etc/apache2/httpd.conf

Itu bukan kesalahan .. Ini hanya pengingat teman


1
2017-07-05 09:36





Pada Ubuntu 11.10, saya melihat pesan ini, bersama dengan boot yang digantung terjadi karena disk saya penuh. Salah satu file log telah menjadi tidak benar. Mungkin sebenarnya tidak ada masalah dengan Apache, tetapi pesan ini adalah petunjuk terakhir yang diberikan sebelum boot digantung.

Untuk memperbaiki masalah, saya harus boot ke recovery mode dan menghapus file log bandel.


0
2018-05-07 15:17





Menentukan ServerName localhost dalam file konfigurasi Anda di luar bagian host virtual adalah cara untuk melakukan ini.

Beberapa jawaban lainnya menunjukkan bahwa Anda harus memodifikasi /etc/apache2/httpd.conf. File ini ditimpa ketika apache di-upgrade dari apt. Untuk konfigurasi Apache yang Anda tidak ingin ditimpa, Anda harus membuat file baru. Berikut ini adalah "cara Debian" untuk membuat perubahan konfigurasi ini:

# 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

Ini pada dasarnya sama dengan jawaban Stark, tetapi mudah untuk menyalin dan menempelkan formulir skrip. Saya awalnya memposting ini dalam sebuah pertanyaan yang ditandai sebagai duplikat: https://askubuntu.com/a/432408


0
2018-03-24 13:02





Jika Anda menggunakan bash dan menginginkan dependensi minimal (dan hanya ingin satu-liner untuk Anda skrip entri titik jika Anda menggunakan Docker seperti saya), dua opsi ini seharusnya berfungsi.

Jika Anda ingin localhost:

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

Jika Anda ingin nama host yang ada:

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

Ini menggunakan bash redirection operator untuk menambahkan string ke ujung file. Echo secara otomatis memasukkan baris baru, jadi Anda sudah siap.


0
2017-11-17 19:23