Рейтинг:1

После удаления .htaccess больше не может получить доступ к phpmyadmin

флаг my

Raspbian работает на raspberrypi 3+ apache 2.4

Я пытался немного лучше защитить свой сервер и включил .htaccess путем изменения apache2.conf линия Аллововеррайд к Разрешить переопределить все и добавил .htaccess файл к пути phpmyadmin, расположенному по адресу /var/www/BaseSite/phpmyadmin:

запретить заказ, разрешить
отрицать все
разрешить 192.168

прежде чем понять, что apache 2.4 устарел от этого синтаксиса в пользу использования Требовать директивы и на самом деле не рекомендует использовать .htaccess файлы больше, но полагаясь исключительно на Требовать директивы (оригинал .haccess файл все равно не позволял мне получить к нему доступ из локальной сети по какой-то причине), поэтому я удалил .htaccess файл и восстановлен Аллововеррайд но проблема в том, что я все еще не могу получить доступ к phpmyadmin. Я просто получаю сообщение «Запрещено, у вас нет разрешения на доступ к этому ресурсу». Я просмотрел каждый из моих файлов конфигурации как для apache2, так и для phpmyadmin, и я понятия не имею, почему он отказывает мне в доступе. Я даже зашел так далеко, что удалил и переустановил phpmyadmin, но получил ту же проблему. В недоумении, что делать. Любая помощь приветствуется.

Для справки, apache2.conf:

# Это основной файл конфигурации сервера Apache. Он содержит
# директивы конфигурации, которые дают инструкции серверу.
# См. http://httpd.apache.org/docs/2.4/ для получения подробной информации о
# директивы и /usr/share/doc/apache2/README.Debian о специфичных для Debian
# подсказки.
#
#
# Краткое изложение того, как конфигурация Apache 2 работает в Debian:
# Конфигурация веб-сервера Apache 2 в Debian сильно отличается от
# предложенный upstream способ настройки веб-сервера. Это потому, что Debian
# установка Apache2 по умолчанию пытается добавить и удалить модули,
# виртуальные хосты и дополнительные директивы конфигурации настолько гибки, насколько это возможно, в
# чтобы сделать автоматизацию изменений и администрирование сервера максимально простым
# возможное.

# Он разделен на несколько файлов, образующих описанную иерархию конфигурации
# ниже, все расположено в каталоге /etc/apache2/:
#
# /etc/apache2/
# |-- apache2.conf
# | `-- порты.conf
# |-- с поддержкой модов
# | |-- *.загрузить
# | `-- *.conf
# |-- conf включен
# | `-- *.conf
# `-- с поддержкой сайтов
# `-- *.conf
#
#
# * apache2.conf — основной файл конфигурации (этот файл). Он кладет кусочки
# вместе, включив все оставшиеся файлы конфигурации при запуске
#   веб сервер.
#
# * ports.conf всегда подключается из основного файла конфигурации. это
# предполагается определить порты прослушивания для входящих соединений, которые могут быть
# настраивается в любое время.
#
# * Конфигурационные файлы в папках mods-enabled/, conf-enabled/ и sites-enabled/
# каталоги содержат определенные фрагменты конфигурации, которые управляют модулями,
# глобальные фрагменты конфигурации или конфигурации виртуального хоста,
#   соответственно.
#
# Они активируются символической ссылкой на доступные файлы конфигурации из их
# соответствующие *-доступные/аналоги. Они должны управляться с помощью нашего
# помощники a2enmod/a2dismod, a2ensite/a2dissite и a2enconf/a2disconf. Видеть
# соответствующие справочные страницы для получения подробной информации.
#
# * Бинарный файл называется apache2. Из-за использования переменных окружения в
# конфигурация по умолчанию, apache2 нужно запускать/останавливать с помощью
# /etc/init.d/apache2 или apache2ctl. Вызов /usr/bin/apache2 напрямую не будет
# работа с конфигурацией по умолчанию.


# Глобальная конфигурация
#

#
# ServerRoot: Верхняя часть дерева каталогов, в которой находится сервер.
# файлы конфигурации, ошибок и журналов сохраняются.
#
# ПРИМЕЧАНИЕ! Если вы собираетесь разместить это в NFS (или в другой сети)
# смонтированная файловая система, тогда прочтите документацию по Mutex (доступна
# по адресу <URL:http://httpd.apache.org/docs/2.4/mod/core.html#mutex>);
# вы избавите себя от многих проблем.
#
# НЕ добавляйте косую черту в конце пути к каталогу.
#
#ServerRoot "/etc/apache2"

#
# Файл блокировки сериализации приема ДОЛЖЕН БЫТЬ ХРАНЕН НА ЛОКАЛЬНОМ ДИСКЕ.
#
#Файл мьютекса: ${APACHE_LOCK_DIR} по умолчанию

#
# Каталог, в котором будут храниться shm и другие файлы среды выполнения.
#

Каталог времени выполнения по умолчанию ${APACHE_RUN_DIR}

#
# PidFile: файл, в котором сервер должен записывать свой процесс
# идентификационный номер при запуске.
# Это нужно установить в /etc/apache2/envvars
#
Pid-файл ${APACHE_PID_FILE}

#
# Тайм-аут: количество секунд до тайм-аута приема и отправки.
#
Таймаут 300

#
# KeepAlive: разрешать ли постоянные соединения (более
# один запрос на соединение). Установите на «Выкл.», чтобы деактивировать.
#
KeepAlive включен

#
# MaxKeepAliveRequests: Максимальное количество разрешенных запросов
# при постоянном соединении. Установите на 0, чтобы разрешить неограниченное количество.
# Мы рекомендуем вам оставить это число большим для максимальной производительности.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: количество секунд ожидания следующего запроса от
# тот же клиент на том же соединении.
#
KeepAliveTimeout 5


# Их нужно установить в /etc/apache2/envvars
Пользователь ${APACHE_RUN_USER}
Группа ${APACHE_RUN_GROUP}

#
# HostnameLookups: регистрируйте имена клиентов или только их IP-адреса.
# например, www.apache.org (вкл.) или 204.62.129.132 (вкл.).
# По умолчанию отключено, потому что в целом для сети было бы лучше, если бы люди
# должен был сознательно включить эту функцию, так как ее включение означает, что
# каждый клиентский запрос приведет как минимум к одному запросу на поиск
# сервер имен.
#
HostnameLookups Off

# ErrorLog: расположение файла журнала ошибок.
# Если вы не укажете директиву ErrorLog внутри <VirtualHost>
# контейнер, сообщения об ошибках, относящиеся к этому виртуальному хосту, будут
# зарегистрировался здесь. Если вы *делаете* определяете файл журнала ошибок для <VirtualHost>
# контейнер, ошибки этого хоста будут регистрироваться там, а не здесь.
#
Журнал ошибок ${APACHE_LOG_DIR}/error.log

#
# LogLevel: контроль серьезности сообщений, регистрируемых в error_log.
# Доступные значения: trace8, ..., trace1, отладка, информация, уведомление, предупреждение,
# ошибка, крит, оповещение, эмердж.
# Также можно настроить уровень журнала для определенных модулей, например.
# "Информация об уровне журнала ssl: предупреждение"
#
Предупреждение LogLevel

# Включить конфигурацию модуля:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

# Включить список портов для прослушивания
Включить порты.conf


# Устанавливает модель безопасности по умолчанию для HTTPD-сервера Apache2. Оно делает
# не разрешать доступ к корневой файловой системе за пределами /usr/share и /var/www.
# Первый используется веб-приложениями, упакованными в Debian,
# последний может использоваться для локальных каталогов, обслуживаемых веб-сервером. Если
# ваша система обслуживает контент из подкаталога в /srv, вы должны разрешить
# доступ сюда или к любому связанному виртуальному хосту.
<Каталог />
        Параметры
        Аллововеррайд
        Требовать все отказано
</Каталог>

<Каталог /usr/share>
        Аллововеррайд
        Требовать все отказано
</Каталог>

<Каталог /var/www/>
        Индексы опционов FollowSymLinks
        Аллововеррайд
        Аллововеррайделист нет
        Требовать все предоставленные
</Каталог>

#<Каталог /srv/>
# Индексы опционов FollowSymLinks
# Разрешить переопределение
# Требовать все предоставленные
#</Каталог>




# AccessFileName: Имя файла для поиска в каждом каталоге
# для дополнительных директив конфигурации. См. также AllowOverride
# директива.
#
ИмяФайлаДоступа .htaccess

#
# Следующие строки предотвращают доступ к файлам .htaccess и .htpasswd.
# просматривается веб-клиентами.
#
<Соответствие файлов "^\.ht">
        Требовать все отказано
</FilesMatch>

#
#Следующее позволяет php анализировать файлы php (поддомен wordpress/виртуальный хост по какой-то причине перестал анализировать php)
#
<Соответствие файлов \.php$>
        Приложение SetHandler/x-httpd-php
</FilesMatch>

#
# Следующие директивы определяют псевдонимы некоторых форматов для использования с
# директива CustomLog.
#
# Они отличаются от определений Common Log Format тем, что используют %O
# (фактические отправленные байты, включая заголовки) вместо %b (размер
# запрошенный файл), так как последний делает невозможным обнаружение частичных
# Запросы.
#
# Обратите внимание, что использование %{X-Forwarded-For}i вместо %h не рекомендуется.
# Вместо этого используйте mod_remoteip.
#
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" в сочетании
LogFormat "%h %l %u %t \"%r\" %>s %O" общий
LogFormat "%{Referer}i -> %U" реферер
Агент LogFormat "%{User-agent}i"

# Включение каталогов игнорирует файлы резервных копий редакторов и dpkg,
# подробности см. в README.Debian.

# Включить общие фрагменты операторов
IncludeOptional conf-enabled/*.conf

# Включите конфигурации виртуального хоста:
IncludeOptional sites-enabled/*.conf

# vim: синтаксис=apache ts=4 sw=4 sts=4 sr noet

Имя сервера mydomain.com

# разрешить загрузку и прослушивание конфигурации PHPMyadmin Apache
Включить /etc/phpmyadmin/apache.conf

phpmyadmin.conf находится в /etc/apache2/conf-enabled/:

# Конфигурация Apache по умолчанию в phpMyAdmin

Псевдоним /phpmyadmin /usr/share/phpmyadmin

<Каталог /usr/share/phpmyadmin>
    Параметры SymLinksIfOwnerMatch
    DirectoryIndex index.php

    <IfModule mod_php5.c>
        <IfModule mod_mime.c>
            Приложение AddType/x-httpd-php .php
        </ЕслиМодуль>
        <FilesMatch ".+\.php$">
            Приложение SetHandler/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/: /usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </ЕслиМодуль>
    <IfModule mod_php.c>
        <IfModule mod_mime.c>
            Приложение AddType/x-httpd-php .php
        </ЕслиМодуль>
        <FilesMatch ".+\.php$">
            Приложение SetHandler/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/: /usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </ЕслиМодуль>

</Каталог>

# Авторизоваться для установки
<Каталог /usr/share/phpmyadmin/setup>
    <IfModule mod_authz_core.c>
        <IfModule mod_authn_file.c>
            Основной тип авторизации
            AuthName "Настройка phpMyAdmin"
            AuthUserFile /etc/phpmyadmin/htpasswd.setup
        </ЕслиМодуль>
        Требовать действительного пользователя
    </ЕслиМодуль>
</Каталог>

# Запретить веб-доступ к каталогам, которым это не нужно
<Каталог /usr/share/phpmyadmin/templates>
    Требовать все отказано
</Каталог>
<Каталог /usr/share/phpmyadmin/libraries>
    Требовать все отказано
</Каталог>
<Каталог /usr/share/phpmyadmin/setup/lib>
    Требовать все отказано
</Каталог>
Рейтинг:1
флаг tr

Вы должны иметь возможность восстановить доступ, добавив Требовать все предоставленные в <Directory /usr/share/phpmyadmin> блок phpmyadmin.conf файл, а затем перезагружаем Apache. В настоящее время ваша конфигурация наследуется от Требовать все отказано на /USR/доля в основном apache.conf файл.

Если вы хотите ограничить доступ, вам нужно настроить правила доступа, используя новый синтаксис (Требовать вместо Заказ и Отрицать/Позволять).

флаг my
Да, поэтому я просто переустановил из исходного кода и поместил все в подкаталог базового сайта и ограничил доступ к этому каталогу с помощью директив Require. Моя первоначальная установка была в другом месте, чем `/usr/share/phpmyadmin` по умолчанию, и поэтому, когда я удалил и переустановил, я забыл, что я ограничил доступ к `/usr/share` в файле apache2.conf, и это то, что было проблема.
Рейтинг:0
флаг my

Глупая ошибка, сделанная мной. Потерял след, где у меня были разные вещи и какие ограничения я изменил. Я не знаю, в чем была первоначальная проблема, но когда я переустановил phpmyadmin, местоположение по умолчанию /USR/доля/phpmyadmin был ограничен на моем сервере. Закончилось очисткой этой установки и установкой из исходного кода, помещенного в другой каталог, и просмотром файлов конфигурации apache и phpmyadmin, чтобы убедиться, что они соответствуют моей конкретной настройке.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.