Apa yang terjadi adalah bahwa sintaks file konfigurasi di apache2.4 telah berubah.
Sumber: Ini telah terjadi pada saya juga setelah saya upgrade ke 13.10
file conf
Semua file yang ada di /etc/apache2/conf.d
dalamnya harus dipindahkan ke /etc/apache2/conf-available
.
Mereka sekarang bekerja dengan cara sites
dan mods
pekerjaan yang sama. Cukup masukkan file conf Anda di conf-available
folder dan aktifkan yang Anda inginkan a2enconf <config-file-name>
.
Contoh:
Saya punya file conf.d/httpd.conf
yang memiliki direktif ServerName.
Untuk membuatnya bekerja, saya harus memindahkannya ke conf-available
direktori dan mengaktifkannya secara manual.
sudo mv /etc/apache2/conf.d/httpd.conf /etc/apache2/conf-available/httpd.conf
sudo a2enconf httpd
file situs
Sebelumnya, file dalam /etc/apache2/sites-available
tidak memiliki ekstensi. Sebagai contoh /etc/apache2/sites-available/default
. Sekarang .conf
ekstensi diperlukan.
Contoh:
Jika sudah /etc/apache2/sites-available/some-site
, dalam 13,04 Anda cukup mengaktifkannya menggunakan sudo a2ensite some-site
. Sekarang itu akan memberi Anda kesalahan mengatakan
GALAT: Situs beberapa situs tidak ada!
Untuk memperbaikinya, tambahkan a .conf
ke semua file konfigurasi Anda di sites-available
. Anda dapat melakukan hal yang sama sites-enabled
, atau Anda dapat menghapus semua file dan mengaktifkannya kembali secara manual.
Saya sarankan melakukannya secara manual karena Anda mungkin perlu memperbaiki setiap VHost (langkah berikutnya).
sudo find /etc/apache2/sites-available/ ! -iname '*.conf' -type f -exec mv '{}' '{}'.conf \;
jika Anda memutuskan untuk melakukannya secara manual:
sudo rm /etc/apache2/sites-enabled/*
sudo a2ensite your-site-name
Arahan Host Virtual:
allow / deny vs Require
Jika Anda memiliki yang berikut:
<Directory /path/to/your/site/>
order allow,deny
allow from all
</Directory>
Itu harus menjadi:
<Directory /path/to/your/site/>
Require all granted
</Directory>
Untuk info lebih lanjut, periksa komentar oleh DaveRandom pada jawaban di Stack Overflow.
Sederhananya, jika Anda memutakhirkan ke apache2.4 dan tetap menggunakan httpd.conf
apache2.2 lama , izinkan arahan tetap berfungsi dengan baik. Jika Anda upgrade Anda httpd.conf
(yang saya akan menyarankan), Anda akan mendapatkan 403 kesalahan sampai Anda mengubah Order
/ Allow
/ Deny
arahan untuk setara mereka Require
.
Opsi Direktori
Jika Anda memiliki pilihan Directory, catatan bahwa mereka semua harus didahului dengan +
atau -
atau tidak satupun dari mereka sama sekali. Campuran keduanya tidak diizinkan:
Contoh:
Ini diperbolehkan:
<Directory /path/to/your/site/>
Options +Indexes +FollowSymLinks -MultiViews
</Directory>
Begitu juga ini (Perhatikan bahwa contoh-contoh ini tidak keduanya melakukan hal yang sama, yang sebelumnya menonaktifkan MultiViews
opsi, yang berikutnya tidak):
<Directory /path/to/your/site/>
Options Indexes FollowSymLinks MultiViews
</Directory>
Ini tidak lagi diizinkan:
<Directory /path/to/your/site/>
Options Indexes FollowSymLinks -MultiViews
</Directory>
Opsi konfigurasi terakhir akan melempar kesalahan sintaks yang mengatakan:
Semua Opsi harus dimulai dengan + atau -, atau tanpa Opsi.
Mulai ulang apache
Setelah semuanya selesai, Anda perlu me-restart server apache Anda agar perubahan diterapkan:
sudo apache2ctl restart
Anda dapat menemukan panduan upgrade terperinci dari 2,2 ke 2,4 pada dokumentasi resmi.
httpd.conf
file, atauconf.d
direktori. Tapi adaapache2.conf
file. Saya mencoba memindahkannya keconf-available
direktori, dan mendapatkan kesalahan berikut ketika saya me-restart apache2: apache2: Tidak dapat membuka file konfigurasi /etc/apache2/apache2.conf: Tidak ada file atau direktori seperti itu - Apa alasannya?