Сменить адрес phpmyadmin ubuntu

Обновлено: 30.06.2024

Многим сайтам необходима база данных типа MySQL, однако интерфейс командной строки СУБД не очень дружественный и понятный, особенно для новичков.

phpMyAdmin был разработан, чтобы устранить эту проблему. Это альтернативный веб-интерфейс для работы с СУБД. В данном мануале речь пойдёт об установке и защите phpMyAdmin на сервере Ubuntu 16.04. В качестве веб-сервера используется Nginx – производительный сервер, способный обрабатывать большие нагрузки.

Требования

  • Сервер Ubuntu 16.04, настроенный по этому мануалу (разделы 1-4).
  • Предварительно установленный сервер LEMP (Linux, Nginx, MySQL и PHP). Все необходимые инструкции вы найдете в мануале Установка стека LEMP в Ubuntu 16.04. Обязательно запишите или запомните пароль администратора MySQL.

Также есть важные соображения безопасности, которые следует учитывать при использовании программного обеспечения, такого как phpMyAdmin: этот интерфейс напрямую связывается с вашей установкой MySQL, обрабатывает аутентификацию с использованием учетных данных MySQL, обрабатывает произвольные SQL-запросы и возвращает результаты по ним.

1: Установка phpMyAdmin

Предварительно установив платформу LEMP, можно сразу приступать к инсталляции phpMyAdmin. Пакеты этой программы можно найти в стандартных репозиториях Ubuntu.

Сначала обновите индекс пакетов системы. Затем используйте инструмент apt, чтобы загрузить пакеты из репозитория и установить их:

sudo apt-get update
sudo apt-get install phpmyadmin

Во время установки будут запрошены дополнительные данные, например, веб-сервер, который нужно автоматически настроить. Поскольку среди предложенных вариантов нет Nginx, просто нажмите TAB и ENTER, чтобы продолжить.

Затем программа спросит, нужно ли настроить базу данных для phpMyAdmin при помощи dbconfig-common. Выберите Yes, чтобы продолжить.Теперь нужно ввести пароль администратора MySQL, созданный во время установки СУБД.

После этого создайте и подтвердите пароль для новой БД для phpMyAdmin.

Установка phpMyAdmin завершена. Чтобы Nginx мог найти и корректно обработать файлы phpMyAdmin, нужно создать симлинк на каталог document root сервера Nginx:

sudo ln -s /usr/share/phpmyadmin /var/www/html

В завершение нужно включить PHP-модуль mcrypt, от которого зависит работа phpMyAdmin. Он устанавливается вместе с phpMyAdmin, нужно только активировать его и перезапустить процессор PHP.

sudo phpenmod mcrypt
sudo systemctl restart php7.0-fpm

Теперь phpMyAdmin полностью готов к работе. Чтобы открыть интерфейс, введите в браузер доменное имя или внешний IP-адрес и /phpmyadmin:

На экране появится стандартная страница входа phpMyAdmin.

Чтобы войти, используйте учётные данные пользователя MySQL. К примеру, можно использовать root-пользователя MySQL и его пароль. Получив валидные учётные данные, phpMyAdmin откроет доступ к интерфейсу администратора.

2: Изменение стандартного URL-адреса phpMyAdmin

На данном этапе phpMyAdmin полностью готов к использованию. Однако установка веб-интерфейса открыла публичный доступ к MySQL, а это серьёзный риск для безопасности сервера. Из-за большой популярности phpMyAdmin и объемов данных, к которым он имеет доступ, подобные установки часто становятся целью злоумышленников.

В этом разделе вы узнаете, как защитить установку, изменив стандартный URL-адрес интерфейса (это позволяет отразить автоматизированные атаки ботов).

Ранее вы создали симлинк из каталога phpMyAdmin в корневой каталог, чтобы веб-сервер Nginx находил и обслуживал файлы phpMyAdmin. Чтобы изменить URL-адрес интерфейса phpMyAdmin, нужно переименовать этот симлинк.

Перейдите в корневой каталог Nginx:

cd /var/www/html/
ls -l

Вы получите такой вывод:

total 4
-rw-r--r-- 1 root root 612 Apr 10 16:40 index.nginx-debian.html
lrwxrwxrwx 1 root root 21 Apr 10 17:06 phpmyadmin -> /usr/share/phpmyadmin

Вывод сообщает, что в этом каталоге есть симлинк phpmyadmin. Измените имя этой ссылки; это изменит расположение phpMyAdmin, по которому его можно найти в браузере, благодаря чему автоматизированные боты для взлома не смогут получить к нему доступ.

Выберите нестандартное имя, которое не описывает цели; для примера в этом мануале это место называется /nothingtosee. Переименуйте ссылку:

sudo mv phpmyadmin nothingtosee
ls -l

Теперь вы получите:

total 4
-rw-r--r-- 1 root root 612 Apr 10 16:40 index.nginx-debian.html
lrwxrwxrwx 1 root root 21 Apr 10 17:06 nothingtosee -> /usr/share/phpmyadmin

Убедитесь, что старый URL не работает:

Интерфейс phpMyAdmin доступен по другому URL-адресу.

3: Настройка шлюза авторизации Nginx

Теперь нужно создать страницу авторизации сервера, которую необходимо пройти, чтобы получить доступ к странице входа в PhpMyAdmin.

Сначала нужно создать файл паролей pma_pass для хранения учётных данных. Nginx требует, чтобы пароль был зашифрован при помощи функции crypt(). Криптографический пакет OpenSSL, который должен быть установлен на сервере, предоставляет эту функциональность.

Чтобы создать зашифрованный пароль, введите:

Затем укажите и подтвердите пароль, после чего утилита выведет на экран его зашифрованную версию, которая будет иметь примерно такой вид:

Скопируйте это значение и вставьте его в файл паролей.

Чтобы создать файл паролей, используйте следующую команду (файл будет называться pma_pass и находиться в конфигурационном каталоге Nginx):

sudo nano /etc/nginx/pma_pass

В этом файле нужно указать имя пользователя и зашифрованный при помощи openssl пароль, который будут использоваться для входа в phpMyAdmin, разделив их символом двоеточия.

К примеру, если пользователя зовут demo, то файл будет выглядеть так:

Примечание: Ни в коем случае не используйте такое имя – его очень легко угадать.

Сохраните и закройте файл.

Теперь можно отредактировать конфигурационный файл Nginx. Откройте его в текстовом редакторе:

sudo nano /etc/nginx/sites-available/default

В этот файл нужно внести новый раздел location для phpMyAdmin (в данном случае это /nothingtosee).

Создайте блок location в блоке server (и вне других блоков) и укажите в нём место установки:

В результате блок имеет такой вид:

server . . .
location / try_files $uri $uri/ =404;
>
location / nothingtosee auth_basic "Admin Login";

auth_basic_user_file /etc/nginx/pma_pass;

>
. . .
>

Сохраните и закройте файл.

sudo service nginx restart

Если посетить phpMyAdmin в веб-браузере, будет запрошено имя пользователя и пароль, внесённые в файл pma_pass.

Примечание: Если страница не появляется после обновления браузера, попробуйте очистить кэш или открыть ее в другом браузере.

Получив учётные данные, браузер откроет страницу входа в phpMyAdmin. Это создаёт дополнительный уровень безопасности и сохранит логи MySQL в чистоте (в них не будет сотен записей о неудачных попытках входа).

Заключение

Теперь можно управлять MySQL при помощи надёжного и относительно безопасного интерфейса. Он предоставляет основные функции, доступные из командной строки MySQL: пользователь может просматривать базы данных, схемы, создавать запросы и новые наборы и структуры данных.

Чтобы установить PhpMyAdmin на Ubuntu 18.04, нужно подготовить стек программ LEMP, состоящий из веб-сервера Nginx, системы управления базами данных MySQL и языка программирования PHP. В репозиториях Ubuntu Linux есть всё необходимое. Достаточно лишь выполнить несколько команд.

Перед тем как начать установку, рекомендуется обновить список пакетов в репозиториях. Для этого в терминале требуется ввести команду:

Установка phpMyAdmin

Установка PhpMyAdmin выполняется следующей командой:

В процессе установки появится окно, предлагающее выбор сервера. Поскольку производится установка на сервер Nginx, достаточно нажать «TAB» и «ОК», оставив поля «< >» пустыми.

Установка phpMyAdmin

Следующим появится окно настройки пакета «dbconfig-common». Рекомендуется выбрать «Yes» (Да). Программа создаст базу данных в MySQL со служебной информацией.

Установка phpMyAdmin

Далее инсталлятор предложит пользователю создать пароль. Если оставить поле пустым, то программа самостоятельно сгенерирует случайный код.

Установка phpMyAdmin

Настройка MySQL

Предназначение PhpMyAdmin – управление базами данных MySQL. Поэтому работа PhpMyAdmin и MySQL тесно взаимосвязана.

Для аутентификации в веб-интерфейсе PhpMyAdmin используются данные пользователей MySQL, поэтому важно создать учётную запись MySQL и предоставить привилегии уровня «ALL PRIVILEGES».

Важно. Раздел статьи можно пропустить, если пользователь уже создан и имеет все необходимые привилегии.

Перед тем как выполнить создание нового пользователя нужно открыть оболочку MySQL следующей командой:

Чтобы создать учетную запись в MySQL с необходимыми привилегиями, нужно поочередно выполнить следующие команды в терминале:

Вместо «phpadmin» можно подставить собственный логин, а в поле «mypassword» — ввести собственный пароль.

Выйти из оболочки MySQL можно командой:

Настройка Nginx

PhpMyAdmin не будет работать, поскольку в Nginx отсутствует конфигурация, размещающая веб-интерфейс на определенном хосте.

Получение информации о PHP

Перед тем как вносить параметры в файлы конфигурации нужно узнать наименование файла Unix сокета. Если этот параметр будет указан неверно, то, переходя на страницу веб-интерфейса PhpMyAdmin будет появляться ошибка 502.

Узнать название файла можно, выполнив последовательно пару команд:

Вывод будет следующим:

Получение информации о PHP

В примере «php7.4-fpm.sock» – необходимый файл Unix сокета.

Примечание. Название файла зависит от установленной версии PHP («php7.0-fpm.sock», «php7.2-fpm.sock» и т.д).

Создание конфига Nginx

Чтобы запустить PhpMyAdmin, нужно создать файл, в котором будет находиться конфигурация Nginx. Делается это командой:

В созданный файл вносятся следующие строки:

В данном примере важны следующие параметры:

После внесения кода, требуется сохранить файл. Если используется текстовой реактор Nano, то изменения применяются сочетанием клавиш «CTRL+X», далее следует нажатие «Y» и «Enter».

Теперь нужно удалить файл конфигурации Nginx по умолчанию — «default», и перенести созданный конфиг «phpmyadmin.conf» на его место:

Убедиться в отсутствии синтаксических ошибок можно командой:

Если получен следующий вывод, то всё в порядке:

Создание конфига Nginx

Примечание. Если вывод Nginx отличается от полученного, значит при написании конфига были обнаружены ошибки. Возможно были допущены ошибки при расставлении скобок «>»

После выполнения предыдущих действий необходим перезапуск сервера Nginx для применения параметров. Выполняется перезагрузка командой:

Убедиться в правильности работы Nginx можно, выполнив команду:

Должен появиться следующий вывод:

Создание конфига Nginx

Теперь следует проверить доступ к интерфейсу. Для этого нужно ввести в строке браузера IP-адрес, добавив «/phpmyadmin». Выглядеть результат должен следующим образом:

Теперь войти возможно, указав логин и пароль, использованные для подключения к консоли. Установку можно считать завершенной.

Однако, нужно учитывать тот факт, что теперь PhpMyAdmin присутствует в открытом доступе, а защита сервера находится на самом низком уровне. Нужно предпринять ряд шагов, которые обеспечат безопасность.

Смена стандартного местоположения PhpMyAdmin

Обычно программа находится по адресу «/phpmyadmin», «/pma», «/admin», «/mysql». Если оставить PhpMyAdmin в стандартном расположении, то злоумышленники могут использовать программы, взламывающие пароль методом брутфорса (перебора).

Чтобы обеспечить должную безопасность, нужно указать уникальный путь, защитив базу данных от проникновения.

Для этого нужно открыть, созданный в предыдущих действиях, конфигурационный файл «phpmyadmin.conf» и найти строку «location /phpmyadmin

Смена стандартного местоположения PhpMyAdmin

При изменении слова «phpmyadmin» на нестандартное, меняется веб-адрес, а следовательно боты не смогут найти программу. К примеру, обозначим адресом PhpMyAdmin слово «ubuntu»:

Примечание. Вместо «ubuntu» нужно подставить свое наименование адреса к веб-интерфейсу PhpMyAdmin.

Теперь нужно сохранить изменения в файле и перезагрузить сервер Nginx следующей командой:

При попытке открыть в веб-браузере старый адрес, появится ошибка 404 (не найдено):

Теперь открыть страницу возможно только по новому адресу:

Установка ограничения root доступа

Учётная запись root даёт не только особые привилегия пользователям, но и является уязвимостью, играющей на руку злоумышленнику. С изменением адреса PhpMyAdmin была устранена уязвимость в безопасности для автоматизированных программ, но всегда стоит минимизировать риски и защититься от других видов атак на сервер.

Для обеспечения защиты PhpMyAdmin придётся ввести ограничение root прав программе. Для этого нужно создать файл конфигурации по адресу:

В созданный файл необходимо вставить следующий код:

В данном примере важны следующие параметры:

  • АllowNoPassword – вход без пароля (false – отключен);
  • AllowRoot – вход с учётной записи root пользователя (false – отключен).

Как только файл будет сохранен, изменения вступят в силу. При попытке выполнить вход из учётной записи суперпользователя, появится ошибка — «Access Denied» (Доступ запрещен).

Настройка доступа по IP

Еще один способ защитить PhpMyAdmin — предоставить или запретить доступ к веб-интерфейсу определенным хостам на уровне сервера Nginx. Это позволит ограничить доступ всем, кроме некоторых IP-адресов, или направленно заблокировать нежелательные, вредоносные хосты.

Предоставление доступа определенным хостам

В Nginx предусмотрена функция управления доступом на основе IP. Настройка хостов производится в блоке location PhpMyAdmin, с помощью переменных «allow» (разрешить) и «deny» (запретить). Если нужно разрешить запросы только с данного хоста, то достаточно внести эти строки:

В примере переменная «XXX.XXX.XXX.XXX» — разрешенный публичный IP-адрес.

Выводом будет обычный IP адрес.

В принципе, разрешить доступ можно со скольких угодно хостов, создав «белый список». Параметр «deny all», наоборот блокирует все хосты, кроме разрешенных.

Примечание. При изменении сети или использовании VPN, публичный IP-адрес меняется. Важно вписать все возможные адреса хостов, с которых ожидается вход в PhpMyAdmin. В противном случае можно потерять доступ к веб-интерфейсу.

Чтобы начать настройку, нужно открыть файл конфигурации:

Параметры вносятся примерным образом:

Настройка доступа по IP

Для вступлений изменений в силу, требуется перезапустить процесс сервера Nginx:

Ограничение доступа определенным хостам

Можно рассмотреть обратную ситуацию, когда требуется запретить доступ определенному хосту. Для этого в конфигурационный файл должна быть внесена следующая строка:

В приведенном случае «XXX.XXX.XXX.XXX» — запрещённый публичный IP-адрес.

Можно использовать любое число директив «deny», если нужно запретить доступ нескольким хостам.

Чтобы начать настройку, нужно открыть файл конфигурации:

И внести параметры примерно подобным образом:

Настройка доступа по IP

Для вступлений изменений в силу, требуется перезапустить процесс сервера Nginx:

После данной настройки все неразрешенные хосты будут отклоняться, получая ошибку 403.

У меня была и ваша проблема, и решил ее, установив pulseaudio и его зависимости (пакеты paprefs, pavucontrol, pavumeter не нужны, по крайней мере, Skype работает без них). Я перезапустил Skype, и теперь он отображает «PulseAudio Server (локальный)» для микрофона, динамика и мелодии звонка. Похоже на отсутствие зависимости в пакете skype.

3 ответа

Фактически /etc/apache2/conf-available/phpmyadmin.conf, который отображается как «папка», является символической ссылкой на /etc/phpmyadmin/apache.conf:

Чтобы изменить URI (путь доступа) PhpMyAdmin. Измените /etc/phpmyadmin/apache.conf и измените первый путь (/phpmyadmin) этой директивы:

Объяснение о псевдониме директивы. Предположим, что DocumentRoot - /var/www/html. В этом случае директива Alias /phpmyadmin /usr/share/phpmyadmin будет служить в качестве этой символической ссылки:

Объяснение о псевдониме директивы. Предположим, что DocumentRoot - /var/www/html. В этом случае директива Alias /phpmyadmin /usr/share/phpmyadmin будет служить в качестве этой символической ссылки: Измените порт phpMyAdmin с 80 на другой номер (здесь объясняются основы настройки по умолчанию)

Обновление из обсуждения: Действительно phpmyadmin.conf не был включен, поскольку символьная ссылка /etc/apache2/conf-enabled/phpmyadmin.conf отсутствовала. PhpMyAdmin был включен в конфигурации Apache с помощью символической ссылки , созданной в /var/www/html, точно так же, как в приведенном выше примере. Таким образом, мы выполнили следующие шаги:

Измените порт phpMyAdmin с 80 на другой номер (здесь объясняются основы настройки по умолчанию) Включить phpmyadmin.conf: sudo a2enconf phpmyadmin.conf; Перезапустить Apache: sudo systemctl restart apache2.service; Проверьте, работает ли новый путь URI; Удалите ненужную символическую ссылку: sudo rm /var/www/html/phpmyadmin.

@ spylh9999ggr: Вы перезапустили Apache после изменения? – pa4080 26 October 2017 в 13:45 @ spylh9999ggr: Как установить phpmyadmin? Через apt или вы использовали какой-то другой метод? – pa4080 26 October 2017 в 13:48 Я использовал эти команды: sudo apt-get update sudo apt-get install phpmyadmin php-mbstring php-gettext – spylh9999ggr 26 October 2017 в 13:49

Фактически /etc/apache2/conf-available/phpmyadmin.conf, который отображается как «папка», является символической ссылкой на /etc/phpmyadmin/apache.conf:

$ ls -l /etc/apache2/conf-available/phpmyadmin.conf lrwxrwxrwx 1 root root 28 яну 20 2017 /etc/apache2/conf-available/phpmyadmin.conf -> ../../phpmyadmin/apache.conf

Чтобы изменить URI (путь доступа) PhpMyAdmin. Измените /etc/phpmyadmin/apache.conf и измените первый путь (/phpmyadmin) этой директивы:

Alias /phpmyadmin /usr/share/phpmyadmin Объяснение о псевдониме директивы. Предположим, что DocumentRoot - /var/www/html. В этом случае директива Alias /phpmyadmin /usr/share/phpmyadmin будет служить в качестве этой символической ссылки: ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

Объяснение о псевдониме директивы. Предположим, что DocumentRoot - /var/www/html. В этом случае директива Alias /phpmyadmin /usr/share/phpmyadmin будет служить в качестве этой символической ссылки: ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin Измените порт phpMyAdmin с 80 на другой номер (здесь объясняются основы настройки по умолчанию)

Обновление из обсуждения: Действительно phpmyadmin.conf не был включен, поскольку символьная ссылка /etc/apache2/conf-enabled/phpmyadmin.conf отсутствовала. PhpMyAdmin был включен в конфигурации Apache с помощью символической ссылки , созданной в /var/www/html, точно так же, как в приведенном выше примере. Таким образом, мы выполнили следующие шаги:

Измените порт phpMyAdmin с 80 на другой номер (здесь объясняются основы настройки по умолчанию) Включить phpmyadmin.conf: sudo a2enconf phpmyadmin.conf; Перезапустить Apache: sudo systemctl restart apache2.service; Проверьте, работает ли новый путь URI; Удалите ненужную символическую ссылку: sudo rm /var/www/html/phpmyadmin.

Фактически /etc/apache2/conf-available/phpmyadmin.conf, который отображается как «папка», является символической ссылкой на /etc/phpmyadmin/apache.conf:

$ ls -l /etc/apache2/conf-available/phpmyadmin.conf lrwxrwxrwx 1 root root 28 яну 20 2017 /etc/apache2/conf-available/phpmyadmin.conf -> ../../phpmyadmin/apache.conf

Чтобы изменить URI (путь доступа) PhpMyAdmin. Измените /etc/phpmyadmin/apache.conf и измените первый путь (/phpmyadmin) этой директивы:

Alias /phpmyadmin /usr/share/phpmyadmin Объяснение о псевдониме директивы. Предположим, что DocumentRoot - /var/www/html. В этом случае директива Alias /phpmyadmin /usr/share/phpmyadmin будет служить в качестве этой символической ссылки: ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

Объяснение о псевдониме директивы. Предположим, что DocumentRoot - /var/www/html. В этом случае директива Alias /phpmyadmin /usr/share/phpmyadmin будет служить в качестве этой символической ссылки: ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin Измените порт phpMyAdmin с 80 на другой номер (здесь объясняются основы настройки по умолчанию)

phpMyAdmin - это LAMP приложение, созданное специально для администрирования MySQL серверов. Написанный на PHP и доступный через web обозреватель, phpMyAdmin предоставляет графический интерфейс для задач администрирования баз данных.

Установка

Перед установкой phpMyAdmin вам потребуется доступ к базе MySQL на том же самом компьютере, где вы устанавливаете phpMyAdmin, либо на удаленном компьютере, доступным по сети. Подробности смотрите в разделе MySQL. Для установки в терминале введите:

По запросу выберите какой web сервер будет настроен для phpMyAdmin. В этом разделе предполагается использование в качестве web сервера Apache2.

Далее производим настройку apache для обеспечения работы phpMyAdmin.
Начиная с ubuntu 13.10 необходимо выполнить команды в терминале:

После этого попробуйте снова войти через браузер.

Как только вы авторизуетесь, вы сможете при необходимости сменить пароль пользователя root, создавать пользователей, создавать/удалять базы данных, таблицы и пр.

Настройка

Файлы настройки phpMyAdmin находятся в /etc/phpmyadmin. Основной файл настроек - это /etc/phpmyadmin/config.inc.php. Этот файл содержит опции настройки, которые применяются к phpMyAdmin глобально.

Чтобы использовать phpMyAdmin для управления MySQL на другом сервере, настройте следующую запись в /etc/phpmyadmin/config.inc.php:

Замените db_server на актуальный IP адрес удаленного сервера базы данных. Также убедитесь, что компьютер с phpMyAdmin имеет права доступа к удаленной базе.

После настройки выйдите из phpMyAdmin и зайдите снова и вы получите доступ к новому серверу.

Файлы config.header.inc.php и config.footer.inc.php используются для добавления HTML верхнего и нижнего заголовков для phpMyAdmin.

Ограничить видимость для интернета

в файл /etc/apache2/conf-enabled/phpmyadmin.conf под строчкой

Ссылки

Документация по phpMyAdmin устанавливается из пакета и доступна по ссылке phpMyAdmin Documentation (знак вопроса в обрамлении) под логотипом phpMyAdmin. Официальная документация также доступна на сайте phpMyAdmin.

Читайте также: