Apache Virtual Host menunjuk ke DocumentRoot yang salah

9

Saya mengoperasikan VPS di Digital Ocean yang menjalankan Ubuntu 12.04.3, dengan host virtual. Saya dapat mengatur hal-hal berikut tutorial ini di sini: https://www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts

Namun, setelah beberapa hari saya menavigasi ke domain utama saya (noelforte.com) untuk memeriksa dan melihat apakah semuanya berjalan dengan lancar, tetapi alih-alih melihat halaman pendaratan yang telah saya atur sementara, saya malah disambut dengan daftar direktori.

Anehnya, subdomain yang saya konfigurasikan dengan VHosts masih menunjuk ke direktori yang benar, namun domain utama saya dikembalikan ke menunjuk pada akar dokumen default dari /var/www.

Menghapus file konfigurasi /etc/apache2/sites-availabledan mengatur semuanya lagi menghasilkan hasil yang sama: setiap subdomain akan menunjuk ke lokasi yang tepat, namun root TLD tetap terjebak menunjuk ke /var/www.

Apa yang mungkin menyebabkan situasi seperti ini, dan mengapa kemudian pada awalnya bekerja dengan baik?

Noel Forte
sumber

Jawaban:

12

Dipecahkan! Menjalankan sudo apache2ctl -Smengembalikan yang berikut:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server noelforte.com (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost noelforte.com (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost media.noelforte.com (/etc/apache2/sites-enabled/media.noelforte.com:1)

Saya memutuskan untuk menonaktifkan semua situs termasuk default dan hanya mengaktifkan situs yang saya butuhkan. Itu menyelesaikan masalah saya.

Jika seseorang dapat menjelaskan mengapa noelforte.comberjalan default-000seperti yang terlihat di sini:

port 80 namevhost noelforte.com (/etc/apache2/sites-enabled/000-default:1)

yang akan membantu menjelaskan apa yang mungkin telah salah konfigurasi. Terima kasih!

Noel Forte
sumber
Saya memiliki masalah yang sama, bagi saya itu karena ServerName diset sama dengan domain pada 000-default file.
Hard-Boiled Wonderland
1

Buat 000-defaultfile di /etc/apache2/sites-availableatau, jika sudah ada, edit. Di sinilah server web Anda akan menunjuk jika tidak ada virtualhost yang ditentukan untuk situs yang Anda cari.

Pastikan untuk memeriksa apakah file tersebut juga ada di /etc/apache2/sites-enabled. Jika tidak:ln -s /etc/apache2 sites-available/000-default /etc/apache2/sites-enabled/

Momo
sumber
Sudah ada defaultfile di /etc/apache2/sites-availabledirektori saya . Saya juga memiliki virtual host untuk noelforte.comdiatur dan diaktifkan, namun, itu tidak mengarah ke root dokumen yang didefinisikan dalam file vhost. Mengapa?
Noel Forte
0

Anda perlu mengedit /etc/apache2/sites-enabled/yourdomain.conf dan menambahkan "ServerName" ke "yourdomain". Mis:

<VirtualHost *:80>
    ServerName MyDomain
    DocumentRoot /var/www/myDomainFolder
...
</VirtualHost>
sudip
sumber