Mensagem proibida WAMP 403 no Windows 7

101

Eu instalei o WAMP versão 2.1 em minha máquina com Windows 7. Quando eu navego para localhost no meu navegador, a página do servidor WAMP está visível.

Mas quando eu navego para o meu IP no meu navegador, recebo a mensagem

403 Proibido: Você não tem permissão para acessar / neste servidor.

Alguma sugestão?

Jake
fonte
O acesso ao seu servidor Apache é proibido de outros endereços do que 127.0.0.1em httpd.conf(arquivo de configuração do Apache)
Nasreddine
Eu corrigi isso, agora estou recebendo 403 Forbidden no meu phpMyAdmin, alguma sugestão para isso?
Jake de
há também um phpmyadmin.confque contém diretivas para o alias 'localhost / phpmyadmin'
Nasreddine
se você estiver aqui para o Windows 8, chk this stackoverflow.com/questions/13945783/…
pobre

Respostas:

126

O acesso ao seu servidor Apache é proibido de diferentes endereços 127.0.0.1em httpd.conf(arquivo de configuração do Apache):

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

O mesmo vale para o seu acesso ao PHPMyAdmin, o arquivo de configuração é 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>

Você pode configurá-los para permitir conexões de todos os endereços IP da seguinte forma:

AllowOverride All
Order allow,deny
Allow from all
Nasreddine
fonte
7
Isso certamente abrirá o acesso de qualquer endereço IP, mas não é um pouco perigoso? A regra para permitir 'de 127.0.0.1' deve ser suficiente para permitir o acesso local, se esse for o objetivo principal aqui, o 127.0.0.1 é basicamente um loop de volta para o adaptador de rede. Se você digitar na barra de endereço 'http': //127.0.0.1: {portNumber} / {folderOrFileName} ', deve funcionar bem. Isso deve funcionar da mesma forma que usar o localhost, mas descobri que alguns navegadores têm problemas com o localhost por algum motivo.
Jeremy
Não consegui formatar minha linha de endereço no último comentário, então há um "'" extra nele, apenas ignore, desculpe se isso confunde alguém.
Jeremy
Nota: o arquivo define padrões que são então substituídos um de cada vez, então certifique-se de que essas linhas vão após todas as substituições.
encontro
3
Não se esqueça de "Reiniciar todos os serviços" no menu da bandeja do sistema WAMP (ou como você fizer isso)
Plummer
12
Para o Apache versão 2.4.x, substitua Require localpor Require all grantedno arquivo httpd.conf dentro da <Directory "c:/wamp/www/">tag e reinicie todos os serviços
Rakesh
62

Eu encontrei uma solução mais simples ...

Embora o ícone seja verde, o WAMP ainda precisa ser "Colocar Online" (último item do menu ao clicar com o botão esquerdo do mouse no ícone).

Depois disso, tive acesso normalmente.

Bobs Yeruncle
fonte
3
Na verdade, isso deve ser sinalizado como uma resposta aceita. Valeu, cara.
ummahusla
Esta solução merece um voto positivo porque a configuração é atualizada quando você realmente clica no botão colocar online: forum.wampserver.com/read.php?1,119467,119546
Pierre-Yves Guillemet
Isso consertou para mim também. Embora no meu caso eu tenha primeiro que "Colocar offline", depois "Colocar online" e trabalhei sem quaisquer outras alterações nos meus arquivos de configuração! Obrigado!!
Osmar de
1
Na verdade, comecei a fazer todas essas coisas na primeira resposta aceita. E não ajudou. Aí eu vi isso aqui, e pensei 'Não pode ser isso ...', mas era isso e funcionou.
Fusseldieb
Supercalifragilisticexpialidocious!
Vahid
25

Para mim, a inclusão de "Exigir local" ajudou a resolver o erro 403. O arquivo de configuração do alias tem a seguinte aparência:

Alias /mytest/ "C:/mytest/" 

<Directory "C:/mytest/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order allow,deny
    Allow from all
    Require local
</Directory>
Girts Strazdins
fonte
3
Isso funcionou para mim também, usando o Apache 2.4.9. Estou procurando por isso há muito tempo. Obrigado!
Jonathan Lidbeck,
Options Indexes FollowSymLinks MultiViewstambém é necessário
Hammad Khan
Alguma razão para adicionar a parte "C: / mytest /"? Não parece ter nenhum efeito, e apenas deixar um / no final como está como padrão parece funcionar tão bem
Squazz
É melhor usar 'Exigir todos concedidos' em vez de 'Exigir local' se quiser abrir seu site em outros dispositivos de sua rede local
Rakesh
Adicionar "Permitir de todos" funcionou para mim.
Rex the Strange
10

A solução para alterar as permissões no httpd.conf funcionará se você concordar em fornecer acesso externo ao servidor WAMP.

Se você não quiser fazer isso, tudo o que você precisa fazer é dizer ao Windows que o domínio "localhost" aponta para 127.0.0.1. Você pode fazer isso editando o arquivo hosts no diretório do sistema.

O arquivo está localizado em: C: \ Windows \ System32 \ drivers \ etc \ hosts

por padrão, o Windows 7 vem com:

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

Você deve descomentar o mapeamento para localhost:

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

Nota: você não poderá editar o arquivo hosts como um arquivo somente leitura. Para editar, você precisa ser o administrador, copie o arquivo para algum outro local, edite-o e depois copie-o de volta para o diretório etc.

Eu não recomendo a alteração do arquivo hosts. Use as permissões do arquivo httpd.conf. use a abordagem de arquivo hosts apenas se não quiser que o servidor seja acessado de fora.

Punit Raizada
fonte
8

Tente adicionar as seguintes linhas de código ao arquivo httpd-vhosts.conf:

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

Outra coisa que descobri é que se o seu adaptador de rede usar IPV6, ele não será mostrado como 127.0.0.1, mas: 1

O que acabei fazendo é o seguinte:

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

O mesmo vale para o seu acesso ao PHPMyAdmin, o arquivo de configuração é 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
fonte
Acho que esta resposta realmente aborda o importante que está sendo perguntado, ou seja, quando o IPv6 está habilitado, o localhost resolve para um endereço IPv6 (:: 1) e que, por sua vez, significa que o endereço solicitante também será um endereço IPv6 (também :: 1) que NÃO é o mesmo que 127.0.0.1, que é o único endereço do qual as conexões são permitidas. Além disso, localhost é resolvido por meio do servidor DNS local por padrão (não os hosts) e é melhor deixar assim e, em vez disso, desabilitar o IPv6 para que localhost resolva para 127.0.0.1 ou alterar / incluir como acima.
reflexos rápidos de
apenas adicionar 'Permitir de :: 1' a "arquivo c: \ wamp \ alias \ phpmyadmin.conf" resolveu o problema do phpmyadmin 403.
ewroman
4

se você usou localhost / phpmyadmin /

simplesmente use

127.0.0.1/phpmyadmin/ para PHPMyAdmin

127.0.0.1/sqlbuddy/ para SQLBuddy

ou se você usou localhost: 8080 / phpmyadmin / then

127.0.0.1:8080/phpmyadmin/ para PHPMyAdmin

127.0.0.1:8080/sqlbuddy/ para SQLBuddy

Suiz
fonte
4

Lembre-se de remover elementos fictícios em 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
fonte
Obrigado! Isso consertou.
Steve
4

Para o Apache versão 2.4.x simplesmente substitua Require localpor Require all grantedno arquivo httpd.conf dentro da <Directory "c:/wamp/www/">tag e reinicie todos os serviços

Rakesh
fonte
1
Isso funcionou para mim. O estranho é que 2 outros VirtualHosts (em httpd-vhosts.conf) não têm 'Exigir local' ou 'Exigir todos concedidos' e ainda funcionam bem. ¯_ (ツ) _ / ¯
kmdsax
3

Para Wamp 3.1.3 e Apache 2.4, eu simplesmente tive que mudar 1 linha em meu arquivo httpd-vhosts.conf.

  1. Abra httpd-vhosts.conf
  2. Altere "Exigir local" para "Exigir todos concedidos"
  3. Reinicie todos os serviços

Consegui então acessar meu servidor apache de outros computadores.

Dê crédito a este vídeo: https://www.youtube.com/watch?v=Sy_f6wBGnjI

EldritchText
fonte
2

Pode haver muitas causas para esses problemas

O que eu experimentei é:
1) a 127.0.0.1 localhostentrada estava duplicada no arquivo de hosts
2) Apache mod_rewritenão estava habilitado

Independentemente da causa, fazer backup de sua wwwpasta, o arquivo de configuração vhost (e o arquivo de configuração httpd) ajudará. E esse processo leva alguns minutos.

Boa sorte

Ericn
fonte
2

Eu li e tentei todas as correções, mas nenhuma funcionou. Finalmente descobri que o logotipo do servidor Wamp é verde, mas precisa ser "COLOCADO ONLINE". Tão simples e uma solução rápida após verificar PHPMyAdmin.Cofge HttPD.cofgbasta clicar em PUT ONLINE

Nexones
fonte
1

Eu tentei as configurações acima e só funcionou para minha configuração WAMP Apache 2.4.2. Para vários sites raiz sem domínios nomeados em seu arquivo hosts do Windows, use http://locahost:8080, http://localhost:8081, http://localhost:8082e esta configuração:

#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
fonte
1

Eu enfrentei esse problema com o wamp no Windows 7. Adicionar o código a seguir ao httpd-vhosts.conf resolveu o problema para mim.

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

Obrigado pela sua pergunta. Estou usando o wamp 3 agora. E encontro uma resposta simples para fazer isso em sua pergunta. Mas essa resposta deve mudar um pouco no wamp 3. As etapas são as seguintes:

  1. Clique com o botão direito no ícone wamp
  2. Escolha a configuração Wamp
  3. Clique no item de menu: online / offline
  4. Clique com o botão esquerdo no ícone wamp
  5. Você verá que há um novo item chamado "Colocar online"
Smart Du
fonte
Obrigado, @miltonb.
Smart Du
1

Levei uma eternidade para descobrir isso.

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

Neste arquivo, você notará vários arquivos de host virtual de exemplo, que se parecem com:

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

Simplesmente exclua essas entradas e substitua por:

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

Você definitivamente precisa ter certeza de que seus outros patos estão em uma fila, mas esta é a solução que funcionou para mim.

Aaron S.
fonte
0

oi, existem 2 soluções:

  1. mude a porta 80 para 81 no arquivo de texto (httpd.conf) e clique em 127.0.0.1:81

  2. alterar a configuração da rede vá para o painel de controle - rede e internet - centro de rede e compartilhamento

clique -> conexão de área local selecione -> propriedade verificar true no -permitir outro ..... e --- allo outro .....

يوسف الجرعي
fonte
0

Eu tive esse problema também. O caminho do meu problema foi que eu cometi um erro no meu arquivo vhosts.conf. Se você estiver usando vhosts, isso é outra coisa a verificar

Pattle
fonte
0

Esta configuração em httpd.conf funciona bem para mim.

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

Certifique-se de não usar um caractere separador de diretório do Windows (barra invertida) nos nomes de caminho do arquivo .conf, mesmo se estiver no Windows. O Apache não os entende, mas ainda iniciará e produzirá um 403 Forbidden Message.

errado:

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

certo:

<Directory "c:/websites/my-website/">
David Murdoch
fonte
0

Surpreendentemente, os colchetes em caminhos DocumentRoot (e relacionados, como <Directory>) também podem causar o erro 403:

  • DocumentRoot "P:/TRY/web/fatfree/from_github/fatfree-master[bang]" falhou com 403, enquanto
  • DocumentRoot "P:/TRY/web/fatfree/from_github/fatfree-master" funcionou bem.

(Não me incomodei em descobrir o escape do caminho do Apache, se houver, apenas renomeei o caminho. Se alguém souber, comentários são bem-vindos.)

Sz.
fonte
0

Minha solução foi desabilitar a codificação de arquivos codificados (esses arquivos são verdes no Windows). Peguei esses arquivos do computador MAC e foi criptografado por padrão.

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

E pronto, funciona.

petkopalko
fonte
0

Eu tentei todas as coisas, exceto limpar a bagunça no arquivo .htaccess.

Vá para o diretório www / e faça uma cópia do arquivo .htaccess em outra pasta. Em seguida, limpe todas as linhas do arquivo original .htaccess . E adicione esta linha,

RewriteEngine On

Em seguida, reinicie o servidor. Isso resolveu meu problema e deu acesso a todos os meus sites localhost. Espero que resolva o seu também.

siddhu151dj
fonte
0

Também no Apache 2,4 você pode precisar adicioná-lo à diretiva de diretório em conf, caso tenha decidido incluir httpd-vhosts.conf.

Por padrão, você pode instalar o wamp em C: \, mas ainda optar por implantar seu desenvolvimento web em outro local.

Para fazer isso dentro do vhosts.conf, você pode adicionar esta diretiva:

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

certifique-se de que o nome do arquivo no diretório c:/wamp/apps/phpmyadmin3.1.3.1/corresponda ao nome (ou versão) no arquivo phpMyAdmin.conf ( Alias /phpmyadmin "c:/wamp/apps/phpmyadmin3.1.3.1/")

M. Yousif
fonte
0

Eu descobri que se você está usando amps, por algum motivo é sempre proibido quando está na sua pasta raiz, então eu coloquei no diretório acima da minha pasta raiz e criei um alias no httpd.conf usando este

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

Observe que estou usando amplificadores e não sei ao certo se funcionará para outras pessoas, mas vale a pena tentar;)

Nik Hendricks
fonte