Saya memiliki komputer Ubuntu 14.10 yang digunakan untuk pengujian situs web lokal, tidak melayani internet. Di dalamnya, saya telah menyiapkan tujuh situs web. Namun, ketika saya mengakses dua dari tujuh situs web tersebut, saya mendapatkan Halaman Default Ubuntu Apache2
, bukan halaman indeks saya sendiri.
Sejauh yang saya tahu, saya menyiapkan ketujuh situs web tersebut menggunakan proses yang sama persis, jadi saya tidak tahu apa yang hilang dari dua situs web ini. Juga, di direktori log Apache saya, saya memiliki dua file log, error
dan access
untuk masing-masing dari dua situs yang bermasalah, tetapi semuanya kosong. Ketika saya me-restart layanan apache2
, tidak ada kesalahan. Saya telah menelusuri kembali langkah-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 mendiagnosa masalah ini? Dapatkah saya memaksa log kesalahan yang lebih verbose? Apakah ada log lain di suatu tempat yang bisa saya rujuk?
Berikut ini adalah contoh file .conf
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>
Cobalah yang berikut ini
Aktifkan log verbose
sudo nano /etc/apache2/apache2.conf
Cari variabel LogLevel, dan perbarui dari default warn ke 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 menyertakan alat pengecekan sintaks kecil yang bagus
apache2ctl -t
Memeriksa Definisi Host Virtual
apache2ctl -S
Ternyata masalahnya adalah perizinan.
Ketika Anda menyimpan situs web di direktori di luar /var/www
dan terhubung dengan symlink, maka direktori sumber, dan direktori induknya harus memiliki izin 755
.
Untuk beberapa alasan yang tidak diketahui, kedua situs yang salah memiliki izin yang berbeda, dan menjalankan chmod -R 755
pada direktori situs web, dan direktori parent nya, memecahkan masalah.