ChatGPT解决这个技术问题 Extra ChatGPT

WAMP error: Forbidden You don't have permission to access /phpmyadmin/ on this server

I am new to WAMP and I have just installed it today.

The setup went well and localhost seems to work, but when I try to access phpMyAdmin I get this error:

Forbidden You don't have permission to access /phpmyadmin/ on this server.

Why do I get this permission access error with phpMyAdmin?

I am using Windows 7.

Be carefull with the accepted answer, WAMP's phpmyadmin is configured to allow root with no password by default. Allow from all would open the database to the public. The real problem is that WAMP is binding to an IPv6 address on your version of Windows. To fix just add Allow from ::1 in c:\wamp\alias\phpmyadmin.conf <Directory "c:/wamp/apps/phpmyadmin3.4.5/">.
Strangely, this same question, give or take, is a protected as a community wiki here

A
Akhil Thayyil

Change the file content of c:\wamp\alias\phpmyadmin.conf to the following.

Note: You should set the Allow Directive to allow from your local machine for security purposes. The directive Allow from all is insecure and should be limited to your local machine.

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

Here my WAMP installation is in the c:\wamp folder. Change it according to your installation.

Previously, it was like this:

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

Modern versions of Apache 2.2 and up will look for a IPv6 loopback instead of a IPv4 loopback (your localhost).

The real problem is that wamp is binding to an IPv6 address. The fix: just add Allow from ::1 - Tiberiu-Ionuț Stan

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

This will allow only the local machine to access local apps for Apache.

Restart your Apache server after making these changes.


Previously this will be Deny from all Allow from 127.0.0.1 Also restart your apache server service after modifying
depends on your apache version. apache > 2.4.x, you need a different config. see my answer below
It seems like the reason why by default this was set to 127.0.0.1 is because that is the localhost ipv4 address. For some reason even though you are on the localhost, phpmyadmin is not allowing you in. Then you allow any user to gain access. This doesn't seem like a security vulnerability unless you put your wamp site online. I may be wrong though -- complete novice. Actually yeah, read the rest of the thread. Don't do the above fix.
WAMP's phpmyadmin is configured to allow root with no password. Allow from all would open the database to the public.
The real problem is that wamp is binding to an IPv6 address. The fix: just add Allow from ::1
P
Peter Mortensen

You have to just check whether your WAMP server is online or not.

To put your WAMP server online, follow these steps.

Go to your WAMP server notification icon (in the task bar). Single click on the WAMP server icon. Select last option from the menu, that is, Put Online Your server will restart automatically (in the latest versions only). Otherwise, you have to restart your server manually.

And you are DONE...


"latest versions only" will get outdated quickly. You ARE in the IT world, so please mention a version number. Plus this didn't work for me at all. Always have it online, running it as admin. Worse, have some domains working using virtual hosts but cant even access localhost or 127.0.0.1, or either with */phpmyadmin :s Stupidly strange. This is on Win8 btw. May have something to do with Visual Studio 2012 Ultimate 64bit edition also installed (which includes IIS 8, will update)
My goodness, I feel stupid. I spent quite a while messing around with "Require all granted" etc. Thank you.
The Put Online option is now unavailable. To enable it, Right click on the Wamp Icon > Wamp settings > Check on the Menu item: Online/Offline, when you now left click on the icon, the 'Put Online' option will be available
K
Kyle Cureau

If you're using WAMP with Apache 2.4.2 or greater, you need to use Require all instead of Allow and remove Order Deny,Allow:

<Directory "f:/Projects/myproject/www/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Require all granted
</Directory>

*as stated in this blog post


Forbidden You don't have permission to access /phpmyadmin/ on this server.
your answer was supposed to be the best answer ! worked like a charm :)
This worked for me. WAMP Server 2.2; Apache 2.4.2; Windows 8.
Thanks, this worked for me (unlike other answers here including the accepted one)
In my WAMP it was set to and that worked until I needed to change the folder to my dropbox folder. Why was it set to ? This solution works great however.
P
Peter Mortensen

Just use 127.0.0.1 instead of localhost (no changes to the configuration file are required).

System:

Windows 7

wampserver2.2d-x64

This works:

http://127.0.0.1/phpmyadmin/

This one fails:

http://localhost/phpmyadmin/

The why is because localhost is resolved as an IPv6 address, whereas wamp default config only allows the IPv4 loopback address.
P
Peter Mortensen

I just had the same problem. It turns out that my installation of Windows is using the IPv6 address ::1 instead of 127.0.0.1. To solve this, I opened httpd.conf and changed the following line:

Allow from 127.0.0.1

to:

Allow from 127.0.0.1 ::1

Now I can access the server through localhost. Whatever you do, don't remove the Deny from all from the line above, or anyone on your network can gain access to your web server (unless that's what you want of course).


I also had to make that change to all the aliases, by the way. To edit aliases, go to: "[wamp icon]->Apache->Alias directories->[alias-url]->edit alias"
I executed ping localhost on my cmd terminal and got Reply from ::1: time<1ms. It seems my Win7 machine is resolving localhost with an IPv6 address. Your solution did the trick. I agree, this should probably be the accepted answer.
Awesome!!!! I had the same problem on my Mac (MAMP) and now it works! You saved my day, dude!:D
In httpd.conf doesn't work for me, instead when I do the same thing in phpmyadmin.conf it works!
I think this answer should be edited, as the correct file to edit is wamp/alias/phpmyadmin.conf, and not httpd.conf
m
matalo

If you are on Windows 7 or 8 then Apache might be seeing the connections coming from "::1" which is the IPv6 equivalent of 127.0.0.1.

You can check this by looking in the Apache Access Log (reachable from the WAMP menu)

::1 - - [20/Dec/2012:21:35:04 +0000] "GET /phpmyadmin/ HTTP/1.1" 403 213

The ::1 at the start is the clients address. The 403 at the end is the Access Denied code.

The answers above will remove all restrictions and open phpmyadmin to all, but if you still want to restrict phpmyadmin to your machine only (generally a good idea) then under the line...

Allow from 127.0.0.1

..add the following:

Allow from ::1

(edit: Added suggestion from Nukeface)


Thank you. This should be the top comment. You explain the problem, solve it, and don't introduce a massive security vulnerability to someone's server.
I've got the solution as a separate and additional line. I use "Allow from 127.0.0.1 next line Allow from ::1". Just in case it switches back to IPv4 (because say me disabling IPv6)
P
Peter Mortensen

Change

Listen 80 

to

Listen 127.0.0.1:80 

in your httpd.conf file. It will bind Apache to a specific IP address and port.


j
jamesTheProgrammer

I found that using localhost would not work properly to allow local access from the server. I had to use 127.0.0.1.

In phpmyadmin.conf this did not work:

Deny from all
Allow from localhost

this did work:

Deny from all
Allow from 127.0.0.1

I am using WampServer Version 2.2


Thats probably because you dont have a properly configured HOSTS file, set that up correctly and you will be able to use localhost
C
CairoCoder

For Apache 2.4.2:

In httpd.conf:

Change

Require local

to

Require all granted

Bro You Made My Day :)
M
MikeL

I wanted to run my server online and not under localhost / 127.0.0.1 and had the forbidden message. I am running the WAMP 2.2 server (Apache 2.4.2 / PHP 5.4.3 / MySQL 5.5.24) on Windows 7 64 bit. What worked for me is the following:

Press the startup WAMP icon in the menu Choose Apache folder Choose the file httpd.conf Under the Directory tab section (section with "# Online --> Require all granted" text), I had the "Require local" option which I changed to "Require all granted" Restart all services of the WAMP

Again, it worked for me and from this thread I understand that there are many cases in which you may get the above error message so if mine does not work, try other solutions.

Good luck.

(I hope it helps someone like it helped me. I did not find any one of the solutions above working for me.)


You sir, solved a problem I spent my whole weekend trying to solve. Thank you!
P
Prabhagaran

1.change D:\wamp\bin\apache\apache2.4.9\conf\httpd.conf near line 279

Require local 

 into 

Require all granted

2.change like this in D:\wamp\alias\phpmyadmin.conf from existing one

   <Directory "d:/wamp/apps/phpmyadmin4.1.14/">
       Options Indexes FollowSymLinks MultiViews
       AllowOverride all
       Require all granted
       Order Deny,Allow
       Allow from all
   </Directory>

3.Click to Restart All services in wamp.

4.Click put online in wamp.

5.Again Click to Restart All services in wamp.

Hope it Helps..


P
Peter Mortensen

I fixed that problem before. It can happen due to many reasons, so you can use some or all of the next steps (opening mentioned files using any text editor, like Notepad++).

If you install WAMP in C:\wamp

1- Open file C:\wamp\bin\apache\apache2.2.22\conf\httpd.conf

Note: you may have a different Apache version than Apache 2.2.22, so you need to write it instead.

Search for: Directory "C:/wamp/www/". You will find something similar to this:

<Directory "C:/wamp/www/">
   # maybe there is some comments here ...
    AllowOverride all
    Order Allow,Deny
    Allow from all
</Directory>

Be sure that Allow from all is exists and not outcommented.

2- Open file C:\wamp\alias\phpmyadmin.conf.

Make sure that

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

Change Allow from 127.0.0.1 to Allow from all.

You can remove Deny from all or comment it out by adding # at the beginning of the line, but you have to make sure that Allow from all is the last line of code just before </Directory>.

Note: you may have a different version than phpMyAdmin 3.5.1.

To use localhost/phpmyadmin instead of 127.0.0.1/phpmyadmin:

Open file C:\wamp\bin\apache\apache2.2.22\conf\extra\httpd-vhosts.conf. Add the following at the end of it.

<VirtualHost *:80>
    DocumentRoot "C:/wamp/www"
    ServerName localhost
</VirtualHost>

It's WORKING. Thanks for so much.
U
Umesh Patil

The simple solution to this would be to find phpmyadmin.conf file and then find below code inside it,

<Directory "c:/wamp/apps/phpmyadmin3.5.1/">

Options Indexes FollowSymLinks MultiViews

AllowOverride all

    Order Deny,Allow

Deny from all

Allow from 127.0.0.1

</Directory>

Change "Deny from all" to "Allow from all".

OR

Follow below link to get better understanding on how to do it,

WAMP says Forbidden You don't have permission to access /phpmyadmin/ on this server Windows 7 or 8

Enjoy :)


E
Edu

If WampServer works in the computer it is installed but not on another device in your network (e.g.: from your phone) with the 'You don't have permission to access on this server.' try the following.

1. Edit the httpd-vhosts.conf (C:\wamp64\bin\apache\apache2.4.33\conf\extra\httpd-vhosts.conf), so it looks like this:

<Directory "${INSTALL_DIR}/www/">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require all granted
</Directory>

2. Edit the phpmyadmin.conf (C:\wamp64\alias\phpmyadmin.conf), so it looks like this:

<Directory "d:/wamp64/apps/phpmyadmin4.7.9/">
    Options +Indexes +FollowSymLinks +MultiViews
    AllowOverride all
        Order Deny,Allow
        Allow from all
        Require all granted

3. Restart WampServer services


for me applying step 1 (and 3) were all it took. This isn't a flaw, it's by design. For best practices see stackoverflow.com/questions/36810669/…
I
Ilce MKD

For Apache 2.4.2 the solution is: in httpd.conf on line 265 change Require none to Require all granted. That's all.


o
obesechicken13

I had commented out the ::1 line in my hosts file.


P
Peter Mortensen

Even I faced the same issue with my domain. If I gave an IP address it was working. But with a domain name it was not.

Then I checked my DNS A record. The domain had multiple entries with different IP addresses assigned. I removed all the wrong values, and it worked. Just one more check list if anyone faces a similar issue.


D
Daniel

Just edit the file "c:\wamp\alias\phpmyadmin.conf"

like this

<Directory "C:/wamp64/apps/phpmyadmin4.5.5.1/">
    Options Indexes FollowSymLinks MultiViews

    AllowOverride All
    Require all granted
</Directory>

C:/wamp64/apps/phpmyadmin4.5.5.1/ is not a file, and this question already had an accepted solution. Please try to avoid 'bumping' questions to the top by providing answers to them, unless the question was not already marked as resolved, or you found a dramatically better alternative approach to the problem :)
None of the solutions worked for me. I edited the correct path of the file, thank you for the tip.
m
madx

In WAMP 3.1.4 x64 I solved updating the file C:\wamp64\alias\phpmyadmin.conf from this:

Alias /phpmyadmin "c:/wamp64/apps/phpmyadmin4.8.3/"

<Directory "c:/wamp64/apps/phpmyadmin4.8.3/">
    Options +Indexes +FollowSymLinks +MultiViews
  AllowOverride all
  <ifDefine APACHE24>
        Require local
    </ifDefine>
    <ifDefine !APACHE24>
        Order Deny,Allow
    Deny from all
    Allow from localhost ::1 127.0.0.1
    </ifDefine>

# To import big file you can increase values
  php_admin_value upload_max_filesize 128M
  php_admin_value post_max_size 128M
  php_admin_value max_execution_time 360
  php_admin_value max_input_time 360
</Directory>

to this:

Alias /phpmyadmin "c:/wamp64/apps/phpmyadmin4.8.3/"

<Directory "c:/wamp64/apps/phpmyadmin4.8.3/">
    Options +Indexes +FollowSymLinks +MultiViews
  AllowOverride all
    Require all granted

# To import big file you can increase values
  php_admin_value upload_max_filesize 128M
  php_admin_value post_max_size 128M
  php_admin_value max_execution_time 360
  php_admin_value max_input_time 360
</Directory>

And finally restarting all WAMP services.


P
Peter Mortensen

In my case, the problem was that the phpMyAdmin version was specified wrongly in the phpmyadmin.conf file. You may check that:

Go to wamp/apps/phpmyadmin3.x.x: notice the file name - what version you are currently using? Open file wamp/alias/phpmyadmin.conf: Options Indexes FollowSymLinks MultiViews AllowOverride all Order Deny,Allow Allow from all

Check the first line (directory "c:/wamp/apps/phpmyadmin3.x.x/") is the file name exactly the same as your actual file name.

Make sure the directory file name is absolutely correct.


I
Ismael ozil

replace localhost with 127.0.0.1 in your URL, worked for me.


P
Promise Preston

I had a similar issue. My apache configuration file looked like this:

<VirtualHost *:80>
  ServerName  mywebsite.com
  ServerAlias www.mywebsite.com
  DocumentRoot "C:/wamp64/www/vtigercrm"
  <Directory "/"
    Options +Indexes +Includes +FollowSymLinks +MultiViews
      AllowOverride All
      Require all granted
  </Directory>
</VirtualHost>

Here's how I fixed it:

The issue was that I specified the Directory as "/" (that is root folder on my server) instead of "C:/wamp64/www/vtigercrm/", which is where I have my website files.

I modified my configuration this way:

<VirtualHost *:80>
  ServerName  mywebsite.com
  ServerAlias www.mywebsite.com
  DocumentRoot "C:/wamp64/www/vtigercrm"
  <Directory "C:/wamp64/www/myvtigercrm/"
    Options +Indexes +Includes +FollowSymLinks +MultiViews
      AllowOverride All
      Require all granted
  </Directory>
</VirtualHost>

And everything worked fine.

That's all I hope this helps


L
Long Dao

What was going on with my setup was that WAMP was binding to an IPv6 Address (and every subsequent time I reinstalled WAMP).

To fix this, I went into c:\wamp\alias\phpmyadmin.conf and added the line Allow from ::1


a
aspirin

The reason might be 127.0.0.1 is not linked to localhost. Check your 'C:\Windows\System32\drivers\etc\hosts' file. It should have a line like this:

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


P
Peter Mortensen

I tried to set up my password... And that's how I got locked out from localhost. They should fix this...

Anyway, be careful with random advice. They all may or may not work. But some advice will lock you out even further. The one that worked for me:

Type "http://127.0.0.1/phpmyadmin/" in the address bar.

Then I discovered that http://localhost/phpmyadmin/ also works.

However, before that, out of desperation I had...

I deleted the files, I uninstalled WAMP, deleted temporary cookies, and installed WAMP again. It still doesn't accept "localhost" (and I am tired after a day trying to access WAMP), but the 127.0.0.1 and the localhost/phpmy... work. I am happy to see the page back. And start working again.

If you read this thread all the way to here means you are probably in a big problem... Windows 8, WAMP (wampserver 2.2). I wonder what it needs to get back access to localhost.


R
Refaat

In my case a WAMP server was installed before on my pc, so when installing the new one some files not overwritten, all you have to do in that case is to go to the C:\ and delete the whole WAMP folder then install it again.


O
ObiVanKaPudji

Check if you are logged in as root or user with privileges. Just to be sure, logout and login again with root/no-password.


a
aeroson

If your WAMP icon is not green try: Left Click WAMP Icon > MySQL > Services > Install Service


P
Peter Mortensen

So all of these answers are basically the same one. They only address one idea: it has to be DNS related. Well, that is not the only part of this it turns out. After many changes, I was getting nowhere reading the next "same answer" hoping that it would just go my way.

What did the trick for me was to adjust my versions of Apache. I think what the deal was, is that the one of the configuration files get a path off or that the install due to IIS may have been messed up / or / or /etc. And so forcing a version change readdresses everything from your firewall to bad configurations.

In fact, when I switched back to Apache 2.4.2 it goes back to being a forbidden. And as soon as I go back to Apache 2.4.4 it comes back up. That rules out local network issues. I just wanted to point out that all of the answers here are the same and that I have been able to kill the forbidden by changing the Apache version.


P
Peter Mortensen

I had the same problem. The hosts file is corrupted! there were:

localhos 127.0.0.1

localhost 127.0.0.1

localhos 127.0.0.1
localhos 127.0.0.1

The result is that localhost is not defined.

Solution: edit the hosts file with admin rights and correct to only one entry:

localhost 127.0.0.1