Bagaimana saya bisa menyelesaikan kesalahan apache2 httpd "menggabungkan port * dan port non- * dengan alamat NameVirtualHost tidak didukung"


24

Inilah kesalahan yang saya dapatkan saat mem-boot Apache2:

 * Starting web server apache2
 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [warn] NameVirtualHost *:80 has no VirtualHosts

Saya pertama kali mengikuti panduan ini tentang pengaturan Apache untuk meng-host beberapa situs:

http://www.debian-administration.org/articles/412

Saya kemudian menemukan pertanyaan serupa di ServerFault dan mencoba menerapkan solusi, tetapi tidak membantu.

Berikut adalah contoh konfigurasi VirtualHost terakhir saya:

<VirtualHost *:80>
    ServerAdmin admin@xxx.com
    ServerName  www.xxx.com
    ServerAlias xxx.com

    # Indexes + Directory Root.
    DirectoryIndex index.html
    DocumentRoot /var/www/www.xxx.com

    # Logfiles
    ErrorLog  /var/www/www.xxx.com/logs/error.log
    CustomLog /var/www/www.xxx.com/logs/access.log combined
</VirtualHost>

dengan domain X'd untuk melindungi yang tidak bersalah :-)

Juga, saya memiliki file conf.d / virtual.conf yang disebutkan dalam panduan terlihat seperti ini:

NameVirtualHost *

Yang aneh adalah semuanya tampak berfungsi dengan baik untuk dua dari tiga situs.


Posting konfigurasi Apache httpd (!) Anda yang lengkap atau setidaknya setiap baris NameVirtualHost dan <VirtualHost ...>.
joschi

Anda tidak dapat mencampur dua jenis pada ip: port yang sama. Saya telah memiliki pengaturan di mana saya memiliki dua ip, satu memiliki massvhost menggantungnya, yang lain memiliki semua host yang dinamai biasa. Lebih penting lagi, apa tujuannya? Apa yang ingin Anda capai? Apa kendala Anda?
Marcin

Jawaban:


29

Alamat IP yang diberi nama NameVirtualHostharus cocok dengan alamat IP di setiap VirtualHostelemen.

Contoh:

NameVirtualHost *:80
NameVirtualHost *:81

<VirtualHost *:80>
# ...
</VirtualHost>

<VirtualHost *:81>
# ...
</VirtualHost>

# This will not work!
<VirtualHost *>
# ...
</VirtualHost>

Baca dokumentasi Apache Virtual Host untuk detailnya.


Seandainya aku bisa memilih lebih dari satu kali. Mereka benar-benar harus menyebutkan ini lebih jelas dalam dokumentasi.
Alex W

13

Ganti ini:

NameVirtualHost *

Dengan ini:

NameVirtualHost *:80

2
Saya menghargai jawaban sederhana dan berharap aku bisa menerima baik
rcampbell

5

Menambah respons, satu hal yang saya perhatikan adalah Anda tidak dapat menjalankan SSL tanpa secara eksplisit mendeklarasikan: 80 pada setiap arahan NameVirtualHost dan VirtualHost, apache tidak akan mendukung memiliki:

NameVirtualHost *

dan

NameVirtualHost *: 443

Dicampur dalam konfigurasi yang sama, Anda akan mendapatkan kesalahan pada apache mendengarkan pada port nol jika Anda melakukannya.

Bagi saya, saya baru saja menambahkan: 80 ke setiap host sehingga SSL dapat bekerja dengan baik.


0

Ex:

<VirtualHost 85.25.97.252:80>
ServerName domain.com
ServerAlias ​​* .domain.com
ServerAdmin webmaster@domain.com
DocumentRoot "/var/www/domain.com/httpdocs/"
<Directory "/var/www/domain.com/ httpdocs / ">
Indeks Pilihan FollowSymLinks
AllowOverride All
Order allow, tolak
Allow dari semua
</Directory>
</VirtualHost>

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.