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?


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

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.


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>

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.


8

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

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

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>

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


4

Lembre-se de remover elementos fictícios em 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>

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


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


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


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


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

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>

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"

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

Simplesmente exclua essas entradas e substitua por:

<VirtualHost *:80>
    ServerAdmin serveradmin@host.com
    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.


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


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


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>

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

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


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.


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.


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>

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/")


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.