I always get this message when I would like access my phpMyAdmin.
w3m localhost/phpmyadmin
Forbidden
You don't have permission to access /phpmyadmin/ on this server.
Apache/2.2.15 (CentOS) Server at localhost Port 80
Install steps:
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2- 2.el6.rf.x86_64.rpm
yum install phpmyadmin
Add Aliases
vi /etc/httpd/conf.d/phpmyadmin.conf
Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin
Change from cookie to http
vi /usr/share/phpmyadmin/config.inc.php
[...]
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http';
[...]
Restart
/etc/init.d/httpd restart
SELinux - /etc/httpd
drwxr-xr-x. root root system_u:object_r:httpd_config_t:s0 .
drwxr-xr-x. root root system_u:object_r:etc_t:s0 ..
drwxr-xr-x. root root system_u:object_r:httpd_config_t:s0 conf
drwxr-xr-x. root root system_u:object_r:httpd_config_t:s0 conf.d
lrwxrwxrwx. root root system_u:object_r:httpd_log_t:s0 logs -> ../../var/log/httpd
lrwxrwxrwx. root root system_u:object_r:httpd_modules_t:s0 modules -> ../../usr/lib64/httpd/modules
lrwxrwxrwx. root root system_u:object_r:httpd_config_t:s0 run -> ../../var/run/httpd
SELinux - /usr/share/phpmyadmin
drwxr-xr-x. root root system_u:object_r:usr_t:s0 .
drwxr-xr-x. root root system_u:object_r:usr_t:s0 ..
-rw-r--r--. root root system_u:object_r:usr_t:s0 browse_foreigners.php
-rw-r--r--. root root system_u:object_r:usr_t:s0 calendar.php
-rw-r--r--. root root system_u:object_r:usr_t:s0 changelog.php
-rw-r--r--. root root system_u:object_r:usr_t:s0 chk_rel.phph
.
.
.
-rw-r--r--. root root system_u:object_r:usr_t:s0 view_create.php
OS
centos-release-6-0.el6.centos.5.x86_64
The forbidden error means one doesn't have the permission to access /phpMyAdmin/ on the server. This error often occurs if customers install phpMyAdmin using or by apt-get. The default path of phpMyAdmin is /usr/share/phpmyadmin. And etc/httpd/conf.
Change the file content of c:\wamp\alias\phpmyadmin. conf to the following. You should remember to set the Allow Directive to allow it from your local machine for security purposes. The directive Allow from all is insecure and should be limited to your local machine.
Edit your httpd.conf file as follows:
# nano /etc/httpd/conf/httpd.conf
Add the following lines here:
<Directory "/usr/share/phpmyadmin">
Order allow,deny
Allow from all
</Directory>
Issue the following command:
# service httpd restart
If your problem is not solved then disable your SELinux.
None of the configuration above worked for me on my CentOS 7 server. After hours of searching, that's what worked for me:
Edit file phpMyAdmin.conf
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
And replace this at the top:
<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
Require all granted
</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>
I tried all answers provided here: editing phpMyAdmin.conf, changing selinux context for phpmyadmin folder, disabling selinux... but I still got a 'Forbidden' from the web server.
I finally found what I was missing in Edouard Thiel post here :
$ yum install php
then restart httpd :
$ service httpd restart
=> for centos 6 hots
$ systemctl restart httpd
=> for centos 7 hosts
What has me amazed is why php is not installed as dependency for phpmyadmin in the first place.
Regards, Fred
I had the same issue for two days now. Disabled SELinux and everything but nothing helped. And I realize it just may not be smart to disable security for a small fix. Then I came upon this article - http://wiki.centos.org/HowTos/SELinux/ that explains how SELinux operates. So this is what I did and it fixed my problem.
Enable access to your main phpmyadmin directory by going to parent directory of phpmyadmin (mine was html) and typing:
chcon -v --type=httpd_sys_content_t phpmyadmin
Now do the same for the index.php by typing:
chcon -v --type=httpd_sys_content_t phpmyadmin/index.php
Now go back and check if you are getting a blank page. If you are, then you are on the right track. If not, go back and check your httpd.config directory settings. Once you do get the blank page with no warnings, proceed.
Now recurse through all the files in your phpmyadmin directory by running:
chron -Rv --type=httpd_sys_content_t phpmyadmin/*
Go back to your phpmyadmin page and see if you are seeing what you need. If you are running a web server that's accessible from outside your network, make sure that you reset your SELinux to the proper security level. Hope this helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With