03.10.2017

Ubuntu Server и PhpMyAdmin

В прошлой статье я описал быструю установку MySQL-сервера в составе LAMP на Ubuntu Server. В этом случае, работа с БД, создание пользователей, баз данных и прочее доступно с командной строки.

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

Актуальная информация по установке PHPMyAdmin в заметке Ubuntu 20.04 Установка LAMP + PhpMyAdmin

Для работы  и управления с БД MySQL существует ряд приложений, одно из самых популярных PhpMyAdmin


Предлагаю рассмотреть установку PhpMyAdmin.

Я считаю, что WEB-сервер с поддержкой PHP и расширением для работы с MySQL уже установлены, поэтому останавливаться на этом не буду.

Устанавливать и настраивать PhpMyAdmin я буду, исходя из того, что хочу получать доступ к нему по HTTPS-протоколу и не стандартном порту 8443, например, по адресу  https://myhost.org:8443/phpmyadmin

1. Настройка Apache

1.1 Создаем сертификаты

Так, как я хочу, чтобы доступ был по HTTPS, нужно создать сертификаты.

cd ~

mkdir phpmyadmin

cd phpmyadmin

openssl req -new -x509 -days 360 -keyout phpmyadmin.key -out phpmyadmin.pem

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

Чтобы не вводить пароль при каждом запуске Apache,  снимаем пароль с ключа

cp phpmyadmin.key{,.orig}

openssl rsa -in phpmyadmin.key.orig -out phpmyadmin.key

Enter pass phrase for phpmyadmin.key.orig:

writing RSA key

rm phpmyadmin.key.orig

1.2 Настраиваем Apache

Создаю каталог для хоста и переношу подготовленные сертификаты.

mkdir /var/www/phpmyadmin/

sudo cp phpmyadmin.pem /etc/ssl/certs/

sudo cp phpmyadmin.key /etc/ssl/private/

sudo chmod 0600 /etc/ssl/private/phpmyadmin.key

Активируем поддержку SSL в Apache

sudo a2enmod ssl

Редактируем /etc/apache2/ports.conf

Добавляем Listen 8443, должно получится так

Listen 80

<IfModule ssl_module>

<------>Listen 443

<------>Listen 8443

</IfModule>

<IfModule mod_gnutls.c>

<------>Listen 443

<------>Listen 8443

</IfModule>

Это делаем для того, чтобы был доступ по 8443 порту

Создаем файл конфигурации нашего хоста /etc/apache2/sites-enabled/phpmyadmin-ssl.conf с содержанием

<IfModule mod_ssl.c>

        <VirtualHost *:8443>

                ServerAdmin webmaster@localhost

                DocumentRoot /var/www/phpmyadmin

                ErrorLog ${APACHE_LOG_DIR}/phpmyadmin-error.log

                CustomLog ${APACHE_LOG_DIR}/phpmyadmin-access.log combined

                SSLEngine on

                SSLProtocol all -SSLv2

                SSLCertificateFile      /etc/ssl/certs/phpmyadmin.pem

                SSLCertificateKeyFile /etc/ssl/private/phpmyadmin.key

                <FilesMatch ".(cgi|shtml|phtml|php)$">

                                SSLOptions +StdEnvVars

                </FilesMatch>

                <Directory /usr/lib/cgi-bin>

                                SSLOptions +StdEnvVars

                </Directory>

                <Directory "/var/www/phpmyadmin">

                                Options Indexes FollowSymLinks

                                AllowOverride All

                                Require all granted

                                Order allow,deny

                                Allow from all

                </Directory>

        </VirtualHost>

</IfModule>

Если не добавить секцию с описанием директории <Directory "/var/www/phpmyadmin"> будете получать ошибку

client denied by server configuration: /var/www/phpmyadmin/

И в завершение перезагружаем Apache

service apache2 reload

2. Установка PhpMyAdmin

Заходим на официальный сайт https://www.phpmyadmin.net/downloads/ и качаем последнюю доступную версию PhpMyAdmin. На момент написания, это phpMyAdmin 4.7.4

wget https://files.phpmyadmin.net/phpMyAdmin/4.7.4/phpMyAdmin-4.7.4-all-languages.tar.xz

tar -xJf phpMyAdmin-4.7.4-all-languages.tar.xz

mv phpMyAdmin-4.7.4-all-languages phpmyadmin

cp -r phpmyadmin /var/www/phpmyadmin/

Установка завершена, никакой настройки не потребовалось. Теперь вы можете зайти через браузер по адресу https://myhost.org:8443/phpmyadmin и если все получилось увидите страницу авторизации


Авторизация по логину/паролю пользователей БД Mysql

Несмотря на то, что в данном примере мы рассмотрели установку phpMyAdmin, на хост с портом 8443, который не является стандартным для доступа по http/https- протоколам, для увеличения безопасности использования  phpMyAdmin, рекомендую использовать .htaccess, чтобы ограничить доступ по диапазону IP-адресов или дополнительной аудитенфикации.

Как Вы увидели, ничего сложного нет. Если у Вас возникли вопросы, пишите в комментариях.

Комментариев нет:

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