9

I've configured my EC2 instance as a LAMP, following Amazon's tutorial. That appears to be functioning correctly (I can see phpinfo() in a file I've uploaded OK).

I then tried to install phpMyAdmin by doing the following:

sudo yum --enablerepo=epel install phpmyadmin

I can see that phpMyAdmin is now in /usr/share/phpmyadmin, so I added an symbolic link:

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

I then edited http.conf to add AllowOverride all to <Directory "/var/www/html">. (Command: sudo nano /etc/httpd/conf/httpd.conf)

And then restarted the server:

sudo service httpd restart

But whenever I visit http://ec2-xx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com/phpmyadmin I get a 403 Forbidden response from the server: You don't have permission to access /phpmyadmin on this server.

I feel like I'm missing something really obvious, but I cannot figure out what.

Chuck Le Butt
  • 47,570
  • 62
  • 203
  • 289

3 Answers3

9

I needed to update the /etc/httpd/conf.d/phpMyAdmin.conf to allow remote users.

I just replaced the contents of the first <directory> tag like so...

I removed:

<Directory /usr/share/phpMyAdmin/>
 AddDefaultCharset UTF-8

 <IfModule mod_authz_core.c>
  # Apache 2.4
  <RequireAny>
    Require ip 127.0.0.1
    Require ip ::1
  </RequireAny>
 </IfModule>
 <IfModule !mod_authz_core.c>
  # Apache 2.2
  Order Deny,Allow
  Deny from All
  Allow from 127.0.0.1
  Allow from ::1
 </IfModule>
</Directory>

And replaced it with this:

<Directory /usr/share/phpMyAdmin/>
 AddDefaultCharset UTF-8

 Order allow,deny
 Allow from all
</Directory>

And restarted the server: sudo service httpd restart

Works now!

Chuck Le Butt
  • 47,570
  • 62
  • 203
  • 289
  • its so weird i have two phpmyadmin `phpMyAdmin.conf` and `phpmyadmin.conf` –  May 24 '15 at 12:06
  • 1
    it's work but after set elastic ip it's not work page showing You don't have permission to access /phpmyadmin on this server. – bhautikmewada191 Aug 26 '16 at 07:13
  • This is kinda bad for security though. You do not want everyone to have access to your phpMyAdmin (by default). – unlockme Nov 10 '16 at 07:24
2

I had the same issue, and Chuck Le Butt's solution was very helpful, although a little different for me...

My ISP uses dynamic IP addresses so when I setup the server it was via a different IP. When I returned to it the following day, my IP address had changed so I was forbidden. Butt, rather than allowing access from all IP's as Chuck suggested, I've updated my previous IP addresses in the phpMyAdmin.conf file.

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
Shane McCarthy
  • 109
  • 3
  • 12
0

I replace

<Directory /usr/share/phpMyAdmin/>
  AddDefaultCharset UTF-8

  <IfModule mod_authz_core.c>
    # Apache 2.4
    <RequireAny>
      Require ip 127.0.0.1
      Require ip ::1
    </RequireAny>
  </IfModule>
  <IfModule !mod_authz_core.c>
    # Apache 2.2
    Order Deny,Allow
    Deny from All
    Allow from 127.0.0.1
    Allow from ::1
  </IfModule>
</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
  Order Deny,Allow
  Deny from All
  Allow from 127.0.0.1
  Allow from ::1
</Directory>

to

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAll>
       Require all granted
     </RequireAll>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Allow,Deny
     Allow from All
   </IfModule>
</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
   Order Allow,Deny
   Allow from All
</Directory>

And it works~