Gejala dan solusinya
Di banyak situs web atau forum tanya jawab, orang bingung gejala dan penyebab sebenarnya. Saya baru saja memutakhirkan server ubuntu dari 13.10 menjadi 14.04.1 dan mengalami gejala yang sama persis seperti yang dijelaskan oleh OP, termasuk:
1- apache yang tampaknya tidak berfungsi. 2- variabel konfigurasi apache tidak terdefinisi. 3- kesalahan sintaks yang disebutkan oleh OP.
Masalahnya adalah bahwa tidak semua gejala ini benar-benar cocok dengan masalah yang sebenarnya dan mereka hanya berfungsi sebagai pengalih perhatian bagi mereka yang mencoba yang terbaik untuk membantu.
Masalah root yang berbeda dapat menyebabkan administrator datang ke situs seperti ini dengan deskripsi yang kira-kira sama: "Saya memutakhirkan OS dan sekarang apache tidak berfungsi ..."
Satu penyebab spesifik
Dengan semua gejala yang tampak sama persis seperti OP, saya tertarik pada pertanyaan ini. Sayangnya, satu-satunya jawaban yang berisi petunjuk yang valid ke akar penyebab masalah saya adalah downvoted (-1), diposting oleh user1469291 dengan perwakilan 1 !! Jadi saya mencari lebih jauh situs web lain sampai saya menemukan penjelasan yang jelas tentang masalahnya (dan dengan demikian solusinya).
Solusi berikut mungkin tidak memecahkan masalah OP yang sebenarnya, tapi saya yakin itu akan membantu orang lain yang tertarik dengan pertanyaan ini karena alasan yang sama seperti saya.
/etc/apache2/apache2.conf berisi:
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
yang berarti bahwa hanya file konfigurasi situs di / etc / apache2 / situs-enabled / diakhiri dengan .conf yang akan dimuat. Symlink yang lebih lama di direktori itu akan diabaikan.
Dulu hanya situs-enabled / *. Itu sebabnya semua file konfigurasi virtual host saya yang saya beri nama ww1.example.com, ww2.example.com, dll, dulu berfungsi tetapi tiba-tiba dan awalnya tidak dapat dijelaskan berhenti bekerja setelah peningkatan.
Jadi, ubah direktif di atas dan muat ulang apache, atau, seperti yang saya lakukan, secara manual menghapus semua symlink yang lebih lama di situs yang diaktifkan /, ganti nama semua file di situs yang tersedia / untuk menambahkan akhiran .conf dan kemudian aktifkan kembali masing-masing situs secara individual.
Selain itu, arahan default di apache.conf lebih ketat:
<Directory />
Options FollowSymLinks
AllowOverride None
Require all deny
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Jadi, jika Anda meng-host situs virtual Anda di / home / user / suatu tempat, pastikan untuk mengesampingkan arahan dengan tepat.