Как осуществляется установка и настройка приложения phpmyadmin
Это подробная и пошаговая инструкция, как установить и настроить phpMyAdmin. Вам потребуется:
- Сервер Ubuntu 20.04, который должен иметь пользователя без прав root с правами администратора, а, также, брандмауэр, настроенный с помощью ufw .
- Стек LAMP (Linux, Apache, MySQL и PHP), установленный на вашем сервере.
Установка phpMyAdmin
Помимо пакета phpmyadmin , официальная документация рекомендует установить несколько расширений PHP для возможности использования определенной функциональности и улучшения производительности, а именно:
- php-mbstring - модуль для работы со строками, не поддерживающими кодировку ASCII;
- php-zip – расширение, поддерживающее загрузку файлов .zip ;
- php-gd - поддержка библиотеки GD Graphics;
- php-json - поддержка сериализации JSON;
- php-curl – расширение, позволяющее PHP взаимодействовать с разными типами серверов, используя разные протоколы.
Сначала обновите индекс пакетов сервера:
Для запуска установки запустите команду:
При установке необходимо выбрать следующие параметры при запросах:
- При выборе сервера выбирайте apache2.
- На вопрос о необходимости использования dbconfig-common для настройки базы данных, следует выбрать « Да» .
- Затем необходимо выбрать и подтвердить пароль приложения MySQL для phpMyAdmin.
Отключение компоненты Validate Password
Если вы установили MySQL, следуя руководству по установке LAMP, то, скорее всего, вы активировали плагин Validate Password. Это может вызвать ошибку при попытке задать пароль пользователя phpmyadmin:
Для устранения проблемы выберите опцию «abort», чтобы прервать процесс установки и открыть командную строку MySQL:
Если вы активировали аутентификацию по паролю для пользователя с правами root MySQL, запустите команду:
Далее, запустите команду для отключения Validate Password. Важно, что в этом случае выполняется не удаление, а простая остановка загрузки компонента на сервер MySQL:
После этого клиент MySQL можно закрыть:
Затем снова установите пакет phpmyadmin :
Далее, необходимо снова открыть командную строку MySQL с помощью sudo mysql или mysql -u root -p , и запустить команду повторной активации Validate Password:
В процессе установки будет добавлен файл конфигурации phpMyAdmin в каталог /etc/apache2/conf-enabled . Для завершения настройки работы Apache и PHP с phpMyAdmin выполните инструкцию для активации расширения PHP mbstring командой:
Теперь phpMyAdmin установлен и настроен для работы с Apache. Однако, прежде чем вы сможете войти и начать работу с базами данных, необходимо убедиться, что у пользователей MySQL есть права для взаимодействия с программой.
Настройка доступа для рутовой учетной записи MySQL
Для рутового пользователя MySQL в Ubuntu 20.04 установлена аутентификация при помощью плагина auth_socket по умолчанию. Это позволяет обеспечивать самое оптимальное соотношение удобства использования и безопасности. В свою очередь, это создаёт сложности при предоставлении доступа к пользователю в других внешних приложениях, например, в phpMyAdmin.
Для входа в phpMyAdmin при помощи root, необходимо изменить метод аутентификации: от использования плагина auth_socket на метод, использующий пароль. Для этого нужно перейдя в командную строку MySQL:
ввести команду вывода методов аутентификации для аккаунтов MySQL:
Результат выполнения команды выглядит примерно так:
В примере можно увидеть, что пользователь root использует плагин auth_socket . Чтобы изменить метод аутентификации запустите на выполнение команду , обязательно изменив значение 1234567890 на надежный пароль по вашему выбору:
Теперь необходимо снова ввести в командной строке:
Вывод команды будет выглядеть следующим образом:
В результате вывод исполненной инструкции должен показать, что пользователь root использует плагин cashing_sha2_password, то есть аутентификацию с помощью пароля.
Настройка доступа для специально созданного пользователя MySQL
Безусловно, должна существовать возможность подключения к phpMyAdmin пользователя, которого вы создали специально для работы с MySQL в случае, если вы не хотите использовать учётную запись root. Чтобы воплотить это, нужно произвести следующие действия:
Создать нового пользователя с надежным паролем (в данном случае пароль 1234567890 не является надёжным):
Обеспечить нового пользователя наличием соответствующих прав в части доступа к таблицам базы данных:
После чего можно выйти из MySQL:
Теперь вы сможете подключаться к веб-интерфейсу phpMyAdmin, используя имя домена или открытый IP-адрес сервера с добавлением /phpmyadmin :
Теперь можно войти в интерфейс phpMyAdmin через пользователя root или с новыми пользователем.
Обеспечение безопасности phpMyAdmin
Если есть необходимость дополнительно защититься от несанкционированного доступа к вашему ресурсу через web-интерфейс phpMyAdmin, можно разместить шлюз перед всем приложением с помощью встроенного в Apache функционала авторизации и аутентификации через .htaccess.
Настройка конфигурационного файла
Для этого нужно сначала активировать перезапись файла .htaccess, изменив файл конфигурации Apache вашей установки phpMyAdmin.
Отредактируйте phpmyadmin.conf, который находится в каталоге конфигурации Apache (я использовал nano):
Добавьте директиву AllowOverride All в раздел файла конфигурации <Directory /usr/share/phpmyadmin> , например:
Добавьте эту строку, сохраните и закройте файл (при использовании nano для редактирования файла, нажмите CTRL + X, Y, а затем ENTER).
Создание и настройка .htaccess
Теперь, когда вы активировали использование файлов .htaccess, вам нужно создать файл для реализации этого уровня защиты.
Файл .htaccess должен находиться в папке приложения. Для этого ннеобходимо создать его и открыть в редакторе с привилегиями root следующей командой:
В этот файл добавьте следующие строки:
В данном случае файла пароля находится в /etc/phpmyadmin/.htpasswd. Теперь нужно создать заявленный файл и передать его пользователю при помощью утилиты htpasswd:
Далее, необходимо дважды ввести пароль пользователя, которого вы создаете. Результатом будет созданный файл, в котором схэширован придуманный пароль.
Чтобы ввести дополнительного пользователя, необходимо использовать утилиту htpasswd без флага -c:
Теперь, для доступа к phpMyAdmin через web-интерфейс, необходим указать имя учетной записи и пароль:
Если имя пользователя и пароль набраны верно, вы должны будете перейти на страницу phpMyAdmin.
phpMyAdmin – простое приложение с открытым исходным кодом, позволяющее управлять базами данных MySQL. С его помощью можно администрировать пользователей, создавать и редактировать таблицы, а также проводить экспорт и импорт данных в них. Удобство состоит в том, что все эти операции можно проводить в веб-интерфейсе. Я расскажу, как установить phpMyAdmin на компьютер и на сервер.
Установка phpMyAdmin на компьютер
Прежде чем начать установку phpMyAdmin, убедитесь, что у вас установлены и настроены сервер Apache, PHP и базы данных MySQL. Еще нужно соединение с сервером по защищенному туннелю SSH. Этот способ скорее можно назвать ручным.
Сперва советуем скачать архив приложения с официального русскоязычного сайта. Выбираем любую удобную версию и жмем по ссылке для начала загрузки.
Как только процесс загрузки завершится, распакуем архив. Затем переходим в папку htdocs, расположенную на системном диске в директории «Apache». Сюда вставляем папку из архива, потом переименовываем ее в phpmyadmin.
Теперь открываем папку «PHP» и находим в ней файл «php.ini-production». Переименовываем его в php.ini, а потом открываем с помощью «Блокнота». Находим в тексте строчки «extension=php_mysqli.dll» и «extension=php_mbstring.dll» и удаляем в них символ точки с запятой. Сохраняем изменения, выходим из блокнота.
Установка phpMyAdmin на сервер
Процедура установки инструмента phpMyAdmin на сервер отличается для разных операционных систем. Требования примерно те же – соединение по защищенному туннелю SSH, предустановленное программное обеспечение PHP, MySQL, Nginx или Apache.
Ubuntu
Перед установкой phpMyAdmin на сервере с ОС Ubuntu прежде всего необходимо проверить, имеется ли расширение PHP для редактирования текстовых строк в формате юникода. Для этого в командной строке вводим вот такой запрос:
После завершения обновления можно приступать к установке нужного нам инструмента на сервер.
Как только данная команда активируется, откроется установщик. В нем будет предложен выбор веб-сервера для работы с приложением в дальнейшем. С помощью пробела выбираем пункт «apache», потом отмечаем кнопку ОК для применения изменений.
Если на вашем сервере установлен Nginx, на этом моменте просто выберите соответствующий пункт.
Далее будет предложено создание баз данных для данного ПО, в которой будет вся служебная информация. Соглашаемся, нажав на кнопку «Да», и идем дальше.
Следующий этап – создание пароля для собственного профиля. Можно придумать новый или оставить поле пустым, чтобы сервис сгенерировал случайную комбинацию. Потом, если мы все же придумали свой пароль, его следует подтвердить.
Но установка phpMyAdmin на сервер не завершена. Нам необходимо включить расширения PHP mcrypt и mbstring, используя для этого нижеуказанные команды:
Чтобы применить все изменения, перезапускаем сервер Apache с помощью специального запроса:
Debian
В случае с Debian был заранее предустановлен стек LEMP, включающий NGINX, MySQL и PHP. Но если что-то из всего этого на сервере отсутствует, можно задать в терминале вот такую команду:
Ждем завершения скачивания и установки всех пакетов. Еще для защиты аутентификации рекомендуется установить сертификат SSL/TLS для передачи зашифрованного трафика.
Так как в Debian большинство программ в репозиториях отсутствует, необходимо будет вручную добавить пункт с phpMyAdmin. Сперва открываем файл «sources.list» в редакторе вот такой командой:
Теперь вносим кое-какие изменения в самом конце файла, добавив следующие строчки:
Сохраняем изменения и выходим из редактора. Теперь надо обновить базы данных в терминале с помощью такого запроса:
А вот теперь можно приступать непосредственно к скачиванию нужного нам приложения. Вписываем следующую команду:
Так как у нас заранее предустановлен Nginx, в момент настройки нам не нужно будет выбирать веб-сервер. Просто пропускаем этот пункт, нажав на кнопку «Tab», а затем кликнув на ОК.
Выйдет новое окно в мастере установки, запрашивающее разрешение на использование «dbconfig-common». Данный параметр позволит настроить базу данных и пользователя с правами администратора для программы phpMyAdmin. Поэтому выбираем пункт «Да» и идем дальше.
CentOS
Здесь тоже заранее инсталлированы модули PHP и Apache. Чтобы установить phpMyAdmin на CentOS, прежде всего понадобится скачать расширенный репозиторий EPEL. Для этого мы задаем вот такую команду:
Если указанный репозиторий не скачать, командная строка может дать ошибку типа «пакета с названием phpmyadmin не найдено».
Скачивание пакета завершено, теперь можем приступать к скачиванию самой программы, и даем для этого следующий запрос:
Потом устанавливаем модули PHP для нормальной работы панели управления базами данных, и делается это одним запросом:
Возможно, они уже были установлены ранее, но все же стоит дополнительно выполнить проверку. Потом перезапускаем сервер для принятия всех внесенных изменений.
Понадобится настроить виртуальный домен, создав для этого специальный конфигурационный файл.
Содержание его при этом должно быть таково:
Сохраняем изменения и закрываем редактор. Затем проверяем корректность настроек вот такой командой:
Если ошибки не возникли, перезапускаем сервер. Если же возникли, заново вносим изменения в только что созданный файл.
Дополнительно можно еще создать отдельный каталог для хранения временных файлов с помощью такого запроса:
Потом потребуется задать для нее владельца и соответствующие права специальными командами:
Настройка завершена. Теперь можно открыть страницу с виртуальным доменом. В результате мы должны попасть на страницу с формой для ввода имени пользователя и пароля.
К этому моменту у вас должны быть установлены и настроены связка Apache + PHP и сервер MySQL. Ели это еще не сделано, то обратитесь к предыдущим статьям Установка сервера Apache, Установка и настройка PHP и Установка и настройка сервера баз данных (MySQL), либо воспользуйтесь другими источниками для установки данного ПО.
В рабочей папке вашего сервера htdocs создайте папку phpmyadmin и скопируйте туда содержимое скачанного архива.
Зайдите в директорию phpmyadmin, найдите файл config.sample.inc.php и переименуйте его в config.inc.php, откройте переименованный файл в блокноте для редактирования.
Отыщите строку $cfg['blowfish_secret'] = 'a8b7c6d'; и измените значение в кавычках на произвольную комбинацию цифр и букв латинского алфавита длиной не менее 10 (десяти) символов. Сохраните изменения.
Устранение ошибок и настройка дополнительных возможностей
Если вы при установке и настройке локального сервера в точности следовали инструкциям, которые описаны на этом ресурсе и использовали дистрибутивы, которые предоставлены здесь для скачивания, то при первом входе в phpMyAdmin у вас появятся следующие ошибки и предупреждения:
Настраиваем дополнительные возможности phpMyAdmin.
Кликните по заголовку, что бы открыть/закрыть подробное описание процесса
Нам потребуется создать новую базу данных - щелкаем по вкладке "Базы данных". В текстовом поле подраздела "Создать базу данных" вводим phpmyadmin, нажимаем кнопку "Создать".
Создадим нового пользователя - щелкаем по вкладке "Пользователи".
На данный момент у нас создан единственный пользователь с именем root. Кликаем по ссылке "Добавить пользователя",
в открывшемся всплывающем окне, в разделе "Информация учетной записи" в текстовое поле "Имя пользователя:" вводим "pma". В текстовое поле "Хост:" вводим "localhost". В поле "Пароль:" вводим пароль (любой, который придет вам в голову). В поле "Подтверждение:" подтверждаем введенный выше пароль.
Скролируем окно до раздела "Глобальные привилегии", жмем на ссылку "Отметить все".
Кликаем по кнопке "Добавить пользователя".
Новый пользователь с именем pma будет создан.
Теперь, в созданную базу нужно импортировать данные. В левой колонке выбираем phpmyadmin (кликаем по ней мышью).
В верхнем меню щелкаем по вкладке Импорт.
В подразделе Импортируемый файл: нажимаем кнопку обзор.
В открывшемся контекстном меню выбираем файл create_tables.sql, который находится в папке examples, лежащей внутри корневой директории phpMyAdmin (в моем случае полный путь выглядит так: c:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\phpmyadmin\examples\create_tables.sql).
В самом низу страницы находим и жмем кнопку Ok. База импортирована.
Внесем изменения в конфигурационный файл.
Открываем в блокноте файл config.inc.php. Ищем строку $cfg['Servers'][$i]['controlhost'] = '';, разкомментируем ее (удаляем двойной слеш), в кавычки вписываем localhost (строка примет вид $cfg['Servers'][$i]['controlhost'] = 'localhost';).
Находим и разкомментируем строку $cfg['Servers'][$i]['controlpass'] = 'pmapass';, в кавычках меняем пароль, на тот, который назначался при создании пользователя pma.
Находим и разкомментируем следующие строки:
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
$cfg['Servers'][$i]['recent'] = 'pma_recent';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
Сохраняем изменения в файле, выходим и снова заходим в phpMyAdmin. Предупреждение исчезло.
Как альтернативный вариант (если очень не хочется копаться в коде) - заменяем все содержимое файла config.inc.php на код, приведенный ниже
Не забываем вписать в строке $cfg['Servers'][$i]['controlpass'] = 'пароль для пользователя pma'; в кавычках пароль, который был задан для пользователя pma и в строке $cfg['blowfish_secret'] = 'a8b7c6d'; увеличить надпись в кавычках минимум до 10 символов
Убираем авторизацию
Если надоело каждый раз при обращении к базе авторизоваться, то в файл config.inc.php потребуется внести следующие изменения:
Находим строку $cfg['Servers'][$i]['auth_type'] = 'cookie'; и меняем параметр cookie на config
Ниже прописываем еще две строки:
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'пароль для пользователя root';
Не забываем вписать в кавычках пароль для пользователя root в строке $cfg['Servers'][$i]['password'] = 'пароль для пользователя root';
Теперь phpMyAdmin не будет запрашивать пароль для входа, но имейте ввиду, что это имеет смысл делать только на локальной машине, где вы являетесь единственным пользователем.
Работы по установке и общей настройке сервера на локальной машине полностью завершены. Конечно, в процессе работы может понадобится до настроить что то еще, но это уже зависит от конкретных выполняемых задач.
phpMyAdmin (PMA) – абсолютно бесплатный клиент для работы с базами данных MySQL. В данном уроке, мы расскажем как его установить, и рассмотрим несколько распространённых сценариев работы для администрировании баз данных. Здесь находится онлайн демо PMA.
Вдобавок к обеспечению визуального графического интерфейса для работы с базами данных мне также нравится возможность использования команд для выполнения SQL операций непосредственно из браузера без необходимости входа на сервер через SSH. Например, некоторые Wi-Fi соединения и мобильные источники регулярно прерывают устойчивые SSH сессии, делая работу с базами данных довольно проблематичной.
Установка phpMyAdmin
Нет ничего проще, чем установить PMA на Linux. Я опишу как сделать это на Ubuntu 14.x в Digital Ocean. Зайдите на сервер через SSH.
apt-get install phpmyadmin
Во время установки можете использовать стандартные настройки или подлатать их под себя.
Если вы ограничите доступ MySQL только через localhost (что вы должны сделать), то для хакера база будет вне зоны досягаемости. Конечно он может попытаться подключиться через SSH или осуществит атаку посредством SQL инъекций, но напрямую атаковать базу данных не сможет. Как только вы установите PMA, то данный инструмент становится потенциально уязвим для атак, поэтому меры предосторожности не повредят.
Есть несколько мер, которые я бы посоветовал при конфигурировании PMA.
Добваляем алиас в файл apache.conf :
Alias /myobscuredpma /usr/share/phpmyadmin
service apache2 reload
Если вам необходимо изменить пароль вашего phpMyAdmin, измените содержимое файла config-db.php :
4. Настройте веб-аутентификацию для доступа к PMA. После этого вам потребуется ввести дополнительный пароль:
Для настройки ограничений пользователя apache следуйте этим шагам:
Установите htpasswd из пакета apache2-utils :
apt-get install apache2-utils
Создайте директорию для хранения ваших паролей:
Добавьте в htaccess поддержку для PMA:
Далее добавьте AllowOverride :
Настраиваем дополнительную аутентификацию:
htpasswd -c /etc/htpasswd/.htpasswd username
И перезапустите Apache:
service apache2 restart
Теперь для доступа к PMA вам необходимо будет ввести ещё один пароль, как показано выше.
Использование phpMyAdmin для веб-разработки
1. Создание и удаление баз данных
На мой взгляд PMA особо полезен на стадиях разработки и тестирования, когда в любой момент смогу сбросить базу или сделать откат какой-то операции.
Без PMA мне бы пришлось заходить на мой сервер через SSH, подключаться к MySQL, а затем запускать запрос:
PMA позволяет нам запускать любой запрос через удобный визуальный интерфейс. Нажмите вкладку SQL и вставьте вышеуказанные SQL код. Затем кликните Go чтобы создать базу данных.
Так же для создания базы данных можите напрямую воспользоваться визуальный интерфейсом:
Таким же образом, вы можете добавлять пользователей и назначать привилегии. Перейдите на вкладку “Привилегии”:
Кликните “Добавить пользователя” и назначьте желаемые привилегии для базы данных:
Для самого обычного аккаунта будет достаточно выделить боксы в разделах “данные” и “структура”.
Чтобы удалить базу данных откройте меню, выберите базу, нажмите “удалить”:
2. Резервное копирование базы данных
Перед какими-то важными операциями неплохо было бы осуществить резервное копирование базы. Если что-то пойдет не так вы всегда сможете восстановить базу из резервной копии.
Щелкните на базу данных, перейдите на вкладку “Экспорт” и выберите “Custom”.
Выберите пункт «Add Drop Table / View / Procedure / Function / Event» :
Когда нажмёте Go, PMA создаст резервную копию всей вашей базы данных и отдаст её на скачку. Если настройки тайм-аута в вашем Apache PHP не настроены должным образом, некоторые загрузки крупных файлов могут не завершиться или прерваться. Измените настройки в php.ini .
3. Тестирование запросов
PMA прекрасно подходит для тестирования SQL запросов. Во время разработки одного проекта, мне было необходимо изучить поведение и протестировать ряд сложных запросов геолокации, найти ближайшие к моему адресу соседства.
Выберите ваше базу данных, нажмите Query. Вставьте или отредактируйте сложные SQL запросы и протестируйте их напрямую через PMA:
После шлифовки запроса, его легче применить в рамках шаблона ActiveRecord. Как тут:
4. Быстрое изменение данных
Если вы разработчик, то у вас наверняка возникала ситуация что при работе с БД выскакивали ошибки из-за отсутствия или неправильного значения в какой-то из ячеек таблицы. Не так ли?
PMA предоставляет нам отличную возможность изменения значения ячеек непосредственно из отображения таблицы. Откройте базу данных и выберите таблицу. Дважды кликните на колонке чтобы ввести значение. После окончания изменений нажмите “Enter”:
5. Актуализация базы данных на основе миграций
Если вы используете фрэймворк (как Yii), то наверняка в вашем арсенале есть инструмент миграции. Миграции облегчает поэтапное изменение БД в процессе разработки. Однако при тестирование могут возникнуть проблемы.
Чаще всего я наталкиваюсь на ошибки миграции из-за лишних (не удалённых) индексов, внешних ключей или таблиц. В таком случае я использую PMA для удаления таблицы и нежелательных индексов.
В PMA, выберите базу данных, кликните не вкладку SQL и выполните запрос. Вот несколько примеров:
Читайте также: