WAMP 403 Forbidden komunikat w systemie Windows 7

101

Zainstalowałem WAMP w wersji 2.1 na moim komputerze z systemem Windows 7. Kiedy przechodzę do localhost w mojej przeglądarce, strona serwera WAMP jest widoczna.

Ale kiedy przeglądam mój adres IP w przeglądarce, otrzymuję komunikat

403 Forbidden: Nie masz uprawnień dostępu / na tym serwerze.

Jakieś sugestie?

Jake
źródło
Dostęp do twojego serwera Apache jest zabroniony z adresów innych niż 127.0.0.1w httpd.conf(plik konfiguracyjny Apache)
Nasreddine
Poprawiłem to, teraz otrzymuję 403 zabronione w moim phpMyAdminie, jakieś sugestie?
Jake
istnieje również plik phpmyadmin.confzawierający dyrektywy dla aliasu „localhost / phpmyadmin”
Nasreddine,
jeśli jesteś tutaj dla systemu Windows 8 chk, ten stackoverflow.com/questions/13945783/...
shabby

Odpowiedzi:

126

Dostęp do serwera Apache jest zabroniony z adresów innych niż 127.0.0.1w httpd.conf(plik konfiguracyjny Apache):

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

To samo dotyczy dostępu do PHPMyAdmin, plik konfiguracyjny to 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>

Możesz ustawić je tak, aby zezwalały na połączenia ze wszystkich adresów IP, na przykład:

AllowOverride All
Order allow,deny
Allow from all
Nasreddine
źródło
7
To z pewnością otworzy dostęp z dowolnego adresu IP, ale czy nie jest to trochę niebezpieczne? Reguła zezwalająca na „z 127.0.0.1” powinna wystarczyć, aby umożliwić lokalny dostęp. Jeśli to jest tutaj głównym celem, to w zasadzie 127.0.0.1 jest pętlą z powrotem do karty sieciowej. Jeśli wpiszesz w pasku adresu „http”: //127.0.0.1: {numer_portu} / {folderOrFileName} ”, powinno działać dobrze. Powinno to działać tak samo, jak używanie localhost, ale zauważyłem, że niektóre przeglądarki mają z jakiegoś powodu problemy z hostem lokalnym.
Jeremy
Nie mogłem sformatować wiersza adresu w ostatnim komentarzu, więc jest w nim dodatkowe „” ”, po prostu zignoruj ​​przepraszam, jeśli kogoś to dezorientuje.
Jeremy
Uwaga: plik ustawia wartości domyślne, które są następnie nadpisywane pojedynczo, więc upewnij się, że te wiersze idą po wszystkich przesłonięciach.
meetar
3
Nie zapomnij „Uruchom ponownie wszystkie usługi” z menu paska zadań WAMP (lub jakkolwiek to zrobisz).
Plummer,
12
Dla wersji Apache 2.4.x zastąpić Require localze Require all grantedw httpd.conf plik wewnątrz <Directory "c:/wamp/www/">tagu następnie uruchom ponownie wszystkie usługi
Rakesh
62

Znalazłem prostszą poprawkę ...

Chociaż ikona była zielona, ​​WAMP nadal musi być ustawiony na „Umieść online” (ostatnia pozycja menu po kliknięciu lewym przyciskiem myszy).

Potem miałem już normalny dostęp.

Bobs Yeruncle
źródło
3
W rzeczywistości należy to oznaczyć jako zaakceptowaną odpowiedź. Dzięki koleś.
ummahusla
To rozwiązanie zasługuje na uznanie, ponieważ konfiguracja jest aktualizowana po kliknięciu przycisku umieszczania online: forum.wampserver.com/read.php?1,119467,119546
Pierre-Yves Guillemet
To też naprawiło to dla mnie. Chociaż w moim przypadku musiałem najpierw „przełączyć do trybu offline”, a następnie „przełączyć do trybu online” i działałem bez żadnych innych zmian w moich plikach konfiguracyjnych! Dziękuję Ci!!
Osmar
1
Właściwie zacząłem robić to wszystko w pierwszej, zaakceptowanej odpowiedzi. I to nie pomogło. Wtedy zobaczyłem to tutaj i pomyślałem: „Nie ma mowy, żeby to było to…”, ale to było to i zadziałało.
Fusseldieb
Supercalifragilisticexpialidocious!
Vahid
25

Dla mnie włączenie „Wymagaj lokalnego” pomogło rozwiązać błąd 403. Plik konfiguracyjny aliasu wygląda następująco:

Alias /mytest/ "C:/mytest/" 

<Directory "C:/mytest/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order allow,deny
    Allow from all
    Require local
</Directory>
Girts Strazdins
źródło
3
To zadziałało również dla mnie, używając Apache 2.4.9. Szukałem tego od dawna. Dzięki!
Jonathan Lidbeck,
Options Indexes FollowSymLinks MultiViewsjest również wymagane
Hammad Khan
Czy jest jakiś powód dodania części „C: / mytest /”? Wydaje się, że nie ma to żadnego efektu, a po prostu pozostawienie / w końcu tak, jak jest w standardzie, wydaje się działać równie dobrze
Squazz
Lepiej użyj „Wymagaj wszystkich przyznanych” zamiast „Wymagaj lokalnego”, jeśli chcesz otworzyć swoją witrynę na innych urządzeniach w sieci lokalnej
Rakesh
Dodanie „Zezwól od wszystkich” zrobiło to za mnie.
Rex the Strange
10

Rozwiązanie do zmiany uprawnień w httpd.conf zadziała, jeśli nie przeszkadza Ci zapewnienie dostępu do serwera WAMP z zewnątrz.

Jeśli nie chcesz tego robić, wystarczy, że powiesz systemowi Windows, że domena „localhost” wskazuje na adres 127.0.0.1. Możesz to zrobić, edytując plik hosts w katalogu systemowym.

Plik znajduje się w: C: \ Windows \ System32 \ drivers \ etc \ hosts

domyślnie system Windows 7 zawiera:

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

Musisz usunąć komentarz mapowania dla localhost:

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

Uwaga: nie będzie można edytować pliku hosts jako pliku tylko do odczytu. Aby edytować, musisz być administratorem, skopiować plik do innej lokalizacji, edytować go, a następnie skopiować z powrotem do katalogu itp.

Nie polecam zmiany pliku hosts. Użyj uprawnień pliku httpd.conf. użyj podejścia opartego na pliku hosts tylko wtedy, gdy nie chcesz, aby serwer był dostępny z zewnątrz.

Punit Raizada
źródło
8

Spróbuj dodać następujące wiersze kodu do pliku httpd-vhosts.conf:

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "C:\wamp\www"
ServerName localhost
</VirtualHost>
WADeveloper
źródło
7

Inną rzeczą, jaką się dowiedziałem, jest to, że jeśli twoja karta sieciowa używa IPV6, nie będzie wyświetlana jako 127.0.0.1, ale :: 1

Skończyło się na tym, że:

<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>

To samo dotyczy twojego dostępu do PHPMyAdmin, plik konfiguracyjny to 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>
Geekhuh
źródło
Myślę, że ta odpowiedź naprawdę odnosi się do ważnej rzeczy, o którą się pytamy, a mianowicie, że gdy włączony jest protokół IPv6, localhost przekształca się w adres IPv6 (:: 1), co z kolei oznacza, że ​​adres żądający będzie również adresem IPv6 (również :: 1), który NIE jest tym samym co 127.0.0.1, który jest jedynym adresem, z którego połączenia są dozwolone. Ponadto, localhost jest domyślnie rozwiązywany przez lokalny serwer DNS (nie hosty) i według mnie lepiej wygląda, jeśli zostawię to w ten sposób i zamiast tego albo wyłącz IPv6, aby localhost został rozwiązany na 127.0.0.1 lub zmień / uwzględnij jak powyżej.
szybki refleks
samo dodanie „Zezwól z :: 1” do pliku „c: \ wamp \ alias \ phpmyadmin.conf” rozwiązało problem 403 z phpmyadmin.
ewroman
4

jeśli użyłeś localhost / phpmyadmin /

po prostu użyj

127.0.0.1/phpmyadmin/ dla PHPMyAdmin

127.0.0.1/sqlbuddy/ dla SQLBuddy

lub jeśli użyłeś localhost: 8080 / phpmyadmin / then

127.0.0.1:8080/phpmyadmin/ dla PHPMyAdmin

127.0.0.1:8080/sqlbuddy/ dla SQLBuddy

suiz
źródło
4

Pamiętaj, aby usunąć atrapy elementów w httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin [email protected]
    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 [email protected]
    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>
user3684707
źródło
Dzięki! To naprawiło.
Steve
4

Dla Apache w wersji 2.4.x po prostu wymienić Require localsię Require all grantedw httpd.conf plik wewnątrz <Directory "c:/wamp/www/">tagu następnie uruchom ponownie wszystkie usługi

Rakesh
źródło
1
To załatwiło sprawę dla mnie. Dziwne jest to, że 2 inne VirtualHosts (w httpd-vhosts.conf) nie mają opcji „Wymagaj lokalnego” lub „Wymagaj wszystkich danych” i nadal działają dobrze. ¯_ (ツ) _ / ¯
kmdsax Sierpnia
3

Dla Wamp 3.1.3 i Apache 2.4 musiałem po prostu zmienić 1 linię w moim pliku httpd-vhosts.conf.

  1. Otwórz httpd-vhosts.conf
  2. Zmień „Wymagaj lokalnych” na „Wymagaj wszystkich przyznanych”
  3. Uruchom ponownie wszystkie usługi

Mogłem wtedy dostać się do mojego serwera Apache z innych komputerów.

Podaj uznanie dla tego filmu: https://www.youtube.com/watch?v=Sy_f6wBGnjI

EldritchText
źródło
2

Przyczyn tego problemu może być wiele

Doświadczyłem:
1) 127.0.0.1 localhostwpis został zduplikowany w pliku hosts
2) Apache mod_rewritenie był włączony

Niezależnie od przyczyny, wykonaj kopię zapasową plikuwww folderu vhost plik konfiguracyjny (plik konfiguracyjny i httpd) pomoże. A taki proces trwa kilka minut.

Powodzenia

ericn
źródło
2

Przeczytałem i wypróbowałem wszystkie poprawki, ale żadna nie działała. W końcu odkryłem, że logo Wamp Server jest zielone, ale musi być „PUT ONLINE”. Tak prosta i szybka naprawa po sprawdzeniu PHPMyAdmin.Cofgi po HttPD.cofgprostu kliknij PUT ONLINE

Nexones
źródło
1

Wypróbowałem powyższe konfiguracje i tylko to działało dla mojej konfiguracji WAMP Apache 2.4.2. W przypadku wielu witryn głównych bez nazwanych domen w pliku hostów systemu Windows użyj http://locahost:8080, http://localhost:8081, http://localhost:8082tej konfiguracji:

#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>.......
s6712
źródło
1

Napotkałem ten problem z wampem w systemie Windows 7. Dodanie następującego kodu do httpd-vhosts.conf rozwiązało problem.

<VirtualHost *:80>
  DocumentRoot "F:/wamp_server/www/"
  ServerName localhost
</VirtualHost>
Vishal
źródło
1

Dziękuję za pytanie. Używam teraz wampa 3. Pod twoim pytaniem znajduję prostą odpowiedź. Ale ta odpowiedź powinna się trochę zmienić w wampie 3. Kroki są następujące:

  1. Kliknij prawym przyciskiem myszy ikonę wampa
  2. Wybierz opcję Wamp Setting
  3. Kliknij element menu: online / offline
  4. Kliknij lewym przyciskiem ikonę wampa
  5. Znajdziesz nowy element o nazwie „Umieść online”
Smart Du
źródło
Dziękuję @ miltonb.
Smart Du
1

Zajęło mi wieczność, zanim to rozgryzłem.

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

W tym pliku zauważysz kilka przykładowych plików hosta wirtualnego, które wyglądają następująco:

<VirtualHost *:80>
    ServerAdmin [email protected]
    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 [email protected]
    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>

Po prostu usuń te wpisy i zamień na:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "C:\wamp\www"
    ServerName localhost
</VirtualHost>

Zdecydowanie musisz się upewnić, że twoje inne kaczki są w rzędzie, ale to dla mnie z rozwiązaniem, które zadziałało.

Aaron S.
źródło
0

cześć są 2 rozwiązania:

  1. zmień port 80 na 81 w pliku tekstowym (httpd.conf) i kliknij 127.0.0.1:81

  2. zmień ustawienia sieci przejdź do panelu sterowania - sieć i internet - centrum sieci i udostępniania

kliknij -> połączenie lokalne wybierz -> właściwość sprawdź prawdę w -allow inne ..... i --- allo inne .....

يوسف الجرعي
źródło
0

Ja też miałem ten problem. Droga mojego problemu była taka, że ​​popełniłem błąd w pliku vhosts.conf. Jeśli używasz vhostów, to kolejna rzecz do sprawdzenia

Pattle
źródło
0

Ta konfiguracja w httpd.conf działa dobrze dla mnie.

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1 ::1
</Directory>
Fabio
źródło
0

Upewnij się, że nie używasz znaku separatora katalogów systemu Windows (ukośnika odwrotnego) w nazwach ścieżek w pliku .conf, nawet jeśli używasz systemu Windows. Apache ich nie rozumie, ale nadal uruchamia się, a następnie wyświetla plik 403 Forbidden Message.

źle:

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

dobrze:

<Directory "c:/websites/my-website/">
David Murdoch
źródło
0

Co zaskakujące, nawiasy kwadratowe w DocumentRoot (i powiązanych, takich jak <Directory>) ścieżkach mogą również powodować błąd 403:

  • DocumentRoot "P:/TRY/web/fatfree/from_github/fatfree-master[bang]" nie udało się z 403, podczas gdy
  • DocumentRoot "P:/TRY/web/fatfree/from_github/fatfree-master" działało dobrze.

(Nie zawracałem sobie głowy szukaniem ucieczki ścieżki Apache, jeśli w ogóle, po prostu zmieniłem nazwę ścieżki. Jeśli ktoś wie, komentarze są mile widziane.)

Sz.
źródło
0

Moim rozwiązaniem było wyłączenie kodowania dla zakodowanych plików (te pliki są zielone w Windows). Mam te pliki z komputera MAC i są one domyślnie zaszyfrowane.

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

I voila, to działa.

petkopalko
źródło
0

Próbowałem wszystkich rzeczy oprócz usuwania bałaganu w pliku .htaccess.

Przejdź do katalogu www / i zrób kopię pliku .htaccess w innym folderze. Następnie wyczyść wszystkie linie w oryginalnym pliku .htaccess . I dodaj tę linię,

RewriteEngine On

Następnie zrestartuj serwer. To rozwiązało mój problem i uzyskałem dostęp do wszystkich moich witryn hosta lokalnego. Mam nadzieję, że to rozwiąże również twoje.

siddhu151dj
źródło
0

Również na Apache 2,4 może być konieczne dodanie tego do dyrektywy katalogu w conf, na wypadek gdybyś zdecydował się dołączyć httpd-vhosts.conf.

Domyślnie możesz zainstalować wampa w C: \, ale nadal możesz zdecydować się na wdrożenie oprogramowania internetowego w innej lokalizacji.

Aby to zrobić wewnątrz vhosts.conf, możesz dodać tę dyrektywę:

<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>
amresh tripathi
źródło
0

upewnij się, że nazwa pliku w katalogu jest c:/wamp/apps/phpmyadmin3.1.3.1/zgodna z nazwą (lub wersją) w phpMyAdmin.conf ( Alias /phpmyadmin "c:/wamp/apps/phpmyadmin3.1.3.1/")

M.Yousif
źródło
0

Odkryłem, że jeśli używasz amperów, które z jakiegoś powodu zawsze są zabronione, gdy są w twoim folderze głównym, więc umieściłem je w katalogu nad moim folderem głównym i utworzyłem alias w httpd.conf użyciu tego

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

uwaga, używam amperów i nie wiem na pewno, czy to zadziała dla innych, ale warto spróbować;)

Nik Hendricks
źródło