web-dev-qa-db-fra.com

phpMyAdmin + CentOS 6.0 - Interdit

Je reçois toujours ce message quand je souhaite accéder à mon 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

Étapes d'installation:

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

Ajouter des alias

vi /etc/httpd/conf.d/phpmyadmin.conf
Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin

Changer de cookie en http

vi /usr/share/phpmyadmin/config.inc.php
[...]
 /* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http';
[...]

Redémarrer

/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
20
Philippxp

Modifiez votre fichier httpd.conf comme suit:

# nano /etc/httpd/conf/httpd.conf

Ajoutez les lignes suivantes ici:

<Directory "/usr/share/phpmyadmin">
    Order allow,deny
    Allow from all
</Directory>

Émettez la commande suivante:

# service httpd restart

Si votre problème n'est pas résolu, désactivez votre SELinux.

30
Tareq

Aucune des configurations ci-dessus n'a fonctionné pour moi sur mon serveur CentOS 7. Après des heures de recherche, c'est 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>
25
Hyder B.

J'ai essayé toutes les réponses fournies ici: modification de phpMyAdmin.conf, modification du contexte selinux pour le dossier phpmyadmin, désactivation de selinux ... mais j'ai quand même reçu un message "Interdit" sur le serveur Web. 

J'ai enfin trouvé ce qui me manquait dans Edouard Thiel post ici :

$ yum install php

puis redémarrez httpd:

$ service httpd restart => pour centos 6 hots

$ systemctl restart httpd => pour les hôtes centos 7

Ce qui m'a étonné, c'est pourquoi php n'est pas installé comme dépendance pour phpmyadmin en premier lieu.

Cordialement, Fred

7
Fred Astair

J'ai le même problème depuis deux jours maintenant. SELinux désactivé et tout mais rien n'a aidé. Et je me rends compte qu'il peut ne pas être malin de désactiver la sécurité pour un petit correctif. Je suis ensuite tombé sur cet article - http://wiki.centos.org/HowTos/SELinux/ qui explique le fonctionnement de SELinux. C'est donc ce que j'ai fait et cela a résolu mon problème. 

  1. Activez l’accès à votre répertoire principal phpmyadmin en accédant au répertoire parent de phpmyadmin (le mien était en HTML) et en tapant:

    chcon -v --type=httpd_sys_content_t phpmyadmin
    
  2. Maintenant, faites la même chose pour index.php en tapant:

    chcon -v --type=httpd_sys_content_t phpmyadmin/index.php
    

    Maintenant, revenez en arrière et vérifiez si vous obtenez une page blanche. Si vous l'êtes, vous êtes sur la bonne voie. Sinon, revenez en arrière et vérifiez les paramètres de votre répertoire httpd.config. Une fois que vous obtenez la page blanche sans avertissements, continuez.

  3. Maintenant, recurse à travers tous les fichiers de votre répertoire phpmyadmin en lançant: 

    chron -Rv --type=httpd_sys_content_t phpmyadmin/*
    

Retournez sur votre page phpmyadmin et voyez si vous voyez ce dont vous avez besoin. Si vous utilisez un serveur Web accessible de l’extérieur de votre réseau, veillez à réinitialiser votre SELinux sur le niveau de sécurité approprié. J'espère que cela t'aides!

3
Akdavis

J'ai rencontré le même problème quand je tape l'URL 

https://www.nameDomain.com/phpmyadmin

le message interdit apparaît, à cause des règles sur le répertoire/use/share/phpMyAdmin Je le répare en ajoutant dans ce fichier /etc/httpd/conf.d/phpMyAdmin.conf dans cette section 

<Directory /usr/share/phpMyAdmin/>
    ....
</Directory>

ces règles

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

vous enregistrez le fichier, puis vous redémarrez le service Apache quelle que soit la méthode choisie service httpd graceful ou service httpd restart cela dépend de votre stratégie

pour des raisons de sécurité, vous pouvez spécifier une connexion en définissant une adresse IP si votre adresse IP ne change pas, sinon si votre adresse IP change à chaque fois, vous devez également la modifier.

<Directory /usr/share/phpMyAdmin/>
   Order Deny,Allow
   Deny from All
   Allow from 127.0.0.1
   Allow from ::1
   Allow from 105.105.105.254 ## set here your IP address
   ...
</Directory>
0
azdoud

Aucune des solutions mentionnées ci-dessus n'a fonctionné pour moi. Voici ce qui a finalement fonctionné:

#yum update
#yum install phpmyadmin

Sachez que phpmyadmin travaillait quelques heures plus tôt. Je ne sais pas ce qui s'est passé 

Après cela, en allant sur le navigateur, j'ai eu une erreur qui disait ./config.inic.php can't be accessed 

#cd /usr/share/phpmyadmin/
#stat -c %a config.inic.php
#640
#chmod 644 config.inic.php

Cela montre que les autorisations de fichier étaient de 640, puis je les ai modifiées en 644. Enfin, cela a fonctionné.

N'oubliez pas de redémarrer httpd.

#service httpd restart
0
user2947136