0

I need to modify the file /etc/httpd/conf.d/phpMyAdmin.conf in order to allow remote users (not only localhost) to login

# phpMyAdmin - Web based MySQL browser written in php
# 
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL

Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

<Directory "/usr/share/phpMyAdmin/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order Allow,Deny 
    Allow from all
</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
   <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
     Allow from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

# These directories do not require access over HTTP - taken from the original
# phpMyAdmin upstream tarball
#
<Directory /usr/share/phpMyAdmin/libraries/>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>

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

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

# This configuration prevents mod_security at phpMyAdmin directories from
# filtering SQL etc.  This may break your mod_security implementation.
#
#<IfModule mod_security.c>
#    <Directory /usr/share/phpMyAdmin/>
#        SecRuleInheritance Off
#    </Directory>
#</IfModule>

When I get into phpmyadmin webpage, I am not prompted for user and password, before getting the error message: Forbidden: You don't have permission to access /phpmyadmin on this server. My system is Fedora 20

1

5 Answers 5

3

Have a look at your httpd error log see if it has more specific info about the denial: /var/log/httpd/error_log

Also, if selinux is enforcing then try turning it off for testing:

$ sudo setenforce 0
$ getenforce

Have a look at your perms on /usr/share/phpMyAdmin as compared to /var/www/html

$ ls -ld /usr/share/phpMyAdmin /var/www/html

There's always the d'oh! check too...did you actually restart/reload the webserver after adding that config?

$ apachectl restart
1
  • /var/log/httpd/error_log says: [Thu May 29 08:55:36.517399 2014] [authz_core:error] [pid 1168] [client removed_ip] AH01630: client denied by server configuration: /usr/share/phpMyAdmin # ls -ld /usr/share/phpMyAdmin /var/www/html says drwxr-xr-x. 8 root root 4096 16 mag 22.21 /usr/share/phpMyAdmin drwxr-xr-x. 2 root root 4096 17 apr 20.32 /var/www/html May 29, 2014 at 6:57
0

Add Allow from 10.10.10.10 (replace 10.10.10.10 w/ your IP address), don't forget to restart apache service httpd restart). feel free to take a look at mine I uploaded it for you to pastebin: http://pastebin.com/hvU3SGs1 (line 24, 42).

2
  • Allowing a single IP address is quite useless May 29, 2014 at 6:54
  • 1
    @Caterpillar some might call it "security", but you can replace it with a range of IPs or you don't need that "security" take the whole block (Order,Allow,Deny) out.
    – alexus
    May 29, 2014 at 14:27
0

Edit file: sudo nano /etc/httpd/conf.d/phpMyAdmin.conf and replace yours with following:

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8
   <IfModule mod_authz_core.c>
     # Apache 2.4
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
   </IfModule>
</Directory>

Restart Apache: service httpd restart

(phpMyAdmin v4.0.10.8)

0

this is my phpmyadmyn.comf

Alias /phpmyadmin "c:/wamp/apps/phpmyadmin4.1.14/"

# to give access to phpmyadmin from outside 
# replace the lines
#
# Require local
#
# by
#
# Require all granted
#
<Directory "c:/wamp/apps/phpmyadmin4.1.14/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    <IfDefine APACHE24>
       Require all granted
    </IfDefine>
    <IfDefine !APACHE24>
       Order Deny,Allow
       Deny from all
       Allow from localhost ::1 127.0.0.1
    </IfDefine>
 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>
0

You didn't mention if you have already configured .htaccess file for authentication to work. You should post it's content too.

You need to have it under /usr/share/phpMyAdmin directory and can contain something similar:

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/apache2/.phpmyadmin.htpasswd
Require valid-user

Aditionally you also need have the line DirectoryIndex index.php in you directory block.

<Directory /usr/share/phpMyAdmin>
        Options FollowSymLinks
        DirectoryIndex index.php
        AllowOverride All
        [...]

You only need to customize your <Directory "/usr/share/phpMyAdmin/">part and the .htaccess file. The rest you can keep as it is for security.

See a detailed how-to here: How To Install and Secure phpMyAdmin with Apache on a CentOS 7 Server

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .