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.ddalamnya harus dipindahkan ke /etc/apache2/conf-available.
Mereka sekarang bekerja dengan cara sitesdan modspekerjaan yang sama. Cukup masukkan file conf Anda di conf-availablefolder dan aktifkan yang Anda inginkan a2enconf <config-file-name>.
Contoh:
Saya punya file conf.d/httpd.confyang memiliki direktif ServerName.
Untuk membuatnya bekerja, saya harus memindahkannya ke conf-availabledirektori 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-availabletidak memiliki ekstensi. Sebagai contoh /etc/apache2/sites-available/default. Sekarang .confekstensi 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 .confke 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.confapache2.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/ Denyarahan 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 MultiViewsopsi, 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.conffile, atauconf.ddirektori. Tapi adaapache2.conffile. Saya mencoba memindahkannya keconf-availabledirektori, 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?