Saya mendapatkan
[Sel 24 Apr 12:12:55 2012] [kesalahan] [klien 127.0.0.1] klien ditolak oleh konfigurasi server: / labs / Projects / Nebula / bin /
Struktur direktori saya terlihat seperti (Saya menggunakan Symfony 2, seharusnya struktur serupa untuk kerangka kerja web lainnya)
Saya memiliki pengaturan vhosts seperti:
<VirtualHost nebula:80>
DocumentRoot "/labs/Projects/Nebula/web/"
ServerName nebula
ErrorLog "/var/log/httpd/nebula-errors.log"
</VirtualHost>
<Directory "/labs/Projects/Nebula/">
Options All
AllowOverride All
Order allow,deny
Allow from 127.0.0 192.168.1 ::1 localhost
</Directory>
Saya bertanya-tanya apa masalahnya dan bagaimana cara memperbaikinya?
Jawaban:
Apache 2.4.3 (atau mungkin sedikit lebih awal) menambahkan fitur keamanan baru yang sering mengakibatkan kesalahan ini. Anda juga akan melihat pesan log dari formulir "klien ditolak oleh konfigurasi server". Fitur ini memerlukan identitas pengguna yang sah untuk mengakses direktori. Diaktifkan oleh DEFAULT di httpd.conf yang dikirimkan bersama Apache. Anda dapat melihat pengaktifan fitur dengan arahan
Ini pada dasarnya mengatakan untuk menolak akses ke semua pengguna. Untuk memperbaiki masalah ini, hapus arahan yang ditolak (atau jauh lebih baik) tambahkan arahan berikut ke direktori yang ingin Anda beri akses:
seperti dalam
sumber
Satisfy Any
setelahRequire all granted
Satisfy any
dalam konteks ini? Saya bertanya karena saya mencabut rambut saya di sini, dan menambahkan ini membuat semuanya bekerja untuk saya. Yang aneh adalah aplikasi ini bekerja dengan entri vhost yang ada hingga pembaruan Apache baru-baru ini2.4.9
. Lebih aneh lagi, apakah itu berfungsi dengan baik di server lain dengan versi app / vhost dan Apache / PHP yang sama. Server yang berbeda - AWS Linux dan Ubuntu 14.10 masing-masing. Aneh ... Saya kira saya perlu membandingkanhttpd.conf
file masing-masing server untuk melihat apakah ada perbedaan konfigurasi di sana ...htaccess
di jalur yang Anda coba aksesOK saya menggunakan sintaks yang salah, saya harus menggunakan
sumber
Require all granted
, seperti yang disarankan oleh @ Phil-LDi Apache 2.4 sintaksis otorisasi akses lama telah ditinggalkan dan digantikan oleh sistem baru menggunakan Require .
Yang Anda inginkan adalah sesuatu seperti yang berikut:
Ini akan memungkinkan koneksi yang berasal baik dari host lokal atau dari alamat ip yang dimulai dengan "192.168.1".
Ada juga modul baru yang tersedia yang membuat Apache 2.4 mengenali sintaks lama jika Anda tidak ingin segera memperbarui konfigurasi Anda:
sumber
Bisakah Anda mencoba mengubah "Izinkan dari 127.0.0 192.168.1 :: 1 localhost" menjadi "Izinkan dari semua". Jika itu memperbaiki masalah Anda, Anda harus mengurangi batasan tentang dari mana konten dapat diminta
sumber
Inilah file host virtual symfony 1.4 saya di debian, yang berfungsi dengan baik.
Jika Anda tidak ingin membatasi akses ke rentang ip tertentu, mis. Localhost gunakan ini:
The mod_authz_host bertanggung jawab untuk menyaring rentang ip. Anda dapat mencari hal-hal detail di sana.
Tapi mungkin masalahnya bisa terkait dengan beberapa jenis kesalahan konfigurasi di "apache2.conf" Anda.
Pada OS apa apache berjalan?
sumber
jika Anda memiliki
di httpd.conf lalu pastikan kita memilikinya
seperti pada baris di bawah ini di httpd.conf
sumber
Saya mengalami masalah ini menggunakan Vesta CP dan bagi saya, triknya adalah menghapus .htaccess dan mencoba mengakses file apa pun lagi.
Itu menghasilkan regenerasi file .htaccess dan kemudian saya dapat mengakses file saya.
sumber
Dalam kasus saya kuncinya adalah:
dalam definisi vhost. Saya harap ini membantu seseorang.
sumber
Kode ini bekerja untuk saya ..
Semoga ini bisa membantu orang lain
sumber