Bonjour, j'ai installé phpmyadmin sur ma machine centos et lorsque j'essaie de frapper phpmyadmin
via mon navigateur, j'obtiens cette erreur:
Forbidden
You don't have permission to access `phpmyadmin` on this server.
Mon fichier phpmyadmin.conf
a le contenu suivant:
# 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/>
<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/>
<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>
# 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>
Aidez-moi à résoudre ce problème. Toute avance est appréciée.
Merci
Vous devez suivre les étapes suivantes:
Trouvez la ligne qui suit
Require ip 127.0.0.1
Remplacez par l'adresse IP de votre poste de travail:
Require ip 10.1.3.53
Encore une fois, trouvez la ligne suivante:
Allow from 127.0.0.1
Remplacez comme suit:
Allow from 10.1.3.53
Recherchez également deny from all
et commentez-le dans l'ensemble du fichier.
Enregistrez et fermez le fichier .Restart Apache httpd server
:
# service httpd restart
Aucune des configurations ci-dessus n'a fonctionné pour moi sur mon serveur CentOS 7. Après des heures de recherche, voilà ce qui a fonctionné pour moi:
Editer le fichier phpMyAdmin.conf
Sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
Et remplacez ceci en haut:
<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>
Sur une nouvelle installation sur CENTOS7, j’ai essayé les méthodes ci-dessus (éditez phpMyAdmin.conf et ajoutez Require tout accordé), cela ne fonctionne toujours pas. Voici la solution: installez le module mod_php:
$ Sudo yum install php
puis redémarrez httpd:
$ Sudo systemctl restart httpd
et le tour est joué!
Editez le fichier: Sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
et remplacez le vôtre par ce qui suit:
<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>
Redémarrez Apache: service httpd restart
(phpMyAdmin v4.0.10.8)
Permettre à tous:
#Require ip 127.0.0.1
#Require ip ::1
Require all granted
Le problème avec la réponse avec le plus de votes est qu'il n'explique pas le raisonnement de la solution.
Pour les lignes Require ip 127.0.0.1
, vous devez plutôt ajouter l'adresse IP de l'hôte qui prévoit d'accéder à phpMyAdmin à partir d'un navigateur. Par exemple, Require ip 192.168.0.100
. Le Require ip 127.0.0.1
permet à l'hôte local d'accéder à phpMyAdmin.
Redémarrez Apache (httpd) après avoir apporté des modifications. Je suggérerais de tester sur localhost, ou d'utiliser des outils en ligne de commande tels que curl to très GET http fonctionne, et il n'y a pas d'autre problème de configuration.
Commencez par éditer le fichier /etc/httpd/conf.d/phpMyAdmin.conf et ajoutez la ligne supplémentaire aux paramètres du répertoire:
<Directory /usr/share/phpMyAdmin/>
order deny,allow
deny from all
allow from 127.0.0.1
allow from 192.168.1.0/15
</Directory>
Si vous voulez autoriser l'accès à tout le monde, vous pouvez simplement le changer en:
<Directory /usr/share/phpMyAdmin/>
order allow,deny
allow from all
</Directory>
Autoriser dans toutes les sections du fichier.
Un redémarrage (service httpd restart) suffit pour le détecter.
J'ai trouvé ceci après 2 jours de recherches rigoureuses, (trouvez-le ici ) et a travaillé juste pour moi.
L'installation php de Centos 7 est fournie avec le paquet ModSecurity installé et activé, ce qui empêche tout accès Web à phpMyAdmin. À la fin de phpMyAdmin.conf, vous devriez trouver
# 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>
ce qui vous donne la réponse au problème. En ajoutant
SecRuleEngine Off
dans le bloc "Répertoire/usr/share/phpMyAdmin /", vous pouvez résoudre le problème de l'accès refusé à phpmyadmin, mais vous pouvez créer des problèmes de sécurité.
Vous pouvez simplement aller dans le fichier phpmyadmin.conf et changer "refuser à tous" pour "autoriser à tous". Eh bien, cela a fonctionné pour moi, j'espère que cela fonctionnera pour vous aussi.