Apache2 "Memerlukan semua yang diberikan" tidak berfungsi

12

Saya memiliki instalasi baru Apache2 pada pengujian Debian dan mengkonfigurasi virtual host di direktori seperti ini:

<Directory "/path/to/project">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
</Directory>

Namun itu menunjukkan saya kesalahan Terlarang 403 ketika saya mengaksesnya dan log kesalahan menunjukkan:

[Mon Sep 23 22:07:57.249276 2013] [authz_core:debug] [pid 8599] mod_authz_core.c(802): [client 127.0.0.1:49057] AH01626: authorization result of Require all denied: denied
[Mon Sep 23 22:07:57.249349 2013] [authz_core:debug] [pid 8599] mod_authz_core.c(802): [client 127.0.0.1:49057] AH01626: authorization result of <RequireAny>: denied
[Mon Sep 23 22:07:57.249361 2013] [authz_core:error] [pid 8599] [client 127.0.0.1:49057] AH01630: client denied by server configuration: /path/to/project/some_file

Mengapa ini menunjukkan "hasil dari semua Persyaratan ditolak: ditolak" jika saya menggunakan "Perlu semua yang diberikan" ?

File-file tersebut dapat dibaca oleh setiap pengguna dan kalau-kalau saya mencoba mengubah pemilik ke Apache (www-data) tanpa keberuntungan. Juga, host default pada http://localhostberfungsi normal dan phpmyadmin http://localhost/phpmyadminjuga berfungsi.

Semua bantuan yang saya temukan di Internet adalah tentang mengganti arahan Pesanan dengan Persyaratan. Saya sudah melakukannya. Apa yang bisa menjadi masalah sekarang?

hairlessdev
sumber
Itu terlihat benar bagiku. Apakah Anda yakin mereka bukan arahan lain yang lebih spesifik dengan Persyaratan semua ditolak?
Richard Garts

Jawaban:

5

Berikut adalah dua hal untuk dicoba:

1) Jalankan apachectl -tuntuk memeriksa sintaks file Anda valid.

2) Jalankan apachectl -Suntuk menunjukkan file mana yang sedang diuraikan.

Misalnya, Anda mungkin mengedit /usr/local/etc/apache2/2.4/httpd.conf dan apakah itu benar? ... tetapi jika Anda menjalankan apachectl -S Anda mungkin melihat:

VirtualHost configuration:
*:80                   localhost (/private/etc/apache2/extra/httpd-vhosts.conf:23)

yaitu. Tuan rumah virtual mengesampingkan httpd.conf Anda, dan mungkin berisi sendiri Require all deniedatau serupa.

Doug
sumber
3

Anda telah mengatur otorisasi, tetapi tidak ada otentikasi. Jadi, sementara 'Memerlukan semua yang diberikan' akan memberikan akses semua pengguna terotentikasi, pengguna Anda tidak benar-benar mengotentikasi.

Dennis Kaarsemaker
sumber
9
Jadi di mana Anda harus mengatur otentikasi? Tidak terlalu jelas ...
edi9999
2
Meskipun secara teknis benar, ini tidak menjawab pertanyaan. Require all grantedsecara khusus memungkinkan semua akses dan tidak memerlukan otentikasi apa pun. Tidak ada gunanya mengautentikasi ketika Anda secara metaforis membuka pintu dengan lebar.
Martijn Heemels
2

Karena Anda menggunakan AllowOverride Allarahan, Anda mungkin juga memiliki .htaccessfile /path/to/project/. Yang ini mungkin berisi arahan utama.

Periksa juga jika Anda tidak memiliki beberapa parameter lain dalam VHost untuk dicontoh.

piernov
sumber
Saya berjuang dengan kesalahan ini. Setelah banyak meninjau semua file konfigurasi Apache saya menemukan file .htaccess dengan konten yang tidak valid. Tidak ada pesan yang menunjukkan hal ini.
Dustin Butler
1

Setelah menginstal Wampserver 32, saya memiliki masalah yang sama dengan ditolak oleh Apache.

Saya telah memeriksa dan mencoba memodifikasi httpd.conffile dengan berbagai cara selama 3 hari tanpa hasil, berkeliling tutorial Apache dan forum Internet dengan kesalahan terkenal:

AH01630: klien ditolak oleh konfigurasi server

Saya cukup yakin saya tidak mendefinisikan VirtualHost dan tidak ada yang terlihat di file httpd.conf.

Akhirnya, saya mengkonfigurasi server untuk file kesalahan "debug", yang memberi saya pesan yang lebih menarik:

AH01626: hasil otorisasi Membutuhkan lokal: ditolak

yang pada gilirannya membawa saya ke pos ini.

Dan itu dia, tersembunyi di dalam C:\wamp\bin\apache\apache2.4.18\conf\extra\httpd-vhosts.conffile: VirtualHost yang tidak diinginkan dengan "Memerlukan lokal" eksplisit yang tentu saja menolak semua pertanyaan saya dari luar server.

Sekarang, saya telah mengosongkan file ini sampai saya mungkin memerlukan VirtualHost, dan itu berfungsi dengan baik. Pada akhirnya, saya merasa agak aneh dari Wampserver untuk tidak hanya melakukan pra-konfigurasi file ini tanpa memberi tahu pengguna tetapi untuk menetapkan nilai default sehingga "server" tidak dapat melayani apa pun.

François Mercey
sumber