Logiss.ru

Ваша компьютерная помощь
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Установка phpMyAdmin в CentOS 7

Как установить и защитить phpMyAdmin с Apache на CentOS 7

How to Install and Secure phpMyAdmin with Apache on CentOS 7

В этом руководстве мы рассмотрим шаги, необходимые для установки и защиты phpMyAdmin с Apache на CentOS 7.

phpMyAdmin — это инструмент на основе PHP с открытым исходным кодом для управления серверами MySQL и MariaDB через веб-интерфейс.

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

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

  • LAMP (Linux, Apache, MySQL и PHP) установлен на вашем сервере CentOS .
  • Вы вошли как пользователь с привилегиями sudo .

Хотя это и необязательно, рекомендуется получить доступ к вашей установке phpMyAdmin через HTTPS. Если у вас нет SSL на ваших сайтах, следуйте инструкциям по защите вашего Apache с помощью на CentOS 7 .

Установка phpMyAdmin

Чтобы установить phpMyAdmin в системе CentOS 7, выполните следующие действия:

phpMyAdmin недоступен в основных репозиториях CentOS 7. Чтобы установить phpMyAdmin, нам нужно сначала включить репозиторий EPEL :

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

Настройка и защита phpMyAdmin

Файл конфигурации Apache для phpMyAdmin создается автоматически во время установки. По умолчанию все соединения кроме localhost запрещены. Поскольку мы будем обращаться к phpMyAdmin из удаленных мест, нам нужно изменить файл конфигурации и указать разрешенные IP-адреса.

Откройте файл конфигурации phpMyAdmin Apache:

Измените две строки, которые читаются Require ip 127.0.0.1 с IP-адресом вашего домашнего подключения. Если вы не знаете свой домашний IP-адрес, откройте поиск Google в своем веб-браузере и введите what is my ip .

Закройте и сохраните файл.

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

Начните с создания нового файла аутентификации с помощью htpasswd инструмента. Мы будем хранить .htpasswd файл в /etc/phpMyAdmin каталоге:

В этом примере мы создаем пользователя с именем admin . Вы можете выбрать любое имя пользователя, которое вы хотите.

Команда выше предложит вам ввести и подтвердить пароль пользователя.

Позже, если вам нужно добавить дополнительных пользователей, используйте ту же команду без -c флага:

Следующим шагом является настройка Apache для защиты паролем каталога phpMyAdmin и использования .htpasswd файла. Для этого откройте phpMyAdmin.conf файл, который был автоматически создан во время установки phpMyAdmin:

И вставьте следующие строки, выделенные желтым цветом:

Сохраните файл и перезапустите службу Apache, чтобы изменения вступили в силу:

Также хорошей идеей будет изменить адрес /phpmyadmin на более уникальный и безопасный.

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

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

Доступ к phpMyAdmin

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

Введите ранее введенные учетные данные администратора и нажмите Вперед (Go).

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

Читайте так же:
Как создать виртуальный диск в Windows 7

Вывод

Поздравляем, вы успешно установили phpMyAdmin на вашем сервере CentOS 7. Теперь вы можете начать создавать базы данных, пользователей и таблицы MySQL и выполнять различные запросы и операции MySQL

Установка phpMyAdmin на Linux CentOS

В данной инструкции рассмотрим процесс установки 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

systemctl restart httpd

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

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

NGINX

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

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

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

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

.php$ <
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
fastcgi_read_timeout 300;
>
>

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

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

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

systemctl restart nginx

С помощью location /phpmyadmin

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

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

Добавляем location ^

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

server <
listen 80 default_server;

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

^/phpmyadmin/(.+.php)$ <
root /usr/share/;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_read_timeout 300;
>
location

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

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

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

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

systemctl restart nginx

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:

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

systemctl restart httpd

4. Проверка

Открываем браузер и переходим по адресу нашего виртуального домена — в нашем случае, http://phpmyadmin.dmosk.local/ или http://<IP-адрес нашего сервере>/phpmyadmin (если настраивали с помощью домена по умолчанию для запросов на /phpmyadmin).

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

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

Страница ввода логина и пароля для входа в phpMyAdmin

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

5. Дополнительная настройка

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

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

head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32 ; echo ''

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

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

$cfg['blowfish_secret'] = '1IQofoKj440tR1rTcvWvwF6opgT5lsOJ';
$cfg['TempDir'] = './tmp/';

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

Установка Phpmyadmin CentOS 7

Система управления базами данных mysql набрала огромной популярности в последнее время. Она используется на большинстве веб-серверов, поскольку для работы современных веб-технологий нужно быстрое и надежное хранилище данных.

Время от времени нам нужно вручную внести изменения в хранимые данные, но по умолчанию mysql поддерживает работу только через терминал. Это достаточно сложно, поэтому был разработан веб-интерфейс phpmyadmin. В этой статье мы рассмотрим как выполняется установка Phpmyadmin CentOS 7 и как все настроить для максимально правильной работы.

Установка Phpmyadmin CentOS 7

В репозиториях, которые поставляются по умолчанию вместе с дистрибутивом Phpmyadmin нет. Он находится в репозитории EPEL или Extra Packages for Enterprise Linux. Поэтому сначала нам нужно установить этот репозиторий:

sudo rpm -iUvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Затем обновляем списки доступных пакетов из нового репозитория. В CentOS это делать не обязательно в отличие от Ubuntu, но будет так будет более правильно:

sudo yum -y update

Заодно команда установит все доступные обновления. Дальше можно устанавливать Phpmyadmin:

sudo yum -y install phpmyadmin

Если вы используете веб-сервер Apache, то вам осталось перезапустить его и phpmyadmin будет доступен по адресу:

Установка новой версии Phpmyadmin

Но, таким образом, вы получите старую версию phpmyadmin 4.4, которая работает на php 5.4. Если вы хотите php 7 и самый свежий phpmyadmin, то его можно установить из репозитория remi. Сначала добавляем репозиторий в систему:

sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Обновляем доступные пакеты, как и выше:

sudo yum update

Включаем поддержку новой версии PHP 7.1:

yum-config-manager —enable remi-php71

И теперь осталось только установить phpmyadmin Centos 7, нужную версию php он возьмет сам:

sudo yum install phpmyadmin

Дальше phpmyadmin будет доступен по тому же адресу при условии, что вы используете Apache.

Настройка Phpmyadmin Nginx

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

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

Тут /var/www/html/phpmyadmin — это папка с вашим проектом. Затем перезапустите php-fpm:

sudo systemctl restart php-fpm

В основной конфигурационный файл nginx.conf, в секцию http добавьте такую команду, это включит поддержку перехода по символическим ссылкам:

sudo vi /etc/nginx/nginx.conf

И еще, если у вас ISPManager поищите строчку disable_symlinks if_not_owner в настройке сайта и удалите ее иначе тоже ничего не заработает. Перезапустите nginx:

sudo nginx -s reload

Теперь вы сможете получить доступ к phpmyadmin добавив его адрес к адресу вашего рабочего проекта. Дальше про безопасность. Нам нужно, чтобы к этому адресу могли получить доступ только вы. Несмотря на то, что интерфейс запрашивает пароль, его можно пытаться перебрать, а это для нас очень нежелательно. Во-первых, вы можете переименовать ссылку во что-то более непонятное, например:

mv /var/www/html/phpmyadmin /var/www/html/pppma

Но для большей надежности можно использовать аутентификацию Nginx. Сначала создадим зашифрованный пароль:

Полученное значение нужно скопировать. Дальше создайте файл /etc/nginx/passwords и поместите в него имя пользователя и пароль через двоеточие, например:

sudo vi /etc/nginx/passwords

Теперь добавьте такой location в файл настройки вашего сайта, адрес pppma, в случае, если вы меняли название ссылки:

location /pppma <
auth_basic «Admin Login»;
auth_basic_user_file /etc/nginx/passwords;
>

Теперь при запросе этого адреса будет спрашиваться пароль.

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

Настройка phpmyadmin Apache

Радует то, что при работе с Apache Phpmyadmin будет доступен сразу же, без необходимости выполнять кучу дополнительных настроек. Но безопасность настраивать все же надо. Настройки phpmyadmin для Apache находится в файле /etc/httpd/conf.d/phpMyAdmin.conf нам будет достаточно добавить несколько строк. Но сначала создаем пароль:

htpasswd -c /etc/httpd/passwords admin

Дальше редактируем файл настроек:

Добавьте в секцию <Directory> такие строки:

Options Indexes FollowSymLinks
AllowOverride All
AuthType Basic
AuthName «Restricted Content»
AuthUserFile /etc/httpd/passwords
Require valid-user

Теперь, как и в предыдущем варианте, при попытке открыть phpmyadmin вы увидите запрос пароля.

Как удалить Phpmyadmin

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

sudo yum remove phpmyadmin

Не забудьте после этого удалить оставшиеся символические ссылки и конфигурации.

Выводы

В этой небольшой статье мы рассмотрели как выполняется установка Phpmyadmin Centos 7. Теперь вы знаете как установить самую новую версию программы и как заставить ее работать в вашей системе. Надеюсь эта информация была полезной, если у вас остались вопросы, спрашивайте в комментариях!

Установка и защита phpMyAdmin на Nginx сервере в 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 .

Вход в PhpMyAdmin

Чтобы выполнить вход, следует воспользоваться актуальным логином и паролем пользователя системы управления базой данных 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.

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

  • « admin » — логин для входа. Для повышения уровня безопасности, рекомендуется придумать собственное и уникальное имя.
  • « 8s3CCk/u7uOQ6 » — значение зашифрованного пароля, полученное из предыдущих действий.

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

Настройка Nginx

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

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

  • «auth_basic «Admin Login»;» — параметр, отвечающий за показ пользователям окна авторизации. Значение « Admin Login » отвечает за показ дополнительного информационного сообщения пользователям (можно изменить по желанию).
  • «auth_basic_user_file /etc/nginx/pma_pass;» — параметр, указывающий на путь до файла с логином и зашифрованным паролем.

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

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

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

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

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

Ссылка на основную публикацию