Запрещено: у вас нет разрешения на доступ /phpmyadmin на этом сервере
Привет, я установил phpmyadmin на мою машину centos, и когда я пытаюсь нажать phpmyadmin
через мой браузер, я получаю эту ошибку:
Forbidden
You don't have permission to access `phpmyadmin` on this server.
Мой phpmyadmin.conf
файл имеет следующее содержимое:
# 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>
Пожалуйста, помогите мне решить эту проблему. Любое преимущество оценивается.
Спасибо
Ответы
Ответ 1
Вам необходимо выполнить следующие шаги:
Найдите строку, которая читается следующим образом
Require ip 127.0.0.1
Замените IP-адресом вашей рабочей станции:
Require ip 10.1.3.53
Снова найдите следующую строку:
Allow from 127.0.0.1
Заменить следующим образом:
Allow from 10.1.3.53
Также найдите deny from all
и прокомментируйте его во всем файле.
Сохраните и закройте файл. Restart Apache httpd server
:
# service httpd restart
Изменение: так как это выбранный ответ и он лучше виден... также убедитесь, что PHP установлен, в противном случае вы получите ту же ошибку Forbidden
.
Ответ 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
В новой установке на CENTOS7 я попробовал вышеуказанные методы (отредактировал phpMyAdmin.conf и добавил Требовать все предоставленные), он все еще не работает. Вот решение: установите модуль mod_php:
$ sudo yum install php
затем перезапустите httpd:
$ sudo systemctl restart httpd
и вуаля!
Ответ 4
Отредактируйте файл: sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
и замените ваш следующим:
<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>
Перезапустить Apache: service httpd restart
(phpMyAdmin v4.0.10.8)
Ответ 5
Чтобы разрешить все:
#Require ip 127.0.0.1
#Require ip ::1
Require all granted
Ответ 6
Проблема с ответом с большинством голосов - это не объясняет аргументы в пользу решения.
Для строк Require ip 127.0.0.1
вместо этого вы должны добавить IP-адрес хоста, который планирует получить доступ к phpMyAdmin из браузера. Например Require ip 192.168.0.100
. Require ip 127.0.0.1
позволяет localhost доступ к phpMyAdmin.
Перезапустите apache (httpd) после внесения изменений. Я бы предложил тестирование на localhost или использовать инструменты командной строки, такие как curl, чтобы работать с HTTP GET, и нет другой проблемы с конфигурацией.
Ответ 7
Сначала отредактируйте файл /etc/httpd/conf.d/phpMyAdmin.conf и добавьте дополнительную строку в настройки каталога:
<Directory /usr/share/phpMyAdmin/>
order deny,allow
deny from all
allow from 127.0.0.1
allow from 192.168.1.0/15
</Directory>
Если вы хотите разрешить доступ ко всем, вы можете просто изменить его на:
<Directory /usr/share/phpMyAdmin/>
order allow,deny
allow from all
</Directory>
Разрешить во всех разделах файла.
Для перезагрузки достаточно перезагрузки (service httpd restart).
Я нашел это после двухдневного тщательного исследования (найти здесь) и работал как раз для меня.
Ответ 8
Вы можете просто перейти в файл phpmyadmin.conf и изменить "deny from all" на "allow from all".
Ну, это сработало для меня, надеюсь, что это сработает и для вас.
Ответ 9
Установка php Centos 7 поставляется с установленным и включенным пакетом ModSecurity, который запрещает веб-доступ к phpMyAdmin. В конце phpMyAdmin.conf вы должны найти
# 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>
который дает вам ответ на проблему. Добавляя
SecRuleEngine Off
в блоке "Directory/usr/share/phpMyAdmin/" вы можете решить "отказ в доступе" к phpmyadmin, но у вас могут возникнуть проблемы с безопасностью.
Ответ 10
Найдите свой IP-адрес
и замените везде, где вы видите 127.0.0.1, IP-адрес вашей рабочей станции, который вы получили по ссылке выше.
. . .
Require ip your_workstation_IP_address
. . .
Allow from your_workstation_IP_address
. . .
Require ip your_workstation_IP_address
. . .
Allow from your_workstation_IP_address
. . .
и в конце не забудьте перезапустить сервер
sudo systemctl restart httpd.service