Di mana di Apache 2 Anda mengatur direktif ServerName secara global?

37

CATATAN: Ini terkait dengan pertanyaan saya: " Apache 2.4 tidak mau memuat ulang, ada masalah dengan konfigurasi saya? ".

Saya mencoba menguji situs lokal, secara lokal. Seperti yang saya mengerti Apache 2 (dan mungkin Apache juga) memiliki sesuatu yang disebut VirtualHost. Sedikit pemahaman saya memberi tahu saya bahwa virtualhosting adalah cara di mana satu server / alamat IP dapat melayani banyak domain.

Bagaimanapun, saya mendapatkan kesalahan berikut ketika menjalankan Apache 2 configtestuntuk melihat di mana saya gagal. Saya menjalankan Apache 2.4.10-1, dan sepertinya ada banyak perubahan yang terjadi antara Apache 2.2 dan Apache 2.4 yang tidak saya sadari.

$ sudo apache2ctl configtest
[sudo] password for shirish:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Ini /etc/hostsfile:

 $ cat /etc/hosts
127.0.0.1    localhost
127.0.1.1    debian mini

Saya juga melihat /etc/hosts.conffile kosong . Mungkin data dalam /etc/hostsperlu disalin ke /etc/hosts.confserver untuk mengambil kesadaran?

Nama inang saya:

$ hostname
debian

Ini adalah file konfigurasi situs:

$ cat /etc/apache2/sites-available/minidebconfindia.conf
<VirtualHost mini:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/html/in2014.mini/website

    <Directory />
        Options +FollowSymLinks +Includes
        Require all granted
    </Directory>

    <Directory /var/www/html/in2014.mini/website/>
        Options +Indexes +FollowSymLinks +MultiViews +Includes
        Require all granted
    </Directory>
</VirtualHost>

Saya juga membaca tentang pengikatan ke alamat dan port , tetapi saya belum mengerti dengan baik karena berbagai alasan. Itu tidak memberikan / membagikan contoh di mana file baris tersebut perlu dimasukkan dan apa yang akan terjadi sebelum dan sesudah. Sebuah contoh akan jauh lebih baik.

Saya melakukan itu dan me-restart server, tetapi saya masih mendapatkan kesalahan yang sama.

~$ sudo apache2ctl configtest
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Sepertinya ada tiga file konfigurasi di Debian yang perlu saya ketahui dan pahami.

/etc/apache2$ ls *.conf
apache2.conf  ports.conf

dan

/etc/apache2/conf.d$ ls *.conf
httpd.conf

Rupanya, apache2.conf ADALAH file konfigurasi global sementara httpd.conf adalah file konfigurasi pengguna. Ada juga ports.conf. Baik apache2.conf dan ports.conf berada di default kecuali saya telah mengubah loglevel dari Apache warnmenjadi debug.

Saya mencoba satu sama lain:

$ sudo apache2ctl -S
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
127.0.1.1:80           debian (/etc/apache2/sites-enabled/minidebconfindia.conf:1)
*:80                   127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

Mungkin seseorang memiliki lebih banyak wawasan.

shirish
sumber

Jawaban:

43

File yang akan diedit:

/etc/apache2/apache2.conf

Perintah untuk mengedit file:

sudo nano /etc/apache2/apache2.conf

Untuk servername global, Anda dapat meletakkannya di bagian atas file (di luar tag host virtual).

Baris pertama terlihat seperti:

ServerName myserver.mydomain.com

Kemudian simpan dan uji konfigurasi dengan perintah berikut:

apachectl configtest

Anda harus mendapatkan:

Sintaksnya OK

Kemudian Anda dapat me-restart server dan memeriksa Anda tidak mendapatkan pesan kesalahan:

sudo service apache2 restart
Mark N Hopgood
sumber
2
Ini adalah jawaban yang benar untuk Debian. Saya mencoba /etc/apache2/conf-available/fqdn.conf, atau servername.confatau httpd.conftidak berhasil. Debian Jessie, danapache 2.4.10
Dr Beco
2
Jika sudah conf-available/dan conf-enabled/, buat file di conf-available/dan gunakan perintah a2enconfuntuk mengaktifkannya. Dengan cara ini, dpkg tidak akan mengganggu Anda tentang perubahan yang tidak terlacak saat / jika apache2-commonpaket diperbaruiapache2.conf
Kevin
File conf-availablesetelah ini dan edit mungkin /etc/apache2/conf-available/servername.confdengan konten ServerName myserver.mydomain.com(dicoba di Raspberry Pi, Apache 2.4.10, Debian 8 (Jessie), kernel Linux 4.4.34).
Peter Mortensen
@PeterMortensen bisa Anda gunakan contoh yang dibagikan sehingga saya bisa mengerti apa yang Anda maksud.
shirish
File tidak ada
Hitam
5

Anda harus mengatur direktif ServerName :

ServerName localhost

Di Debian, Anda dapat mengaturnya /etc/apache2/conf.d/httpd.conf.

Di macOS, Anda bisa mengaturnya /private/etc/apache2/httpd.conf.

cuonglm
sumber
5
Di Ubuntu, atur di /etc/apache2/apache2.conf
macki
1
Debian baik: apache2.conf.
Dr Beco
1
Versi Apache / Debian apa ini berfungsi? Saya tidak berpikir itu berfungsi untuk Apache 2.4. Bisa jadi /etc/apache2/apache2.confsebaliknya.
Peter Mortensen
berfungsi, Apache 2.4 pada Debian 8
erajuan
2

Untuk menemukan file konfigurasi Apache Anda, coba jalankan perintah berikut:

apachectl -t -D DUMP_INCLUDES

Kemudian edit file itu dan temukan baris dengan ServerNamedan batalkan komentar itu, sehingga terlihat seperti:

ServerName localhost
kenorb
sumber
0

Dalam file konfigurasi apache24, Anda akan melihat baris ServerName:80:

  1. Biarkan kosong.
  2. Kemudian di bawah baris itu di ruang kosong tulis:
    ServerName www.name (of your official domain or website.com:80)
  3. Simpan file konfigurasi.
  4. Pergi ke cmd, buka sebagai perubahan administrator dirke tempat apache24
  5. Lalu cd apache24kemudian cd binkemudian httpd.exe

Anda akan melihat masalah terpecahkan.

Rachel Horsham
sumber