Mengapa saya mendapatkan Halaman Default Ubuntu Apache2 alih-alih halaman index.html saya sendiri?

8

Saya memiliki komputer Ubuntu 14.10 yang digunakan untuk pengujian situs web lokal , tidak melayani ke internet. Di atasnya, saya memiliki tujuh situs web yang diatur. Namun, ketika saya mengakses dua dari tujuh, saya mendapatkan Apache2 Ubuntu Default Pagealih - alih halaman indeks saya sendiri.

Sejauh yang saya tahu, saya mengatur ketujuh menggunakan proses yang sama persis, jadi saya tidak tahu apa yang dua ini hilang. Juga, di direktori log Apache saya, saya memiliki dua file log, errordan accessuntuk masing-masing dari dua situs yang mengalami gangguan, tetapi semuanya kosong. Ketika saya me-restart apache2layanan, tidak ada kesalahan. Saya telah menelusuri kembali langkah saya beberapa kali dan saya tidak dapat melihat perbedaan antara situs yang berfungsi dan situs yang tidak berfungsi.

Opsi apa yang saya miliki untuk mendiagnosis masalah ini? Bisakah saya memaksa lebih banyak log kesalahan verbose entah bagaimana? Apakah ada log lain di suatu tempat yang bisa saya rujuk?

Berikut adalah contoh .conffile untuk salah satu situs yang tidak berfungsi:

<VirtualHost *:80>
   ServerName www.local_example.com
   ServerAlias local_example.com
   ServerAdmin [email protected]

   DocumentRoot /var/www/Websites/example.com
   <Directory /var/www/Websites/example.com/>
       Options Indexes FollowSymLinks MultiViews
       # pcw AllowOverride None
       AllowOverride All
       Order allow,deny
       allow from all
       # This directive allows us to have apache2's default start page
       # in /apache2-default/, but still have / go to the right place
       # Commented out for Ubuntu
       #RedirectMatch ^/$ /apache2-default/
   </Directory>

   ErrorLog /home/example/Apache_Logs/local_example.com_error.log

   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn

   CustomLog /home/example/Apache_Logs/local_example.com_access.log combined
   ServerSignature On

</VirtualHost>
Penanya
sumber
2
Bagaimana Anda membuat host virtual? Apakah Anda membuatnya dengan menambahkan file /etc/apache2/sites-available? Jika demikian, apakah Anda mengaktifkannya sudo a2ensite <your_site_name>? Apakah file log kesalahan apache default ada sesuatu di dalamnya? Dan apakah Anda memiliki ServerAlias ​​atau ServerName yang dikonfigurasi dalam file host virtual Anda? Jika Anda menonaktifkan situs default sudo a2dissite 000-default(Anda dapat mengaktifkannya kembali sudo a2ensite 000-default), apakah itu berfungsi? Juga, mungkin Anda lupa me-restart apache?
Dan
@Dan, terima kasih telah merespons. Saya membuat situs dengan menambahkannya ke sites-available. Log kesalahan default tidak ada di dalamnya. Saya telah mendefinisikan ServerAliasdalam file hosts. Saya menonaktifkan 000-defaultsitus tetapi itu tidak mengubah apa pun. Saya memulai ulang dan memuat ulang apache berkali-kali.
Penanya
Ketika Anda menonaktifkan situs default dan me-restart apache, itu masih menampilkan halaman index.html default, atau itu menunjukkan satu dari host virtual yang berbeda? Bisakah Anda memposting konten dari salah satu file vhost yang nakal? Ini mungkin membuat segalanya lebih mudah bagi kita untuk membantu.
Dan
@Dan, Terima kasih telah merespons. Ketika saya membuat perubahan yang Anda sarankan, seperti yang saya sebutkan, tidak ada yang berubah, artinya itu menunjukkan halaman indeks default yang sama persis. Saya telah menambahkan .conffile ke pertanyaan saya.
Penanya

Jawaban:

8

Coba yang berikut ini

Aktifkan log verbose

sudo nano /etc/apache2/apache2.conf

Temukan variabel LogLevel, dan perbarui dari peringatan default untuk info atau debug. debug akan menghasilkan jumlah output terbesar.

# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
# 
LogLevel debug

Mulai ulang Apache

sudo service apache2 restart

Apache termasuk alat pemeriksaan sintaks kecil yang bagus

apache2ctl -t

Memeriksa Definisi Host Virtual

apache2ctl -S
2707974
sumber
Terima kasih atas saran ini. Saya mengatur level log ke debug, dan saya masih sama sekali tidak ada entri dalam file log kesalahan. Log akses sekarang menunjukkan setiap kali saya membuka situs, tetapi tidak ada yang lain.
Penanya
6

Bagi saya, salah satu saran dari @Dan menyelesaikannya.

sudo a2dissite 000-default.conf
service apache2 reload

Rupanya konfigurasi situs default mengesampingkan konfigurasi vhost saya.

muluk
sumber
Di server lain itu berperilaku berbeda dan index.php dibaca bukan index.html. Situasi yang sangat licik
Margus Pala
2

setelah instalasi index.html memiliki prioritas yang lebih tinggi itu sebabnya Anda masih melihat halaman Ubuntu default periksa folder ini var / www / html / rename atau hapus halaman ini sesederhana itu

Amin
sumber
1

Ternyata masalahnya adalah izin.

Ketika Anda menyimpan situs web dalam direktori di luar /var/wwwdan terhubung dengan symlink, maka direktori sumber, dan direktori induknya harus memiliki izin 755.

Untuk beberapa alasan yang tidak diketahui, kedua situs yang bermasalah memiliki izin yang berbeda, dan berjalan chmod -R 755di direktori situs web, dan direktori induknya , menyelesaikan masalah.

Penanya
sumber
Anda tidak boleh berjalan chmod -R 755di direktori karena semua file di sana akan ditandai sebagai "executable" ...
Alexis Wilke
@AlexisWilke, apa perintah yang lebih baik untuk mengatur izin yang tepat?
Penanya
Tidak ada yang mudah untuk mengubah izin semua direktori dan bukan standar ... Anda dapat menggunakannya find. Sesuatu seperti ini: find top-dir-name -type d -exec chmod 755 {} \;.
Alexis Wilke