WAMP 403 Pesan terlarang di Windows 7


101

Saya telah menginstal WAMP versi 2.1 di mesin windows 7 saya. Ketika saya menjelajah ke localhost di browser saya, halaman server WAMP terlihat.

Tetapi ketika saya menelusuri ke IP saya di browser saya, saya mendapatkan pesan

403 Forbidden: Anda tidak memiliki izin untuk mengakses / di server ini.

Ada saran?


Akses ke server Apache Anda dilarang dari alamat selain 127.0.0.1di httpd.conf(file konfigurasi Apache)
Nasreddine

Saya mengoreksi itu, sekarang saya mendapatkan 403 Forbidden di phpMyAdmin saya, ada saran untuk itu?
Jake

ada juga phpmyadmin.confyang berisi arahan untuk alias 'localhost / phpmyadmin'
Nasreddine

jika Anda di sini untuk windows 8 chk stackoverflow.com/questions/13945783/…
lusuh

Jawaban:


126

Akses ke server Apache Anda dilarang dari alamat selain 127.0.0.1di httpd.conf(file konfigurasi Apache):

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
</Directory>

Hal yang sama berlaku untuk akses PHPMyAdmin Anda, file konfigurasinya adalah phpmyadmin.conf:

<Directory "c:/wamp/apps/phpmyadmin3.4.5/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
</Directory>

Anda dapat mengaturnya untuk mengizinkan koneksi dari semua alamat IP seperti berikut:

AllowOverride All
Order allow,deny
Allow from all

7
Ini pasti akan membuka akses dari alamat IP manapun, tapi bukankah itu sedikit berbahaya? Aturan untuk mengizinkan 'dari 127.0.0.1' harus cukup untuk memungkinkan akses lokal, jika itu adalah tujuan utama di sini, 127.0.0.1 pada dasarnya adalah loop kembali ke adaptor jaringan. Jika Anda mengetik di bilah alamat 'http': //127.0.0.1: {portNumber} / {folderOrFileName} 'seharusnya berfungsi dengan baik. Ini seharusnya berfungsi sama seperti menggunakan localhost, tetapi saya telah menemukan beberapa browser memiliki masalah dengan localhost karena beberapa alasan.
Jeremy

Saya tidak bisa memformat baris alamat saya di komentar terakhir itu jadi ada tambahan "'" di dalamnya abaikan saja maaf itu jika membingungkan siapa pun.
Jeremy

Catatan: file menetapkan default yang kemudian diganti satu per satu setelahnya, jadi pastikan baris ini mengikuti semua penggantian.
pertemuan

3
Jangan lupa untuk "Mulai Ulang Semua Layanan" dari menu baki sistem WAMP (atau cara apa pun yang Anda lakukan.)
Plummer

12
Untuk Apache versi 2.4.x ganti Require localdengan Require all granteddi dalam file httpd.conf di dalam <Directory "c:/wamp/www/">tag kemudian Restart semua layanan
Rakesh

62

Saya menemukan perbaikan yang lebih sederhana ...

Meskipun ikon berwarna hijau, WAMP tetap harus "Pasang Online" (item terakhir menu saat ikon klik kiri).

Setelah itu saya memiliki akses seperti biasa.


3
Sebenarnya, ini harus ditandai sebagai jawaban yang diterima. Terima kasih bung.
ummahusla

Solusi ini layak mendapat upvote karena konfigurasinya diperbarui ketika Anda benar-benar mengklik tombol put online: forum.wampserver.com/read.php?1,119467,119546
Pierre-Yves Guillemet

Ini memperbaikinya untuk saya juga. Meskipun dalam kasus saya, saya harus terlebih dahulu "Put offline", lalu "Pasang online" dan bekerja tanpa perubahan apa pun pada file konfigurasi saya! Terima kasih!!
Osmar

1
Sebenarnya, saya mulai membuat semua itu pada jawaban pertama yang diterima. Dan itu tidak membantu. Kemudian saya melihat ini di sini, dan saya berpikir 'Tidak mungkin ini bisa menjadi ini ...', tapi, begitulah dan berhasil.
Fusseldieb

Supercalifragilisticexpialidocious!
Vahid

25

Bagi saya, penyertaan "Memerlukan lokal" membantu mengatasi Kesalahan 403. File konfigurasi alias terlihat seperti ini:

Alias /mytest/ "C:/mytest/" 

<Directory "C:/mytest/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order allow,deny
    Allow from all
    Require local
</Directory>

3
Ini bekerja untuk saya juga, menggunakan Apache 2.4.9. Sudah lama mencari ini. Terima kasih!
Jonathan Lidbeck

Options Indexes FollowSymLinks MultiViewsdiperlukan juga
Hammad Khan

Ada alasan untuk menambahkan bagian "C: / mytest /"? Tampaknya tidak memiliki efek apa pun, dan hanya meninggalkan / pada akhirnya seperti standar tampaknya bekerja dengan baik
Squazz

Lebih baik gunakan 'Wajibkan semua diberikan' sebagai ganti 'Wajibkan lokal' jika Anda ingin membuka situs Anda di perangkat lain dari jaringan lokal Anda
Rakesh

Menambahkan "Izinkan dari semua" berhasil untuk saya.
Rex the Strange

10

Solusi untuk mengubah hak akses di httpd.conf akan berfungsi jika Anda setuju dengan memberikan akses ke server WAMP dari luar.

Jika Anda tidak ingin melakukannya, yang harus Anda lakukan adalah memberi tahu windows bahwa domain "localhost" menunjuk ke 127.0.0.1. Anda dapat melakukannya dengan mengedit file host di direktori sistem Anda.

File tersebut ditempatkan di: C: \ Windows \ System32 \ drivers \ etc \ hosts

secara default windows 7 dikirimkan dengan:

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

Anda harus menghapus komentar pada pemetaan untuk localhost:

# localhost name resolution is handled within DNS itself.
127.0.0.1       localhost
#   ::1         localhost

Catatan: Anda tidak akan dapat mengedit file host sebagai file hanya-baca. Untuk mengedit, Anda harus menjadi administrator, menyalin file ke lokasi lain, mengeditnya, lalu menyalinnya kembali ke direktori etc.

Saya tidak merekomendasikan perubahan file host. Gunakan izin file httpd.conf. gunakan pendekatan file hosts hanya jika Anda tidak ingin server diakses dari luar.


8

Coba tambahkan baris kode berikut ke file httpd-vhosts.conf:

<VirtualHost *:80>
ServerAdmin serveradmin@host.com
DocumentRoot "C:\wamp\www"
ServerName localhost
</VirtualHost>

7

Hal lain yang saya temukan adalah jika adaptor jaringan Anda menggunakan IPV6, itu tidak akan ditampilkan sebagai 127.0.0.1 tetapi :: 1

Apa yang akhirnya saya lakukan adalah ini:

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
    Allow from ::1
</Directory>

Hal yang sama berlaku untuk akses PHPMyAdmin Anda, file konfigurasinya adalah phpmyadmin.conf:

<Directory "c:/wamp/apps/phpmyadmin3.4.5/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
        Allow from ::1
</Directory>

Saya pikir jawaban ini benar-benar membahas hal penting yang ditanyakan, yaitu ketika IPv6 diaktifkan, localhost menyelesaikan ke alamat IPv6 (:: 1) dan yang pada gilirannya berarti bahwa alamat yang meminta juga akan menjadi alamat IPv6 (juga :: 1) yang TIDAK sama dengan 127.0.0.1 yang merupakan satu-satunya alamat yang mengizinkan koneksi. Juga, localhost menyelesaikan melalui server DNS lokal secara default (bukan host) dan itu hanya terlihat lebih baik menurut saya untuk membiarkannya seperti itu dan sebagai gantinya menonaktifkan IPv6 sehingga localhost menyelesaikan 127.0.0.1 atau mengubah / menyertakan seperti di atas.
fast-reflexes

hanya menambahkan 'Izinkan dari :: 1' ke "c: \ wamp \ alias \ file phpmyadmin.conf" memecahkan masalah 403 phpmyadmin.
ewroman

4

jika Anda telah menggunakan localhost / phpmyadmin /

cukup gunakan

127.0.0.1/phpmyadmin/ untuk PHPMyAdmin

127.0.0.1/sqlbuddy/ untuk SQLBuddy

atau jika Anda pernah menggunakan localhost: 8080 / phpmyadmin / then

127.0.0.1:8080/phpmyadmin/ untuk PHPMyAdmin

127.0.0.1:8080/sqlbuddy/ untuk SQLBuddy


4

Ingatlah untuk menghapus elemen dummy di httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>

Terima kasih! Ini memperbaikinya.
Steve

4

Untuk Apache versi 2.4.x cukup ganti Require localdengan Require all granteddi file httpd.conf di dalam <Directory "c:/wamp/www/">tag kemudian Restart semua layanan


1
Ini melakukan trik untuk saya. Anehnya, 2 VirtualHost lainnya (di httpd-vhosts.conf) tidak memiliki 'Require local' atau 'Require all given', dan masih berfungsi dengan baik. ¯_ (ツ) _ / ¯
kmdsax

3

Untuk Wamp 3.1.3 dan Apache 2.4 saya hanya perlu mengubah 1 baris di file httpd-vhosts.conf saya.

  1. Buka httpd-vhosts.conf
  2. Ubah "Wajibkan lokal" menjadi "Wajibkan semua yang diberikan"
  3. Mulai ulang semua layanan

Saya kemudian bisa masuk ke server apache saya dari komputer lain.

Berikan kredit untuk video ini: https://www.youtube.com/watch?v=Sy_f6wBGnjI


2

Ada banyak penyebab untuk masalah ini

Apa yang saya alami adalah:
1) 127.0.0.1 localhostentri diduplikasi di file host
2) Apache mod_rewritetidak diaktifkan

Terlepas dari penyebabnya, mencadangkanwww folder Anda , file konfigurasi vhost (dan file konfigurasi httpd) akan membantu. Dan proses seperti itu membutuhkan waktu beberapa menit.

Semoga berhasil


2

Saya membaca & mencoba Semua Perbaikan Tapi Tidak ada yang berhasil. Akhirnya saya Menemukan bahwa Logo Server Wamp Berwarna Hijau Tetapi Perlu "DITAMPILKAN SECARA ONLINE". Begitu sederhana & Perbaikan Cepat Setelah Memeriksa Anda PHPMyAdmin.Cofg& HttPD.cofgCukup Klik PUT ONLINE


1

Saya mencoba konfigurasi di atas dan hanya ini yang berfungsi untuk konfigurasi WAMP Apache 2.4.2 saya. Untuk beberapa situs root tanpa domain bernama di file host Windows Anda, gunakan http://locahost:8080, http://localhost:8081, http://localhost:8082dan konfigurasi ini:

#ServerName localhost:80
ServerName localhost

Listen 8080
Listen 8081
Listen 8082
#..... 
<VirtualHost *:8080>
    DocumentRoot "c:\www"
    ServerName localhost
    <Directory "c:/www/">
        Options Indexes FollowSymLinks
        AllowOverride all
        Require local
    </Directory>
</VirtualHost>
<VirtualHost *:8081>
    DocumentRoot "C:\www\directory abc\svn_abc\trunk\httpdocs"
    ServerName localhost
    <Directory "C:\www\directory abc\svn_abc\trunk\httpdocs">
        Options Indexes FollowSymLinks
        AllowOverride all
        Require local
    </Directory>
</VirtualHost>
#<VirtualHost *:8082></VirtualHost>.......

1

Saya menghadapi masalah ini dengan wamp di windows 7. Menambahkan kode berikut ke httpd-vhosts.conf memecahkan masalah untuk saya.

<VirtualHost *:80>
  DocumentRoot "F:/wamp_server/www/"
  ServerName localhost
</VirtualHost>

1

Terima kasih atas pertanyaan Anda. Saya menggunakan wamp 3 sekarang. Dan saya menemukan jawaban sederhana untuk melakukan ini di bawah pertanyaan Anda. Tapi jawaban itu harus sedikit berubah pada wamp 3. Langkah-langkahnya adalah sebagai berikut:

  1. Klik kanan ikon wamp
  2. Pilih Pengaturan Wamp
  3. Klik item Menu: online / offline
  4. Ikon wamp klik kiri
  5. Anda akan menemukan ada item baru bernama "Pasang online"

Terima kasih, @ miltonb.
Smart Du

1

Aku butuh waktu lama untuk memikirkannya.

C: \ wamp \ bin \ apache \ apache2.4.9 \ conf \ extra \ httpd-vhosts.conf

Dalam file ini Anda akan melihat beberapa contoh file virtual host, yang terlihat seperti:

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>

Cukup hapus entri ini dan ganti dengan:

<VirtualHost *:80>
    ServerAdmin serveradmin@host.com
    DocumentRoot "C:\wamp\www"
    ServerName localhost
</VirtualHost>

Anda pasti perlu memastikan bebek Anda yang lain berada dalam barisan tetapi ini untuk saya dengan solusi yang berhasil.


0

hai ada 2 solusi:

  1. ubah port 80 menjadi 81 di file teks (httpd.conf) dan klik 127.0.0.1:81

  2. ubah pengaturan jaringan pergi ke panel kontrol - jaringan dan internet - jaringan dan pusat berbagi

klik -> koneksi area lokal pilih -> propertis centang benar di -allow other ..... dan --- allo other .....


0

Saya punya masalah ini juga. Rute masalah saya adalah saya telah membuat kesalahan dalam file vhosts.conf saya. Jika Anda menggunakan vhosts, ini adalah hal lain untuk diperiksa


0

Konfigurasi di httpd.conf ini berfungsi dengan baik untuk saya.

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1 ::1
</Directory>

0

Pastikan Anda tidak menggunakan karakter pemisah direktori Windows (garis miring terbalik) di nama jalur Anda di file .conf Anda, meskipun Anda menggunakan Windows. Apache tidak memahaminya tetapi masih akan mulai dan kemudian mengeluarkan file403 Forbidden Message .

salah:

<Directory "c:\websites\my-website\">

Baik:

<Directory "c:/websites/my-website/">

0

Anehnya, tanda kurung siku di jalur DocumentRoot (dan terkait, seperti <Directory>) juga dapat menyebabkan kesalahan 403:

  • DocumentRoot "P:/TRY/web/fatfree/from_github/fatfree-master[bang]" gagal dengan 403, sementara
  • DocumentRoot "P:/TRY/web/fatfree/from_github/fatfree-master" bekerja dengan baik.

(Saya tidak repot-repot mencari tahu jalan keluar Apache, jika ada, cukup ganti nama jalannya saja. Jika ada yang tahu, komentar dipersilakan.)


0

Solusi saya adalah menonaktifkan pengkodean untuk file yang dikodekan (file-file ini berwarna hijau di windows). Saya mendapatkan file ini dari komputer MAC dan dienkripsi secara default.

Ive select these files > right click > properities > general tab > andvanced > uncheck encrypt files...

Dan voila itu berhasil.


0

Saya telah mencoba semua hal kecuali membersihkan kekacauan di file .htaccess.

Buka direktori www / dan buat salinan file .htaccess di folder lain. Kemudian hapus semua baris di .htaccess asli . Dan tambahkan baris ini,

RewriteEngine On

Kemudian restart server. Ini telah memecahkan masalah saya dan mendapat akses ke semua situs localhost saya. Berharap itu akan menyelesaikan masalah Anda juga.


0

Juga di Apache 2,4 Anda mungkin perlu menambahkan ini ke direktif direktori di conf, jika Anda memutuskan untuk menyertakan httpd-vhosts.conf.

Secara default Anda dapat menginstal wamp di C: \ tetapi tetap memilih untuk menyebarkan pengembangan web Anda di lokasi lain.

Untuk melakukan ini di dalam vhosts.conf Anda dapat menambahkan arahan ini:

<Directory "e:/websites">
    Options Indexes FollowSymLinks MultiViews
    DirectoryIndex index.php
    AllowOverride All
  <IfDefine APACHE24>
    Require local
  </IfDefine>
  <IfDefine !APACHE24>
    Order Deny,Allow
    Allow from all
    Allow from localhost ::1 127.0.0.1
  </IfDefine>
</Directory>

0

pastikan bahwa, nama file di direktori c:/wamp/apps/phpmyadmin3.1.3.1/, sesuai dengan nama (atau versi) di phpMyAdmin.conf ( Alias /phpmyadmin "c:/wamp/apps/phpmyadmin3.1.3.1/")


0

Saya telah menemukan bahwa jika Anda menggunakan ammps yang karena alasan tertentu selalu dilarang ketika berada di folder root Anda jadi saya meletakkannya di direktori di atas folder root saya dan membuat alias di httpd.conf menggunakan ini

Alias /phpmyadmin "C:/Program Files (x86)/Ampps/phpMyAdmin"

harap dicatat saya menggunakan ammps dan saya tidak tahu pasti apakah itu akan bekerja untuk orang lain tetapi patut dicoba;)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.