PhpMyAdmin + CentOS 6.0 - Запрещено
Я всегда получаю это сообщение, когда мне бы хотелось получить доступ к моему 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
Установите шаги:
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
Добавить псевдонимы
vi /etc/httpd/conf.d/phpmyadmin.conf
Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin
Изменить с cookie на http
vi /usr/share/phpmyadmin/config.inc.php
[...]
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http';
[...]
Перезагрузка
/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
ОС
centos-release-6-0.el6.centos.5.x86_64
Ответы
Ответ 1
Измените файл httpd.conf следующим образом:
# nano /etc/httpd/conf/httpd.conf
Добавьте сюда следующие строки:
<Directory "/usr/share/phpmyadmin">
Order allow,deny
Allow from all
</Directory>
Выполните следующую команду:
# service httpd restart
Если ваша проблема не решена, отключите SELinux.
Ответ 2
Ни одна из вышеперечисленных конфигураций не работала для меня на моем сервере CentOS 7. После нескольких часов поиска то, что сработало для меня:
Изменить файл phpMyAdmin.conf
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
И замените это вверху:
<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>
Ответ 3
Я попробовал все предоставленные здесь ответы: редактирование phpMyAdmin.conf, изменение контекста selinux для папки phpmyadmin, отключение selinux... но у меня все еще есть "Запрещено" с веб-сервера.
Наконец-то я нашел то, чего не хватало в сообщении Эдуарда Тиля здесь:
$ yum install php
затем перезапустите httpd:
$ service httpd restart
= > для centos 6 hots
$ systemctl restart httpd
= > для хостов centos 7
Что меня поразило, почему php не устанавливается в качестве зависимости для phpmyadmin в первую очередь.
С уважением,
Фред
Ответ 4
У меня была такая же проблема в течение двух дней. Отключено SELinux и все, но ничего не помогло. И я понимаю, что просто не может быть умным, чтобы отключить защиту для небольшого исправления. Затем я пришел к этой статье - http://wiki.centos.org/HowTos/SELinux/, которая объясняет, как работает SELinux. Так вот что я сделал, и это устранило мою проблему.
-
Включите доступ к основному каталогу phpmyadmin, перейдя в родительский каталог phpmyadmin (мой был html) и набрав:
chcon -v --type=httpd_sys_content_t phpmyadmin
-
Теперь сделаем то же самое для index.php, набрав:
chcon -v --type=httpd_sys_content_t phpmyadmin/index.php
Теперь вернитесь и проверьте, получаете ли вы пустую страницу. Если да, то вы на правильном пути. Если нет, вернитесь и проверьте настройки каталога httpd.config. Как только вы получите пустую страницу без предупреждений, продолжайте.
-
Теперь перезагрузите все файлы в вашем каталоге phpmyadmin, запустив:
chron -Rv --type=httpd_sys_content_t phpmyadmin/*
Вернитесь на страницу phpmyadmin и посмотрите, видите ли вы то, что вам нужно.
Если вы используете веб-сервер, доступный извне вашей сети, убедитесь, что вы reset ваш SELinux на должном уровне безопасности. Надеюсь, это поможет!
Ответ 5
Не все вышеупомянутые решения работали для меня. Ниже приведен итог:
#yum update
#yum install phpmyadmin
Обратите внимание, что phpmyadmin работал несколько часов назад. Я не знаю, что произошло.
После этого, перейдя в браузер, я получил сообщение об ошибке ./config.inic.php can't be accessed
#cd /usr/share/phpmyadmin/
#stat -c %a config.inic.php
#640
#chmod 644 config.inic.php
Это показывает, что права доступа к файлам были 640, а затем я изменил их на 644.
В конце концов, это сработало.
Не забудьте перезапустить httpd.
#service httpd restart
Ответ 6
У меня возникла та же проблема, когда я наклеил URL-адрес
https://www.nameDomain.com/phpmyadmin
появляется запрещенное сообщение из-за правил в каталоге /use/share/phpMyAdmin
Я исправлю это, добавив в этот файл /etc/httpd/conf.d/phpMyAdmin.conf
в этом разделе
<Directory /usr/share/phpMyAdmin/>
....
</Directory>
эта строка правил
<Directory /usr/share/phpMyAdmin/>
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
Allow from All
...
</Directory>
вы сохраняете файл, затем перезапускаете службу apache независимо от выбранного метода service httpd graceful
или service httpd restart
, это зависит от вашей политики
по соображениям безопасности вы можете указать одно соединение, установив один IP-адрес, если ваш IP-адрес не изменится, иначе если ваш IP-адрес будет изменяться каждый раз, когда вы также должны его изменить.
<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>
Ответ 7
У меня была такая же проблема.
Только после того, как я изменил в переменной php.ini
display_errors = Выкл.
to
display_errors = On
Phpadmin начал работать.. сумасшедший....