Saya mendapatkan kesalahan ini ketika mencoba mengakses localhost melalui browser.
AH01630: client denied by server configuration
Saya memeriksa izin folder situs saya menggunakan:
sudo chmod 777 -R *
Ini file konfigurasi saya:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/user-name/www/myproject
<Directory />
Options FollowSymLinks
AllowOverride all
Allow from all
</Directory>
<Location />
Allow from all
Order Deny,Allow
</Location>
<Directory /home/user-name/www/myproject/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
Allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride all
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride all
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
chmod 777
adalah kebiasaan yang sangat buruk, bahkan jika (seharusnya) hanya digunakan dalam contoh.Jawaban:
Jika Anda menggunakan Apache 2.4
Anda harus memeriksa izin dan menolak aturan
Lihat http://httpd.apache.org/docs/2.4/upgrading.html#access
Arahan baru Diperlukan :
2.2 konfigurasi:
2.4 konfigurasi:
Juga jangan lupa untuk me-restart server apache setelah perubahan ini (
# service httpd restart
)sumber
DocumentRoot
dan<Directory>
jalur.Order allow,deny ...
danRequire all granted
. Itu tidak akan bekerja. Hanya perlu salah satunya tergantung pada versi Anda. Itulah yang menghentikan saya dari menyelesaikan masalah saya pada awalnya.Untuk semua direktori, tulis
Require all granted
alih-alihAllow from all
Memperbarui
Jika hal di atas tidak berhasil maka hapus juga baris yang disebutkan di bawah ini:
sumber
Order allow,deny
garis juga.<Location /media> Require all granted </Location>
padadefault-ssl.conf
untuk CSS saya untuk dimuat. (Masalah saya adalah bahwa halaman login dapat diakses, tetapi tidak ada CSS atau file media lainnya dimuat ...)Allow from All
telah pensiun karena .... alasan ...)Periksa kembali apakah jalur DocumentRoot sudah benar. Itu bisa menyebabkan kesalahan ini.
sumber
<Directory>
blok. Saya juga punya beberapa perbedaan kasus. Setelah saya membuat dua nilai salinan karbon satu sama lain (tanpa garis miring), itu bekerja dengan sempurna.apache/logs/error.log
:AH00112: Warning: DocumentRoot [E:/xampp/htdocs/website/frontend/web] does not exist
Saya membuat perubahan yang sama yang disarankan ravisorg ke OSX 10.10 Yosemite yang memutakhirkan Apache ke versi 2.4. Di bawah ini adalah perubahan yang ditambahkan ke http.conf.
sumber
Ini membuat saya benar-benar gila selama satu setengah hari, tetapi saya menemukan solusi jika semua solusi lain telah dicoba tidak berhasil.
Ini untuk macOS.
Pada saat itu saya segera berhenti mendapatkan 403 kesalahan dan semuanya mulai berfungsi seperti yang diharapkan. Yang aneh adalah saya bahkan tidak perlu me-restart apache itu hanya bekerja, saya kira itu me-restart sendiri ketika saya pergi ke localhost saya, saya jujur tidak tahu tapi saya kira masalahnya adalah Apache tidak benar-benar me-restart ketika menggunakan apachectl me-restart, atau berhenti atau mulai. Semoga ini bisa membantu seseorang.
sumber
Masalahnya adalah di VirtualHost tetapi mungkin tidak
Konfirmasikan konfigurasi Anda sudah benar, ini sampel yang benar
sumber
<Directory ...> ... </Directory>
garis yang bekerja untuk saya karena saya menggunakan jalur direktori yang sebelumnya tidak ditentukan dalam konfigurasi Apache sebelumnya.Jika Anda mengekor log kesalahan dan memuat ulang halaman, Anda akan melihat beberapa informasi lebih lanjut tentang masalah yang sebenarnya.
Raih variabel lingkungan sehingga $ {APACHE_LOG_DIR} akan benar-benar berfungsi ...
Kemudian buntut dan tonton ...
sumber
LogLevel debug
ke VirtualHost, ini saran yang bagus, karena Anda akan melihat baris seperti "Wajib semua ditolak: ditolak", dan "<RequireAny>: ditolak" (yaitu jauh lebih berguna daripada hanya "klien ditolak oleh konfigurasi server", karena ini benar-benar memberitahu Anda konfigurasi mana !)Saya menyelesaikan diri saya setelah menghabiskan beberapa jam.
Saya menginstal Apache / 2.4.7 (Ubuntu) melalui buku pedoman di vagrant vm.
File /etc/apache2/apache2.conf tidak memiliki
<VirtualHost *:80>
elemen secara default.Saya melakukan dua perubahan untuk menyelesaikannya
<VirtualHost *:80>
Opsi Indeks IkutiSymLinks
AllowOverride semua
Perbolehkan dari semua
lalu akhirnya saya baru saja boot vm ..
sumber
Adakah yang berpikir tentang itu wamp server default tidak termasuk
httpd-vhosts.conf
file. Pendekatan saya adalah menghapus catatan di bawah inidalam
httpd.conf
file. Itu semuanya.sumber
conf/extra/httpd-vhosts.conf
file dan menggantinyaRequire local
denganRequire all granted
dalam hal ini,
Saya menggunakan macOS Mojave (Apache / 2.4.34). Ada masalah dalam pengaturan virtual host di file /etc/apache2/extra/httpd-vhosts.conf. setelah menambahkan tag direktori yang diperlukan masalah saya hilang.
Wajibkan semua diberikan
Semoga struktur pengaturan host virtual penuh akan menyelamatkan Anda.
yang harus Anda lakukan mengganti MainProjectFolderName dengan ProjectFolderName Anda yang sebenarnya.
sumber
Ini membuatku gila. Akhirnya menemukan apa masalahnya: Saya menggunakan jalur langsung untuk log kesalahan dan mereka salah.
Mengapa Apache memberikan pesan kesalahan yang kabur (dan salah)? Alih-alih menggunakan pesan kesalahan yang benar dan berguna seperti: Path untuk direktif ErrorLog "/wrong/path/and/filename.log" tidak valid.
Lagi pula, untuk memperbaiki pastikan arahan log kesalahan Anda terlihat seperti ini:
sumber
Jika Anda menggunakan Apache 2.4 di WampServer di OS windows.
Anda perlu membuka file https-vhosts.conf di notepad.
Jika Anda tidak dapat menemukan file di atas. periksa tangkapan layar di bawah ini
Dalam kode di atas Ganti
dengan
Dan simpan itu. Mulai ulang layanan Apache dan coba lagi.
sumber
Bagi saya, saya benar-benar memperbarui aturan Perbolehkan dan Tolak berdasarkan standar 2.4.
Namun, ini masih menyebabkan saya menerima kesalahan AH01630 yang sama. Saya menemukan utas lainnya dan disarankan menginstal ulang apache2. Entah bagaimana ini berhasil! Jika ada yang peduli untuk menjelaskan mengapa, itu akan sangat membantu.
Kredit ke: AH01630: klien ditolak oleh konfigurasi server tetapi mengharuskan semua yang diberikan diatur (Apache 2.4, CentOs)
sumber
Jika Anda memiliki host https maka jangan lupa untuk membuat
Require all granted
perubahan untuk ssl config juga.Juga, terkadang berguna untuk memeriksa izin sebagai pengguna apache:
sumber
Untuk Wamp 3 (Apache 2.4), selain menempatkan server online seperti yang dijelaskan dalam jawaban lain, dalam file Virtual Hosts
conf/extra/httpd-vhosts.conf
Anda mungkin perlu mengganti
dengan
Ini berlaku jika
httpd.conf
Anda milikisumber
Saat menggunakan Ubuntu, periksa apakah modul CGI diaktifkan. Jika tidak:
sumber
Pastikan bahwa konfigurasi khusus pengguna disertakan!
Jika tidak ada jawaban lain pada halaman ini untuk Anda bekerja, inilah yang saya temukan setelah berjam-jam berkeliaran.
Saya menggunakan konfigurasi khusus pengguna, dengan yang
Sites
ditentukan sebagaiUserDir
in saya/private/etc/apache2/extra/httpd-userdir.conf
. Namun, saya dilarang akses ke titik akhirhttp://localhost/~jwork/
.Saya bisa melihat
/var/log/apache2/error_log
bahwa akses ke/Users/jwork/Sites/
sedang diblokir. Namun, saya diizinkan untuk mengakses DocumentRoot, viahttp://localhost/
. Ini menyarankan bahwa saya tidak memiliki hak untuk melihat~jwork
pengguna. Tapi sejauh yang saya tahups aux | egrep '(apache|httpd)'
danlsof -i :80
, Apache berjalan untukjwork
pengguna, jadi ada sesuatu yang jelas tidak menulis dengan konfigurasi pengguna saya.Diberi nama pengguna
jwork
, inilah file konfigurasi saya:/private/etc/apache2/users/jwork.conf
Konfigurasi ini sangat valid. Namun, saya menemukan bahwa konfigurasi pengguna saya tidak dimasukkan:
/private/etc/apache2/extra/httpd-userdir.conf
Perhatikan bahwa ini adalah jalur default ke file conf userdir, tetapi seperti yang akan Anda lihat di bawah, ini dapat dikonfigurasi dalam
httpd.conf
. Pastikan baris berikut diaktifkan:/private/etc/apache2/httpd.conf
sumber
Bagi mereka yang terjebak pada kesalahan ini seperti saya dan tidak ada yang membantu dari atas: periksa apakah folder masalah dari error.log benar-benar ada di server Anda. Milik saya dihasilkan secara otomatis oleh Django di tempat yang salah (berantakan dengan root statis, lalu
manage.py collectstatic
). Tidak tahu mengapa orang tidak dapat menyebutkan kesalahan dengan benar.sumber
Di samping tidak ada
Order
danAllow
arahan yang disebutkan dalam jawaban lain, sadari bahwa ekspresi reguler yang tidak sesuai denganDirectoryMatch
arahan juga dapat menyebabkan kesalahan ini.Jika jalur yang diminta adalah
/home/user-foo1bar/www/myproject/
pencocokan folloing tidak akan cocokdengan demikian, bahkan konfigurasi akses yang valid dapat menyebabkan kesalahan ini.
sumber
Satu yang tidak jelas (yang baru saja mengatasinya), namun mungkin, penyebabnya adalah aturan internal mod_rewrite, dalam file konfigurasi utama (bukan .htaccess) yang menulis ke jalur yang ada di akar sistem file server. Katakanlah Anda memiliki
/media
direktori di situs Anda, dan Anda menulis ulang sesuatu seperti ini:Jika Anda memiliki
/media
direktori di root server Anda, penulisan ulang akan dicoba untuk itu (mengakibatkan kesalahan akses ditolak) daripada yang ada di direktori situs Anda, karena root sistem file diperiksa terlebih dahulu oleh mod_rewrite, untuk keberadaan direktori pertama di jalur, sebelum direktori situs Anda.sumber
Masalahnya mungkin arahan itu tidak di bawah <Direktori>
https://httpd.apache.org/docs/2.4/mod/mod_authz_host.html#requiredirectives
Arahan dapat dirujuk dalam bagian <Direktori>, <File>, atau <Lokasi> serta file .htaccess untuk mengontrol akses ke bagian tertentu dari server. Akses dapat dikontrol berdasarkan nama host klien atau alamat IP.
sumber
Saya mendapat satu lagi yang mungkin berguna bagi seseorang. Menerima pesan kesalahan yang sama setelah memutakhirkan dari PHP 5.6 => 7.0. Kami telah mengubah pengaturan unggah PHP, dan lupa untuk mengubahnya setelah disalin. Meskipun saya tidak mengunggah gambar pada saat itu, Silverstripe (CMS kami) menolak untuk menyimpan dan melempar kesalahan itu. Meningkatkan ukuran unggahan gambar dan langsung bekerja.
sumber
Dalam hal ini membantu siapa pun yang mencari Google seperti saya, saya memiliki pesan kesalahan ini mencoba mengakses file SVG di server saya, misalnya https://example.com/images/file.svg . Jenis file lain tampak baik-baik saja, hanya SVG yang gagal.
Saya mencari-cari
/etc/httpd
file conf dan memeriksa setiaprequire all denied
jenis konfigurasi, dan tidak dapat menemukan konfigurasi apa yang memiliki efek ini.Saya mengaktifkan LogLevel untuk men-debug dalam konfigurasi VirtualHost dan dapat melihat mod_authz_core logging yang menetapkan ada efek 'Tuntut semua ditolak':
Melalui pengujian buta saya memindahkan file ke root web root, dan menemukan saya kemudian dapat mengaksesnya di https://example.com/file.svg .. jadi hanya gagal di folder 'gambar'. Ini membawa saya ke file .htaccess di folder gambar yang saya tidak tahu ada di sana.
Ternyata Zen Cart 1.5 dilengkapi dengan file gambar / .htaccess yang memiliki:
Ini sangat menjengkelkan dan saya harap ini bisa mengingatkan orang lain untuk memeriksa file .htaccess di setiap tingkat sistem file yang mengarah ke file yang Anda mengalami kesulitan mengakses jika ada semacam kebodohan yang terjadi.
sumber
Saya benar-benar menyelesaikan yang ini dengan menambahkan akses direktori ke entri: 80.
Sebelum semua orang 'keamanan' pada saya, dalam keadaan khusus saya ini bukan masalah keamanan.
Jika Anda menggunakan sumber daya jarak jauh, saya akan merekomendasikan untuk memastikan permintaan CURL Anda berjalan melalui HTTPS / TLS, kemudian entri direktori ini berjalan pada port 443.
sumber
"Bug" ini sebenarnya adalah perilaku normal baru dari Apache 2.4. Dalam kasus saya, saya memiliki aturan yang sangat spesifik untuk menolak akses ke folder atau file apa pun dengan nama yang dimulai dengan ".", Jadi saya harus menetapkan pengecualian untuk folder publik tertentu yang memerlukan nama aneh tersebut.
Sebagai catatan, aturan penulisan ulang khusus saya adalah:
RewriteRule "(?!\.trusted)(^|/)\." - [F]
Aturan ini [F] menghapus semua yang dimulai dengan "." tapi
.trusted
, berkat keajaiban regex "?!" penyangkalan.sumber
Karena utas ini adalah hal pertama yang muncul ketika mencari kesalahan yang disebutkan, saya ingin menambahkan kemungkinan penyebab kesalahan ini: Anda mungkin telah
mod_evasive
aktif dan klien yang melihat kesalahan ini hanya telah melewati batas yang dikonfigurasikan dalammod_evasive.conf
Ini terutama merupakan penyebab yang perlu diselidiki jika Anda tiba-tiba mendapatkan kesalahan ini untuk klien yang tidak memiliki masalah sebelumnya dan tidak ada yang lain yang berubah.
(jika
mod_evasive
penyebabnya maka kesalahan akan hilang dengan sendirinya jika klien sementara berhenti mencoba mengakses situs; namun itu mungkin merupakan tanda bahwa Anda telah mengkonfigurasi batas terlalu ketat)sumber
Bagi saya, semua solusi yang diusulkan tidak akan berfungsi. Ini dapat membantu, jika Anda menggunakan cgi, fastcig atau fpm sebagai proxy Anda harus menambahkan lokasi di vhost Anda untuk menghindari masalah ini. Hal ini memungkinkan 404 untuk menjadi proksi melalui.
sumber