PhpMyAdmin позволяет удаленным пользователям
Мне нужно изменить файл /etc/httpd/conf.d/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
Остальные ответы пока, похоже, защищают полную замену <Directory> блок, это не требуется и может удалить дополнительные настройки, такие как добавленный AddDefaultCharset UTF-8.
Чтобы разрешить удаленный доступ, вам нужно добавить 1 строку в блок конфигурации 2.4 или изменить 2 строки в 2.2 (в зависимости от вашей версии apache):
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
#ADD following line:
Require all granted
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
#CHANGE following 2 lines:
Order Allow,Deny
Allow from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
Ответ 2
используйте это, оно исправлено для меня, через centOS 7
<Directory /usr/share/phpMyAdmin/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all granted
</Directory>
Ответ 3
Замените содержимое первого тега <directory>
.
Удалить
<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/>
Order allow,deny
Allow from all
</Directory>
Не забудьте перезапустить Apache.
Ответ 4
Попробуйте это
Заменить
<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/">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order Allow,Deny
Allow from all
</Directory>
Добавьте следующую строку для облегчения доступа:
Alias /phpmyadmin /usr/share/phpMyAdmin
Ответ 5
Просто прокомментируйте все строки в первом каталоге. Или вы можете удалить эти строки, но лучше сохранить на случай позже вы хотите добавить некоторые ограничения, вы раскомментируете.
#<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>
Ответ 6
Моя настройка немного отличалась от XAMPP. в httpd-xampp.conf мне пришлось внести следующие изменения.
Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
AllowOverride AuthConfig
Require local
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</Directory>
измените на
Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
AllowOverride AuthConfig
#makes it so I can config the database from anywhere
Require all grant
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</Directory>
Мне нужно заявить, что я новичок в этом, поэтому я просто взламываю, но это то, как я начал работать.
Ответ 7
Мой ответ основан на получении ошибки 403, хотя все настройки Apache, упомянутые в других ответах, верны.
Это был свежий сервер Centos 7, и оказалось, что проблема не в настройках Apache, а в том, что PhpMyAdmin вообще не работал. Решением было установить php и добавить директиву php в apache.conf:
- sudo yum install php php-mysql
- vim/etc/httpd/conf/httpd.conf
добавить что-то вроде
- DirectoryIndex index.php index.phtml index.html index.htm
для обслуживания файлов индекса php также
а затем перезапустите apache
Не забудьте перезапустить сервер Apache, чтобы он вступил в силу
- systemctl restart httpd.service
Надеюсь, это поможет. Сначала я подумал, что мой вопрос - это директивы Apache, поэтому я размещаю свое решение здесь.