2011-09-21 13 views
18

Ricevo sempre questo messaggio quando desidero accedere al mio phpMyAdmin.phpMyAdmin + CentOS 6.0 - Proibito

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 

Installare passi:

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 

aggiungere alias

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

Passaggio da biscotto a http

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

Restart

012.351.
/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 -

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 

risposta

28

Modificare il file httpd.conf/usr/share/phpmyadmin come segue:

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

Aggiungere le seguenti righe qui:

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

il seguente comando:

# service httpd restart 

Se il problema non è risolto quindi disattivare il vostro SELinux.

+0

è possibile consentire da un'interfaccia come eth0 invece di tutti, sto utilizzando VirtualBox con NAT – pouya

+0

ringrazio molto, il problema è stato in SELinux – mydreamadsl

+0

mydreamadsl, si può spiegare come è risolto vero? – Damainman

-1

Ho avuto lo stesso problema.

Solo dopo ho cambiato nella variabile php.ini

display_errors = Off

a

display_errors = On

phpadmin iniziato a lavorare .. pazzesco ....

+0

Questo conf non ha nulla a che fare con phpmyadmin. Questo è successo probabilmente perché hai precedentemente modificato il conf giusto ma hai dimenticato di riavviare httpd. Quindi, dopo aver cambiato gli errori, si è riavviato e si applicava anche la modifica precedente. – zozo

3

Ho avuto lo stesso problema per due giorni. Disabilitato SELinux e tutto ma niente ha aiutato. E mi rendo conto che potrebbe non essere intelligente disabilitare la sicurezza per una piccola correzione. Poi mi sono imbattuto in questo articolo - http://wiki.centos.org/HowTos/SELinux/ che spiega come SELinux opera. Quindi questo è quello che ho fatto e ha risolto il mio problema.

  1. abilitare l'accesso alla directory principale phpMyAdmin andando alla directory principale di phpMyAdmin (la mia era html) e digitando:

    chcon -v --type=httpd_sys_content_t phpmyadmin 
    
  2. Ora fare lo stesso per l'indice.php digitando:

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

    Ora torna indietro e controlla se stai ricevendo una pagina vuota. Se lo sei, allora sei sulla strada giusta. In caso contrario, torna indietro e controlla le impostazioni della directory httpd.config. Una volta ottenuta la pagina vuota senza avvisi, procedere.

  3. Ora FattorialeMenoUno attraverso tutti i file nella directory phpMyAdmin eseguendo:

    chron -Rv --type=httpd_sys_content_t phpmyadmin/* 
    

Torna alla tua pagina di phpMyAdmin e vedere se si sta vedendo quello che ti serve. Se si sta eseguendo un server Web accessibile dall'esterno della rete, assicurarsi di reimpostare SELinux al livello di sicurezza appropriato. Spero che questo ti aiuti!

21

Nessuno della configurazione sopra ha funzionato per me sul mio server CentOS 7. Dopo ore di ricerca, che è quello che ha funzionato per me:

Modificare il file phpMyAdmin.conf

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

e sostituire questo in cima:

<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

Perfetto .. questo ha funzionato per me – sujithayur

+0

Questa dovrebbe essere la risposta. Funzionava perfettamente –

+0

Inoltre dovevo fare "yum install php" – Sourav301

6

ho provato tutte le risposte fornite qui: modificando phpMyAdmin.conf, modificando il contesto di selinux per la cartella phpmyadmin, disabilitando selinux ... ma ho ancora un "Proibito" dal server web.

finalmente ho trovato quello che mi mancava nel Edouard Thiel inviare here:

$ yum install php

quindi riavviare httpd:

$ service httpd restart => per CentOS 6 cotta

$ systemctl restart httpd => per CentOS 7 host

Ciò che mi ha stupito è w hy php non è installato come dipendenza da phpmyadmin in primo luogo.

saluti, Fred

+0

questo è esattamente ciò che mi ha aiutato ed esattamente quello che mi dà fastidio - perché php non è una dipendenza per un pacchetto, che lo richiede anche dal suo nome ... – tymik

+0

Questo ha funzionato per me! – Sourav301

+0

Questo ha funzionato per me. Pensavo di aver installato php in precedenza, ma in ogni caso avrebbe dovuto dare un errore diverso dal 403 – Venura

0

non delle soluzioni di cui sopra ha lavorato per me. Qui di seguito è quello che alla fine ha funzionato:

#yum update 
#yum install phpmyadmin 

farsi consigliare, phpMyAdmin stava lavorando poche ore prima. Non so cosa sia successo.

Dopo questo, andare al browser, ho ottenuto un errore che ha detto ./config.inic.php can't be accessed

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

Questo dimostra che i permessi dei file sono state 640, poi li ho cambiato a 644. finially, ha funzionato.

Ricordarsi di riavviare httpd.

#service httpd restart 
0

Ho affrontato lo stesso problema quando ho il nastro del URL

https://www.nameDomain.com/phpmyadmin 

il messaggio proibito si presenta, a causa delle norme in materia/uso/share/phpMyAdmin posso risolvere il problema con l'aggiunta in questo file /etc/httpd/conf.d/phpMyAdmin.conf in questa sezione

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

questi linea di regole

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

si salva il file, poi si riavvia il servizio apache qualunque metodo scelto service httpd graceful o service httpd restart dipende dalla vostra politica

per motivi di sicurezza è possibile specificare una connessione impostando un indirizzo IP se il vostro IP non lo fa cambia, altrimenti se il tuo IP cambia ogni volta che devi cambiarlo anche.

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