Настройка phpmyadmin centos 8

Обновлено: 03.07.2024

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

Установите и настройте phpMyAdmin в RHEL / CentOS 8

Шаг 1: Установите PHP

phpMyAdmin написан на PHP, и вам нужно, чтобы он был установлен на вашем сервере RHEL. Мы написали исчерпывающее руководство по установке PHP на RHEL 8.

Убедитесь, что php-mysqlnd расширение установлено.

Шаг 2: Установите сервер базы данных MariaDB / MySQL

Следующим шагом является установка сервера базы данных MariaDB / MySQL. Следуйте инструкциям ниже, чтобы установить MariaDB или MySQL на RHEL 8.

Шаг 3: Установите веб-сервер Apache

Используйте наше руководство ниже для установки веб-сервера Apache на RHEL 8.

Шаг 4: Установите phpMyAdmin на RHEL 8

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

Сохранить версию в переменную.

Загрузите последнюю версию, как указано выше.

Для пакета только на английском языке используйте:

Извлечь скачанный архив

Переместить папку в /usr/share/phpmyadmin .

Создайте каталог для временных файлов phpMyAdmin.

Каталог для файлов конфигурации phpMyAdmin, таких как файл htpass.

Создайте файл конфигурации phpMyAdmin.

Настроить временный каталог

Шаг 5: Настройте веб-сервер Apache

Создайте файл конфигурации phpMyAdmin Apache.

Добавить ниже данные:

Вы можете ограничить доступ с определенного IP, добавив строку, как показано ниже

Проверьте настройку Apache.

Шаг 5. Настройка SELinux и брандмауэра

Примените политику, выполнив команду.

Перезагрузите конфигурацию перезагрузки брандмауэра.

Шаг 6: Доступ к веб-интерфейсу phpMyAdmin на RHEL 8

Поздравляем !. Вы успешно установили phpMyAdmin на RHEL 8. Наслаждайтесь администрированием операций базы данных MySQL / MariaDB с веб-панели управления.

В данной инструкции рассмотрим процесс установки phpMyAdmin на CentOS версий 8 и 7.

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

Установка может быть выполнена из репозитория (для CentOS 7) или путем загрузки портала с сайта разработчика (CentOS 8 или CentOS 7). Рассмотрим оба варианта.

а) Установка из репозитория

Данный вариант доступен только для CentOS 7.

Устанавливаем расширенный репозиторий EPEL:

yum install epel-release

yum install phpmyadmin

* если мы увидим ошибку «пакета с названием phpmyadmin не найдено», проверяем еще раз наличие установленного репозитория epel.

б) Установка вручную

Данный способ универсальный — он подходит для CentOS 8 и CentOS 7.

Устанавливаем пакеты, необходимые для скачивания и распаковки архива:

yum install wget unzip

Переходим на сайт разработчика phpMyAdmin и копируем ссылку на нужную нам версию, например, последнюю:

Копируем ссылку на последнюю версию phpMyAdmin

Воспользовавшись скопированной ссылкой, скачиваем архив с установочными файлами:

* на момент написания инструкции, последняя стабильная версия была 4.9.1.

Распаковываем скачанный архив:

Создаем каталог для phpmyadmin, например:

. и переносим в него содержимое распакованного архива:

mv phpMyAdmin-*-all-languages/* /usr/share/phpMyAdmin/

Задаем владельца для каталога:

chown -R apache:apache /usr/share/phpMyAdmin

* как правило, сервис, которых обрабатываем php-запросы работает от пользователя apache.

2. Установка модулей php

Для корректной работы портала управления СУБД необходимо установить следующие расширения php:

yum install php-json php-mbstring php-mysqli

* скорее всего, они уже будут установлены, если установка выполнялась из репозитория.

После установки может понадобиться перезапуск сервера, который обрабатываем php.

systemctl restart php-fpm

3. Настройка виртуального домена

Настройка виртуального домена зависит от веб-сервера, который мы используем. Разберем примеры для NGINX и Apache.

NGINX

В данном примере мы рассмотрим настройку связки NGINX + php-fpm. Также мы сконфигурируем два варианта прослушивания — виртуальный домен и с добавлением пути /phpmyadmin.

1) На отдельном домене

Создаем конфигурационный файл для виртуального домена:

server listen 80;
server_name phpmyadmin.dmosk.local;
set $root_path /usr/share/phpMyAdmin;

location / root $root_path;
index index.php;
>

  • listen — порт, на котором слушает nginx для данного домена.
  • server_name — домен для которого применяются настройки server. В данном примере phpmyadmin.dmosk.local.
  • root_path — переменная, в которую мы заносим наш путь до phpMyAdmin.
  • location / — настройки для запросов к серверу. В конкретном случае, мы используем root_path в качестве корневой директории для скриптов сайта; опция index нужна для поиска скрипта по умолчанию, если нет явного обращения клиентом.
  • location

Проверяем корректность настройки nginx:

. и если ошибок нет, перезапускаем сервис:

systemctl restart nginx

2) С помощью location /phpmyadmin

Открываем конфигурационный файл для домена по умолчанию:

* в вашей ситуации, файл с доменом по умолчанию может быть другим.

Добавляем location ^

/phpmyadmin со следующими настройками:

server listen 80 default_server;

location /phpmyadmin root /usr/share/;
index index.php;
location

* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ root /usr/share/;
>
>
>

  • root — каталог, в котором находится каталог с phpmyadmin с порталом.
  • location

Проверяем корректность настройки nginx:

. и если ошибок нет, перезапускаем сервис:

systemctl restart nginx

3) Проверка настройки php-fpm

После настройки nginx проверяем настройку php-fpm:

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

* на основе порта — listen = 127.0.0.1:9000.

Если конфигурационный файл пришлось менять, перезапускаем сервис:

systemctl restart php-fpm

Apache

Создаем конфигурационный файл для виртуального домена:

<VirtualHost *:80>
Define root_domain phpmyadmin.dmosk.local
Define root_path /usr/share/phpMyAdmin

<Directory /usr/share/phpMyAdmin>
AllowOverride All
Options Indexes ExecCGI FollowSymLinks
Require all granted
</Directory>
</VirtualHost>

Проверяем корректность настройки apache:

. и если ошибок нет, перезапускаем сервис:

4. Проверка

Адрес phpmyadmin.dmosk.local должен разрешаться в IP-адрес с помощью DNS или локального файла hosts.

В итоге, мы должны увидеть страницу с формой ввода логина и пароля:

Необходимо ввести учетные данные для подключения к СУБД.

5. Настройка phpMyAdmin

Рассмотрим некоторые примеры.

Тюнинг

Наш phpMyAdmin работает, но не оптимально. Внесем коррекции в его конфигурационный файл.

Для начала сформируем случайную последовательность символов — их будем использовать в качестве парольной фразы:

После копируем полученную последовательность и создаем конфигурационный файл phpMyAdmin:

Приводим его к виду:

* где 1IQofoKj440tR1rTcvWvwF6opgT5lsOJ — парольная фраза. ./tmp/ — путь для хранения временных файлов.

Создаем каталог для хранения временных файлов:

Задаем для нее правильного владельца и права:

chown apache:apache /usr/share/phpMyAdmin/tmp

chmod 755 /usr/share/phpMyAdmin/tmp

Удаленный сервер

Может быть так, что phpMyAdmin установлен на один сервер, а сервер баз данных на другом (или их несколько). Тогда настройка может быть такой:

* где 192.168.0.15 — адрес сервера, к которому будет идти подключение.

Или для нескольких серверов:

* в данном примере мы будем давать возможность выбора между серверами 192.168.0.15 и 192.168.0.17. Опция verbose позволяет задать отображаемое имя сервера в строке выбора.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда. Если вам нужен высокопроизводительный web сервер на базе последних версий nginx и php-fpm, то читайте отдельную статью по этой теме - установка и настройка nginx и php-fpm7 на centos.

Цели статьи

Данная статья является частью единого цикла статьей про сервер Centos.

Введение

В этой статье я расскажу, как настроить web сервер на базе популярного стека технологий - apache и php с модулем prefork. В связи с выходом нового релиза Centos 8, многие статьи на эту тему стали не актуальны, так как версии софта в базовых репозиториях обновились и тот же php нет смысла ставить из стороннего репозитория.

Работать будем на сервере под управлением CentOS 8. Если у вас его еще нет, то читайте мои статьи на тему установки и базовой настройки centos. Не забудьте уделить внимание теме настройки iptables. В данной статье я ее не буду касаться, хотя тема важная для web сервера.

В своей тестовой среде я буду использовать следующие сущности.

Web сервер на CentOS 8

Подопытным сервером будет выступать виртуальная машина от ihor, характеристики следующие:

Процессор 2 ядра
Память 3 Gb
Диск 30 Gb SSD

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

Настройка apache в CentOS 8

Теперь приступим к установке apache. В CentOS 8 это делается очень просто:

Добавляем apache в автозагрузку:

Запускаем apache в CentOS 8:

Проверяем, запустился ли сервер:

Если ничего не видите, скорее всего у вас не настроен firewall. Если не занимались его настройкой, то по-умолчанию в centos установлен firewalld. На нем открыть порты для web сервера можно следующими командами.

Проверить, открылись ли порты можно командой.

Все в порядке, веб сервер работает. Теперь займемся настройкой apache. Я предпочитаю следующую структуру веб хостинга:

Создаем для нее директории.

Перезапуск apache в centos

Проверим созданную конфигурацию и выполним перезапуск apache.

В данном случае ошибок нет, показано предупреждение. Теперь делаем restart apache:

Дальше на своем компьютере правим файл hosts, чтобы обратиться к нашему виртуальному хосту. Добавляем туда строчку:

где 10.20.1.23 ip адрес нашего веб сервера. Это нужно сделать только в том случае, если настраиваете web сервер где-то в локальной сети без реально существующего доменного имени.

Установка php в CentOS 8

Установка php в Centos 8 сильно упростилась по сравнению с предыдущей версией, потому что в базовом репозитории хранится актуальная версия php 7.2 , которой можно пользоваться. Пока нет необходимости подключать сторонние репозитории, так как версия 7.2 вполне свежа и актуальна. Если у вас нет необходимости использовать что-то новее, то можно остановиться на этой версии.

Устанавливаем php в CentOS 8, а так же некоторые популярные модули, которые могут пригодиться для того же phpmyadmin.

Выполним перезапуск apache:

Создадим файл в директории виртуального хоста и проверим работу php:

Вы должны увидеть вывод информации о php. Если что-то не так, возникли какие-то ошибки, смотрите лог ошибок виртуального хоста, php ошибки будут тоже там. Если вам необходима более свежая версия php, то читайте статью по обновлению php 7.2 до 7.4.

Где лежит php.ini

После установки часто возникает вопрос, а где хранятся настройки php? Традиционно они находятся в едином файле настроек. В CentOS php.ini лежит в /etc, прямо в корне. Там можно редактировать глобальные настройки для всех виртуальных хостов. Персональные настройки каждого сайта можно сделать отдельно в файле конфигурации виртуального хоста, который мы сделали раньше. Давайте добавим туда несколько полезных настроек:

Добавляем в самый конец, перед </VirtualHost>

Для применения настроек нужно сделать restart apache. Если у вас полностью дефолтная установка, как у меня, то скорее всего вы увидите ошибку.

Invalid command 'php_admin_value', perhaps misspelled or defined by a module not included in the server configuration

Тут стоит проверка на запуск модуля. Он загружается только, если у нас загружен модуль prefork. Давайте попробуем его загрузить принудительно. Для этого комментируем все строки, кроме основной.

Проверяем конфигурацию apache.

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.

Стандартный модуль mod_php скомпилирован с поддержкой модуля mpm_prefork. С другими он работать не будет. Таким образом, чтобы у нас нормально заработал php, нам надо вместо модуля mpm_event подключить модуль mpm_prefork. Для этого в конфиге 00-mpm.conf закомментируем подключение mpm_event_module и раскомментируем prefork.

После этого проверяйте конфигурацию и перезапускайте apache. Все должно заработать. Теперь в выводе phpinfo можно увидеть изменение настроек.

Установка MySQL в CentOS 8

Как я уже писал ранее, сейчас все большее распространение получает форк mysql — mariadb. Она имеет полную совместимость с mysql, так что можно смело пользоваться. Я предпочитаю использовать именно ее.

Устанавливаем mariadb на CentOS 8:

Запускаем mariadb и добавляем в автозагрузку.

Запускаем скрипт начальной конфигурации mysql и задаем пароль для root. Все остальное можно оставить по-умолчанию.

Не буду приводить весь вывод работы этого скрипта, там все достаточно просто и понятно. Сначала задаем пароль для root (текущий пароль после установки пустой), потом удаляем анонимных пользователей, отключаем возможность подключаться root удаленно, удаляем тестового пользователя и базу.

Файлы настроек mysql/mariadb в Centos 8 лежат в директории /etc/my.cnf.d. Для обычной работы достаточно настроек по-умолчанию. Но если вы решите изменить их, не забудьте перезапустить службу баз данных.

Перезапуск mariadb/mysql в CentOS 8:

На этом все. Базовый функционал web сервера на CentOS 8 настроен. Дальше настроим популярную панель управления mysql сервером - phpmyadmin.

Установка phpmyadmin

Для того, чтобы установить phpmyadmin на наш web сервер, достаточно просто распаковать в директорию с виртуальным хостом исходники панели. Давайте подготовим виртуальный хост. Создаем структуру папок.

После добавления конфига, не забудьте перезапустить apache.

Архив упакован в zip. Если у вас нет на сервере пакета unzip, установите его.

Распаковываем исходники в директорию виртуального хоста.

Более подробно вопрос установки и настройки phpmyadmin я рассматривал отдельно. Можете зайти в панель и создать базу mysql для тестового сайта, например, wordpress. Затем через консоль загрузить исходники cms и распаковать их.

Настройка ssl сертификата Lets Encrypt в apache

Теперь настроим работу web сервера apache с ssl сертификатом. Хотя если быть точным, то tls сертификатом. Устанавливаем пакет certbot для получения бесплатного ssl сертификата от let’s encrypt. Для этого нам сначала надо подключить репозиторий epel.

После установки пакетов certbot, если его запустить, напишет ошибку, что не может сам настроить apache.

Настроим все сами. Для начала создадим самоподписанный дефолтный сертификат, чтобы apache не ругался на отсутствие файла и смог запуститься.

Все параметры оставляйте дефолтные, не принципиально. Мы этот сертификат использовать не будет. Перезапустите apache.

Теперь выпустим сертификат для нашего домена. Имейте ввиду, чтобы получить сертификат у вас должно быть действующее доменное имя, ссылающееся на web сервер, который настраиваете. Let's Encrypt будет по доменному имени обращаться к серверу, на котором настраиваете сертификат, чтобы проверить домен. В тестовой лаборатории с вымышленным доменным именем получить настоящий ssl сертификат не получится.

В качестве способа аутентификации выбирайте

По аналогии делаете с остальными виртуальными хостами, для которых используете бесплатные сертификаты let’s encrypt. Осталось дело за малым — настроить автоматический выпуск новых ssl сертификатов, взамен просроченным. Для этого добавляем в /etc/crontab следующую строку:

  1. Через файл .htaccess
  2. С помощью настройки виртуального хоста.

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

Ротация логов веб сервера apache

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

Я предлагаю ротировать файлы логов по достижению ими размера в 10Мб, сжимать после ротации и хранить 10 архивов с логом. Обращаю внимание на важный нюанс при ротации логов по размеру. Скорее всего в общем случае она будет работать не так, как вы ожидаете. Подробности читайте по ссылке. Я привел пример простой конфигурации. Все параметры вы можете поменять по своему усмотрению. Примеров конфигурации logrotate в интернете много.

Настройка SELinux для web сервера apache

Раздел для тех, кто хочет настроить SELinux на своем web сервере. Сначала ставим пакет policycoreutils-python-utils если он еще не установлен. Он нам нужен для утилиты semanage.

Теперь автоматически сформируем модуль для selinux на основе событий аудита, которые накопились, пока мы настраивали сайт. Посмотреть их можно командой.

Создаем модуль selinux.

То же самое делаем для php.

Добавим нашу директорию /web/sites в соответствующие таблицы selinux для контента и логов.

И отдельно добавим каталог, куда web сервер сможет писать данные. Я покажу на примере правила для сайтов wordpress, где web сервер должен уметь писать в директорию wp-content для загрузки медиафайлов, установки тем и плагинов, а так же изменять файл wp-config.php.

Обновляем атрибуты файлов новым контекстом SELinux.

Теперь активируем защиту selinux и проверяем, что она работает.

Режим работы Enforcing означает, что selinux работает. Убедиться, что модули загружены, можно командой.

В целом, по selinux все. Мы просто разрешили все, что веб сервер просил. По идее, надо вдумчиво во всех правилах разбираться и разрешать только то, что считаешь нужным. Я честно скажу, что selinux знаю не очень хорошо. Дальше загрузки готовых модулей и автоматического создания модулей с помощью audit2allow я не двигался. Руками модули никогда не писал. Если есть какой-то более осмысленный и правильный способ настройки selinux на кастомной конфигурации веб сервера, буду рад полезной информации.

Видео

В завершении полное видео настройки web сервера apache на основе приведенной статьи. Если у кого-то что-то не получается, посмотрите, как это сделал я.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

На этом по настройке apache все. Я рассмотрел все основные моменты, которые необходимы для установки и настройки web сервера на основе apache и php, который обычно называют LAMP. При этом рассказал о некоторых вещах, которые повышают удобство и гибкость эксплуатации сервера.

Тема настройки веб сервера обширна. Рассмотреть все варианты в одной статье невозможно, так как функционал будет разниться, в зависимости от назначения сервера. Тем не менее приведу еще несколько ссылок на материалы, которые имеют отношение к настройке web сервера:

    или отдельных сайтов. и веб сайта с помощью zabbix. .
  • Если у вас будут проблемы с ботами, то пригодится статья по блокировке доступа к сайту по странам или защита сайта от ddos.

Если еще что-то полезное вспомню, добавлю ссылки. Пока вроде все. Статья получилось большой и насыщенной. Было не просто все собрать воедино, проверить, связать между собой и оформить в последовательное повествование. Мог где-то ошибиться. Жду комментариев и отзывов. Написал все по своему опыту, как я обычно настраиваю веб сервера. Предполагаю что-то можно сделать более удобно и правильно. Буду рад научиться.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.


Управление базами данных MariaDB или MySQL можно осуществлять через командную строку. Однако такой вариант подходит не для всех пользователей, особенно начинающих. Чтобы облегчить эту задачу, можно воспользоваться веб-интерфейсом phpMyAdmin для управления БД.

В данном руководстве рассмотрено, как установить phpMyAdmin на CentOS 7 с веб-сервером Nginx, а также защитить его от потенциальных злоумышленников. Данный способ также подходит для версий CentOS 6 и CentOS 8.

Подготовка к установке

Технические требования к установке PhpMyAdmin

Установка phpMyAdmin на сервер возможна в случае, если на CentOS уже установлен и настроен стек LEMP (Linux, Nginx, MariaDB и PHP). Данный комплекс программ необходим для запуска, работы и дополнительной настройки веб-интерфейса PhpMyAdmin.

Установка дополнительных репозиториев

В официальных репозиториях CentOS 7 пакет phpMyAdmin отсутствует. Проблема решается добавлением в систему дополнительного репозитория EPEL (Extra Packages for Enterprise Linux). В нем имеется огромное количество дополнительных пакетов для установки разного ПО, включая phpMyAdmin.

Установка EPEL репозитория выполняется командой:

Установка phpMyAdmin

Инсталляция PhpMyAdmin производится командой:

После непродолжительной установки файлы PhpMyAdmin будут распакованы по пути /usr/share/phpMyAdmin/. Даже после установки пакетов, PhpMyAdmin не будет работать, так как отсутствуют необходимые параметры в настройках хоста Nginx.

Настройка Nginx

PhpMyAdmin состоит из веб-страниц, написанных на языке PHP. Чтобы они стали доступны по определённому веб-адресу, нужно в настройки хоста Nginx добавить директиву «location», указывающую на каталог с веб-интерфейсом PhpMyAdmin, а так же набор необходимых параметров для работы с PHP.

Для внесения параметров необходимо открыть конфигурационный файл Nginx с настройками хоста. По умолчанию это файл «default.conf» (/etc/nginx/conf.d/default.conf).

Открыть конфигурационный файл можно с помощью редактора Nano при помощи следующей команды:

В открывшемся файле нужно найти главную директиву «server» и добавить следующий блок «location»:

В приведенном выше блоке « 127.0.0.1:9000 » – порт TCP порта для подключения к PHP.

Примечание. В CentOS, по умолчанию, PHP-FPM слушает Nginx через TCP порт. В случае, если сервер настроен на работу с PHP через сокет PHP-FPM, нужно изменить строку «fastcgi_pass 127.0.0.1:9000; » на «fastcgi_pass unix: /run/php-fpm/php-fpm.sock ;» Где « /run/php-fpm/php-fpm.sock; » – путь до UNIX сокета.

Настройка Nginx

Чтобы сохранить и закрыть файл, нужно нажать «Ctrl+X», потом «Y» и подтвердить изменения нажатием «Enter».

Проверить корректность введённый параметров можно командой:

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


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

Для применения параметров нужно перезагрузить Nginx:

Проверка работоспособности PhpMyAdmin

Проверить работоспособность PhpMyAdmin можно, введя в адресной строке браузера IP-адрес сервера и добавив «/phpmyadmin»:

Вместо « 194.61.0.6 » нужно ввести актуальный IP-адрес сервера или домена.

После перехода по веб-адресу должна открыться приветственная страница PhpMyAdmin.

Примечание. При возникновении ошибок 403, 502 и подобных стоит проверить правильность указанного в конфиге Nginx пути до UNIX сокета PHP-FPM. Если все параметры указаны верно, можно попробовать перенастроить PHP .


Чтобы выполнить вход, следует воспользоваться актуальным логином и паролем пользователя системы управления базой данных MySQL.

В случае, если пользователь MySQL не создан, выполнить регистрацию можно введя пару команд из оболочки MySQL.

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

Примечание. После ввода команды программа запросит пароль root пользователя MySQL. Если пароль не задан, нужно оставить поле «Enter password» пустым и нажать «Enter».

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

  • « user » – логин создаваемой учётной записи.
  • « mypassword » – пароль создаваемой учётной записи.

Теперь можно выполнить вход в PhpMyAdmin от имени созданного пользователя. После входа будет открыто окно с интерфейсом PhpMyAdmin.

На этом установка на сервер phpMyAdmin будет закончена. Далее следует защитить к нему доступ от возможности входа сторонних лиц.

Защита phpMyAdmin

Сразу же после установки phpMyAdmin дает сторонним лицам без особых трудностей получить доступ к базе данных сайта. После установки окно авторизации в веб-интерфейс PhpMyAdmin не имеет защиты и представляет собой большую уязвимость в безопасности. Это позволяет злоумышленнику использовать эксплойты или подбор паролей (брутфорс) для доступа к учётной записи MySQL.

Обеспечить безопасность можно с помощью двух несложных действий:

  1. Изменить стандартное местоположение phpMyAdmin на другое. Так боты не смогут отследить путь к веб-интерфейсу.
  2. Создать еще одно окно авторизации, но уже на уровне сервера. Только после его прохождения, появится возможность открыть окно входа в phpMyAdmin.

Изменение местоположения PhpMyAdmin

При настройке Nginx задается стандартный путь до PhpMyAdmin – «/phpmyadmin». Чтобы избежать многочисленных атак ботов, рекомендуется изменить этот адрес на уникальный.

Для внесения изменений нужно открыть конфигурационный файл Nginx:


Примечание. Местоположение в данном примере — «/userphp». Его следует изменить на другое — соответствующее актуальному.

Остается проверить, все ли сделано правильно, для чего — перейти по старому адресу для входа:

Вместо окна авторизации должна появиться «ошибка 404». При этом открыть phpMyAdmin теперь возможно по новому адресу:

Двухэтапная авторизация PhpMyAdmin

Вторая мера, усиливающей безопасность phpMyAdmin — создание дополнительного требования пройти аутентификацию. Лишь после ее прохождения пользователь сможет открыть окно авторизации в веб-интерфейс PhpMyAdmin.

В Nginx такая функция доступна после установки. В данном случае, достаточно немного отредактировать конфигурационный файл Nginx. Однако, перед этим потребуется создать файл с базой паролей, где будут сохранены данные для авторизации.

Генерация зашифрованного пароля

Согласно требованиям Nginx, сохраненные пароли необходимо зашифровать функцией «crypt ()». Она включена в пакет OpenSSL, который устанавливается автоматически вместе с Nginx.

Для создания зашифрованных паролей в терминале используется команда:

Программа предложит задать пароль и ввести его повторно для подтверждения. Далее она покажет, как он выглядит в зашифрованном виде. Получится примерно следующее значение:


Примечание. Введённый в программу пароль будет использоваться для входа в дополнительное окно авторизации.

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

Создание файла авторизации

Можно переходить к созданию самого файла авторизации. В последующем он будет занесён в переменную Nginx «auth_basic_user_file» для обозначения логина и зашифрованного пароля. В этом примере файл авторизации будет назван «pma_pass» и сохранен в папке настроек Nginx:

В данном файле остается ввести логин пользователя, который будет использоваться. После него ставится двоеточие (:) и уже затем добавляется зашифрованный пароль, сгенерированный пакетом openssl passwd.

В приведенном выше примере:

По завершении ввода остается сохранить и закрыть текстовый редактор.

Настройка Nginx

Можно приступать к редактированию файла настроек веб-сервера Nginx. Его следует запустить в своем текстовом редакторе (в данном примере — Nano):

В приведенном выше примере:


Остается сохранить изменения и закрыть этот файл.

Чтобы дополнительный шлюз был запущен, потребуется выполнить перезагрузку веб-сервера командой:

Проверка работы двухэтапной аутентификации

При попытке перехода по веб-адресу phpMyAdmin, браузер покажет окно с запросом ввести логин и пароль, добавленные в файле «pma_pass».


При попытке авторизоваться с помощью несуществующего логина и пароля, сервер выдаст ошибку «403 Forbidden».

В этой статье я покажу вам, как установить phpMyAdmin 5 на CentOS 8. Итак, приступим.

Установка PHP, Apache, MySQL/MariaDB:

phpMyAdmin написан на языке программирования PHP. Итак, у вас должен быть рабочий LAMP-сервер для запуска phpMyAdmin.

Сначала обновите кеш репозитория пакетов CentOS 8 с помощью следующей команды:


Сейчас установите все необходимые пакеты (для Apache, PHP, MySQL/MariaDB) с помощью следующей команды:


Нажмите Y , а затем нажмите , чтобы подтвердить установку.


Все необходимые пакеты должны быть установлены.


Теперь запустите веб-сервер Apache с помощью следующей команды:


Теперь добавьте службу веб-сервера Apache при запуске системы с помощью следующей команды:


Теперь проверьте статус сервис веб-сервера Apache следующим образом:

Он работает правильно.


Теперь запустите сервер базы данных MariaDB с помощью следующей команды:


Теперь добавьте службу сервера базы данных MariaDB при запуске системы с помощью следующей команды:


Теперь проверьте состояние службы сервера базы данных MariaDB следующим образом:

Он работает правильно.

Настройка учетной записи MySQL/MariaDB для phpMyAdmin:

Теперь у вас есть чтобы создать учетную запись пользователя MySQL/MariaDB для phpMyAdmin.

Сначала войдите в оболочку базы данных MySQL/MariaDB как root с помощью следующей команды:


Теперь введите пароль root для MySQL/MariaDB и нажмите . По умолчанию пароль не установлен. Итак, просто нажмите , если вы не установили пароль MySQL/MariaDB.


ПРИМЕЧАНИЕ. Для настройки корневого каталога MySQL/MariaDB , выполните следующую команду и следуйте указаниям мастера.

Вы должны войти в систему в консоль MySQL/MariaDB как root .


Теперь создайте нового пользователя MySQL/MariaDB phpmyadmin следующим образом:

Обязательно замените своим собственным паролем. .


Сейчас , чтобы изменения вступили в силу, запустите следующий оператор SQL.


Наконец, выйдите из оболочки MySQL/MariaDB следующим образом:


Загрузка phpMyAdmin 5:

В Чтобы загрузить phpMyAdmin, посетите официальную страницу загрузок phpMyAdmin в своем любимом веб-браузере и нажмите кнопку Загрузить .


Ваш браузер должен предложить вам сохранить архив phpMyAdmin. Выберите Сохранить файл и нажмите OK .


Необходимо загрузить архив phpMyAdmin.


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

После загрузки архива phpMyAdmin перейдите в каталог

/Downloads следующим образом:


Здесь вы сможете найти архив phpMyAdmin 5 phpMyAdmin-5.0.0-all-languages.zip .


Теперь извлеките phpMyAdmin-5.0.0-all-languages. zip в каталоге /var/www с помощью следующей команды:


Файл phpMyAdmin-5.0.0-all-languages.zi p следует распаковать в каталог /var/www .


Новый каталог phpMyAdmin-5.0.0-all-languages ​​/ должен быть создан в /var/ www в каталоге. Запомните имя каталога, оно понадобится вам позже..


Теперь измените пользователя и группу /var/www/phpMyAdmin-5.0.0-all-languages ​​ и его содержимое в apache следующим образом:

$ sudo chown -Rf apache: apache/var/www/phpMyAdmin-5.0.0-all-languages


Если у вас включен SELinux (что весьма вероятно в CentOS 8/RHEL 8), выполните следующую команду, чтобы установить правильный контекст SELinux для /var/www/phpMyAdmin-5.0.0-all-languages ​​ и его содержимое.


Чтобы изменения SELinux вступили в силу, выполните следующую команду:


Контекст SELinux следует применить к каталогу /var/www/phpMyAdmin-5.0.0-all-languages ​​ и его содержимое.



Сейчас добавьте следующую строку в файл


Теперь перезапустите службу веб-сервера Apache с помощью следующей команды:



Введите имя пользователя phpmyadmin и пароль и нажмите Go .


Вы должны войти в phpMyAdmin. Теперь у вас должна быть возможность использовать phpMyAdmin для управления базой данных MySQL/MariaDB из веб-браузера.


Удаленный доступ к phpMyAdmin 5:

Если вы хотите получить доступ к phpMyAdmin удаленно (с других компьютеров в сети), вам необходимо настроить брандмауэр CentOS 8 чтобы разрешить доступ к порту 80.

Чтобы разрешить доступ к порту 80, выполните следующую команду:


Чтобы изменения вступили в силу, выполните следующую команду:


Теперь найдите IP-адрес вашего компьютера CentOS 8. с помощью следующей команды:

В моем случае IP-адрес 192.168.20.129 . Для вас он будет другим. Так что не забудьте заменить его теперь своим.



Итак, вот как вы устанавливаете phpMyAdmin 5 на CentOS 8. Спасибо за чтение этой статьи.

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