Установка SQL сервера MariaDB и web-приложения phpMyAdmin

Сервер MariaDB — это улучшенный сервер MySQL. И тот и другой серверы были созданы одной командой разработчиков. Сервер MySQL был назван в честь Маи, старшей дочери ведущего разработчика Майкла Видениуса, а сервер MariaDB был назван в честь Марии, его младшей дочери. Как правило, в стандартных репозиториях присутствуют относительно свежии версии этого сервера, поэтому его установку можно произвести из стандартных репозиториев:

apt-get install mariadb-server

В процессе установки система попросит вас установить и подтвердить пароль для пользователя root — устанавливайте сложный пароль, содержащий не менее 12 символов. Для этих целей можно воспользоваться online-генератором сложных паролей, например этим. Ваш пароль от root пользователя сервера SQL не должен быть простым: рекомендуется, чтобы в нём присутствовали буквенные символы в разном регистре, цифровые символы, а также специальные символы. Ваш сервер будет не первым и не последним, если его взломают простым перебором паролей, при отсутствии вашего должного внимания к составлению сложного пароля. Абсолютно то же самое касается и пароля root пользователя вашей операционной системы.

В отличие от SQL сервера, версия phpMyAdmin в стандартных репозиториях, как правило, не актуальная. В связи с тем, что очень важно вовремя обновлять это приложение по причинам, связанным с устранением уязвимостей безопасности, лучше устанавливать последнюю актуальную версию. PhpMyAdmin — это web-приложение на PHP, которое, в отличие от скомпилированных программ, не требует никакой конфигурации со стороны операционной системы — его просто необходимо поместить в каталог и предоставить web-серверу доступ к этому каталогу. Загрузите последнюю версию phpMyAdmin с официального сайта. Архив с приложением рекомендуется загружать в формате tar.gz, так как этот формат широко используется в Linux:

cd /tmp
wget https://files.phpmyadmin.net/phpMyAdmin/версия/phpMyAdmin-версия-all-languages.tar.gz -O phpMyAdmin.tar.gz

Обратите внимание, что при помощи флага -O мы сохраним загруженный архив под другим именем, т.е. под именем phpMyAdmin.tar.gz. Не забудьте, что имена файлов в Linux чувствительны к регистру. После загрузки архива распакуйте его во временную папку /tmp, в которую вы ранее перешли:

tar xpzf phpMyAdmin.tar.gz

В дальнейшем вы освоете более продвинутые методы архиватора tar, которые позволят вам с лёгкостью распаковывать архивы в нужные директории одной командой. Пока же мы просто познакомимся с этим архиватором и выполним текущую задачу пошагово. Ключи xpfz говорят о следующем:

  • x (extract, извлеки)
  • p (preserve, сохрани привелегии, или права доступа на файлы)
  • z (разархивируй GZIP)
  • f (создай директорию с файлами на диске)
  • phpMyAdmin.tar.gz — относительный путь к архиву, который необходимо распаковать.

Если вы хотите наблюдать статус выполнения команды во время работы архиватора, вы можете также добавить следующие ключи: v (verbouse) — подробно, vv — очень подробно, например:

tar xvvpzf phpMyAdmin

Зайдите в папку /tmp при помощи SFPT клиента и посмотрите структуру извлечённого каталога. Основные файлы могут находиться непосредственно в верхнем каталоге, либо они могут находиться в промежуточном каталоге. Необходимо переместить каталог (промежуточный) в каталог назначения: туда, где и будет находиться приложение phpMyAdmin. Сделать это можно при помощи команды mv (move):

mv phpMyAdmin/phpMyAdmin-версия-all-languages /usr/share/phpmyadmin

Перейдите в каталог /usr/share/phpmyadmin и посмотрите результат. Однако на этом установка phpMyAdmin ещё не закончена. Для работы этого приложения требуется создать конфигурационный файл /usr/share/phpmyadmin/config.inc.php. В стандартную комплектацию phpMyAdmin уже вложен образец конфигурационного файла /usr/share/phpmyadmin/config.sample.inc.php. Можно скопировать образец конфигурационного файла с помощью команды cp (copy):

cd /usr/share/phpmyadmin
cp confing.sample.inc.php config.inc.php

Первая команда перемещает вас в директорию /usr/share/phpmyadmin, вторая команда копирует файл, она оперирует в данном случае относительными путями, однако вы смело можете использовать пути абсолютные, если имеете в этом необходимость. Так как оба файла находятся в текущем каталоге, в указании абсолютных путей нет необходимости. После копирования не забудьте снова перейти в каталог временных файлов. Давайте его очистим с целью обучения при помощи команды rm (remove, удалить):

cd /tmp
rm -R *

Также можно применить метод удаления без перехода в каталог:

rm -R /tmp/*

В первом случае удаляются все файлы, находящиеся в текущем каталоге (!): используется относительный путь. Во втором случае удаляются все файлы, находящиеся в заданном каталоге: используется абсолютный путь. Символ «звёздочка» (*) означает любые символы в любом порядке и количестве (в том числе и их отсутствие). Обратите внимание на флаг -R, который задаёт рекурсивность — максимально возможную глубину удаляемых каталогов. Если вам необходимо не только удалить содержимое каталога, но и сам каталог, то в этом случае используется абсолютный путь без указания слэша (/) на конце:

rm -R /directory

Вернёмся к phpMyAdmin. После копирования конфигурационного файла откройте его и укажите значение параметра $cfg['blowfish_secret'] — это секретное слово для авторизации по cookie. С помощью него вы сможете принудительно разлогинить пользователей phpMyAdmin (если измените значение этого параметра). Задайте произвольный набор символов в качестве значения, для этой цели можно воспользоваться md5-генератором:

// Md5-хэш фразы "hello world!"
// Не используйте значение из этого примера
$cfg['blowfish_secret'] = 'fc3ff98e8c6a0d3087d515c0473f8677';

Можете также увеличить количество таблиц, отображаемых в сайдбаре, определив параметр $cfg['MaxNavigationItems'] целым положительным числом типа Integer. Если этого параметра нет в конфигурации, добавьте его в любое место:

$cfg['MaxNavigationItems'] = 500;

Установите MySQL/MySQLi расширение для PHP:

apt-get install php7.0-mysql

Наконец, создайте символическую ссылку на каталог, где установлен phpMyAdmin и поместите её в корневой каталог тестового хоста server.dev:

ln -s /usr/share/phpmyadmin /var/www/localhost/phpmyadmin

Расшифровка:

  • ln (link) — создай ссылку
  • -s (symbolic) — символическую
  • /usr/share/phpmyadmin (откуда) — источник
  • /var/www/localhost/phpmyadmin (куда) — имя ссылки

Символическая ссылка в Linux — это что-то вроде ярлыка в Windows, при переходе по символической ссылке ОС будет открывать файл или каталог, на которые данная ссылка установлена. Откройте SFTP клиентом корневой каталог сервера и посмотрите результат, попробуйте перейти по этой ссылке. Если попадаете туда, куда нужно, то всё прошло успешно, а это значит, что web-приложение phpMyAdmin будет открываться по адресу http://server.dev/phpmyadmin.

Последнее, что необходимо сделать для работы phpMyAdmin — смена владельца файлов. Если вы ещё не знаете систему привелегий в Linux, то вам обязательно следует ознакомиться с такими понятиями, как права на файлы, владельцы файлов, пользователи и группы пользователей. В связи с тем, что каталог /usr/share/phpmyadmin со всем его содержимым был создан от имени пользователя root, владельцем этих файлов является пользователь root. Вам необходимо разрешить серверу запись в каталоге, где установлен phpMyAdmin. Для этого можно назначить владельцем файлов пользователя, от имени которого исполняются файлы PHP. В нашем случае имя этого пользователя — www-data. Делается это с помощью команды chown (change owner, смени владельца). Таким образом рекурсивно -R сменится владелец файлов внутри каталога /usr/share/phpmyadmin включая сам каталог:

chown www-data:www-data -R /usr/share/phpmyadmin

Откройте phpMyAdmin и авторизуйтесь под root пользователем сервера SQL.