2011-09-21 26 views
18

Siempre recibo este mensaje cuando me gustaría tener acceso a mi phpMyAdmin.phpMyAdmin + CentOS 6.0 - Prohibido

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 

Procedimiento de instalación:

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 

agregar alias

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

Cambio de galletas a http

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

Reiniciar

/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 

Respuesta

28

editar el archivo httpd.conf de la siguiente manera:

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

añadir las siguientes líneas aquí:

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

emita el siguiente comando:

# service httpd restart 

Si el problema no se resuelve después de deshabilitar el SELinux.

+0

es posible permitir que desde una interfaz eth0 como lugar de todos, estoy usando VirtualBox con NAT – pouya

+0

muchas gracias, el problema estaba en SElinux – mydreamadsl

+0

mydreamadsl, ¿puede explicar cómo resolviste? – Damainman

-1

Tuve el mismo problema.

Sólo después de cambiar en la variable php.ini

display_errors = Off

a

display_errors = ON

phpAdmin comenzaron a trabajar .. loca ....

+0

Esa conf no tiene nada que ver con phpmyadmin. Esto sucedió probablemente porque previamente editó el conf correcto pero olvidó reiniciar httpd. Luego, después de cambiar los errores, reinició y la edición anterior también se aplicó. – zozo

3

Tuve el mismo problema durante dos días. Deshabilitado SELinux y todo menos nada ayudó. Y me doy cuenta de que no es inteligente desactivar la seguridad por una pequeña solución. Luego me encontré con este artículo - http://wiki.centos.org/HowTos/SELinux/ que explica cómo opera SELinux. Entonces esto es lo que hice y solucionó mi problema.

  1. permitir el acceso a su directorio principal de phpMyAdmin yendo al directorio principal de phpMyAdmin (la mía era html) y escribiendo:

    chcon -v --type=httpd_sys_content_t phpmyadmin 
    
  2. Ahora haga lo mismo para el índice.php escribiendo:

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

    Ahora vuelve y comprueba si estás obteniendo una página en blanco. Si es así, entonces está en el camino correcto. De lo contrario, vuelva y compruebe la configuración del directorio httpd.config. Una vez que obtenga la página en blanco sin advertencias, continúe.

  3. Ahora Recurse a través de todos los archivos en el directorio phpmyadmin ejecutando:

    chron -Rv --type=httpd_sys_content_t phpmyadmin/* 
    

Ir a su página phpMyAdmin y ver si usted está viendo lo que necesita. Si está ejecutando un servidor web al que se puede acceder desde fuera de su red, asegúrese de restablecer su SELinux al nivel de seguridad adecuado. ¡Espero que esto ayude!

21

Ninguna de las configuraciones anteriores funcionó para mí en mi servidor CentOS 7. Después de horas de búsqueda, eso es lo que funcionó para mí:

Editar archivo phpMyAdmin.conf

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

Y reemplazar esta en la parte superior:

<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> 
+0

Perfecto ... este funcionó para mí – sujithayur

+0

Esta debería ser la respuesta. Funcionó perfectamente –

+0

Además tuve que hacer "yum install php" – Sourav301

6

He intentado todas las respuestas proporcionadas aquí: editando phpMyAdmin.conf, cambiando el contexto de selinux para la carpeta phpmyadmin, deshabilitando selinux ... pero todavía tengo un 'Prohibido' del servidor web.

fin encontré lo que me faltaba en Edouard Thiel enviar here:

$ yum install php

luego reiniciar httpd:

$ service httpd restart => para CentOS 6 hots

$ systemctl restart httpd => para CentOS 7 hosts

Lo que me ha sorprendido es w hy php no está instalado como dependencia para phpmyadmin en primer lugar.

Saludos, Fred

+0

esto es exactamente lo que me ayudó y exactamente lo que me molesta - por qué php no es una dependencia para un paquete, eso lo requiere incluso por su nombre ... – tymik

+0

¡Esto funcionó para mí! – Sourav301

+0

Esto funcionó para mí. Pensé que instalé php anteriormente, pero de todos modos debería haber dado un error diferente a 403 – Venura

0

no de las soluciones mencionadas anteriormente trabajaron para mí. Debajo está lo que finalmente funcionó:

#yum update 
#yum install phpmyadmin 

Tenga en cuenta que phpmyadmin estaba trabajando unas horas antes. No sé lo que pasó

Después de esto, ir al navegador, que tiene un error que dice ./config.inic.php can't be accessed

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

Esto demuestra que los permisos de archivo eran 640, luego los cambiaron a 644. finially, funcionó.

Recuerde reiniciar httpd.

#service httpd restart 
0

que han enfrentado el mismo problema cuando grabo la URL

https://www.nameDomain.com/phpmyadmin 

el mensaje de prohibido se presenta, a causa de las normas sobre/uso/directorio/phpMyAdmin Compartir lo arreglo mediante la adición de este archivo /etc/httpd/conf.d/phpMyAdmin.conf en esta sección

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

estas líneas de reglas

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

de guardar el archivo, a continuación, reiniciar el servicio de Apache cualquiera que sea el método que elija service httpd graceful o service httpd restart que depende de su política de

por razones de seguridad puede especificar una conexión mediante el establecimiento de una dirección IP si su IP no lo hace cambiar, de lo contrario, si su IP cambia cada vez que tiene que cambiarlo también.

<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>