Бесплатная миграция IT-инфраструктуры в облако

Установка и настройка phpMyAdmin: пошаговая инструкция

Миша Курушин
Миша Курушин
Технический писатель
06 мая 2024 г.
3407
11 минут чтения
Средний рейтинг статьи: 3.5

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

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

При этом phpMyAdmin реализует весь функционал SQL-запросов: просмотр, добавление, удаление и изменение баз данных, а также их таблиц, полей и индексов.

В этом руководстве мы рассмотрим процесс установки phpMyAdmin и всех его зависимостей на удаленный хост. В показанных примерах используется облачный сервер Timeweb Cloud под управлением Ubuntu 22.04.

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

  • База данных MySQL

  • Веб-сервер Nginx

  • Интерпретатор PHP

Обратите внимание, что в этом руководстве используется веб-сервер Nginx вместо привычного для PHP веб-сервера Apache. Поэтому общая связка инструментов, показанных в этой инструкции, выглядит следующим образом: Nginx + PHP + phpMyAdmin + MySQL. Таким образом, Nginx принимает пользовательские запросы и перенаправляет их на PHP через протокол FastCGI. Интерпретатор PHP в свою очередь обрабатывает скрипты phpMyAdmin, который «общается» с базой данных MySQL и управляет ей.

cloud

Этап 1. Подготовка системы

Конфигурация облачного сервера

Для создания облачного веб-сервера в Timeweb Cloud необходимо сперва авторизоваться в панели управления, после чего в левом меню выбрать «Облачные серверы».

На открывшейся странице нужно нажать на кнопку «Создать» (либо на кнопку «Добавить», если у вас уже есть существующие серверы), после чего вас перекинет на страницу конфигурации облачного сервера.

Image10

Самое главное — выбрать Ubuntu 22.04. Остальные параметры настраиваются по своему усмотрению. По завершению конфигурации жмем на кнопку «Заказать», после чего откроется страница управления облачным сервером.

Image4

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

Подключение к удаленному серверу выполняется через команду SSH, которая доступна во всех популярных операционных системах (в том числе и Windows):

ssh root@IP

Вместо IP нужно подставить адрес облачного хоста. Адрес сервера и root-пароль можно скопировать с основной странице управления облачным сервером в нижнем правом углу.

Image9

Например, в этой инструкции выполнялось SSH-подключение по следующему адресу:

ssh root@188.225.27.132

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

Обновление системы

Перед установкой необходимых компонентов лучше всего обновить список доступных репозиториев:

sudo apt update

Также имеет смысл обновить уже установленные в системе пакеты:

sudo apt upgrade

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

Этап 2. Установка MySQL

Сперва необходимо установить саму базу данных MySQL на облачный сервер:

sudo apt install mysql-server -y

Убедитесь, что служба MySQL запущена:

systemctl status mysql

Если это так, то среди консольного вывода будет такой статус:

Active: active (running)

Либо можно запросить версию MySQL:

mysql --version

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

mysql  Ver 8.0.36-0 ubuntu 0.22.04.1 for Linux on x86_64 ((Ubuntu))

Обратите внимание, что в этом руководстве используется MySQL версии 8.0.36.

Далее рекомендуется запустить специальный «скрипт безопасности», который помогает настроить MySQL:

sudo mysql_secure_installation

Теперь зайдем непосредственно в саму MySQL, чтобы установить пароль для пользователя root:

mysql

Сперва проверим список существующих пользователей:

SELECT User, Host FROM mysql.user;

В консоли появится лист с именами и хостами:

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)

Нас интересует пользователь root, поэтому выполняем для него следующую команду:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_pass_123';

При этом пароль my_pass_123 можно заменить на любой другой.

После этого выходим из MySQL:

exit

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

mysql -u root -p

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

Этап 3. Установка Nginx

В этом примере будет использоваться веб-сервер Nginx как альтернатива Apache. Его мы также устанавливаем через пакетный менеджер APT:

sudo apt install nginx -y

После установки рекомендуется проверить статус службы Nginx:

systemctl status nginx

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

Active: active (running)

Запросим версию Nginx:

nginx -v

В консоли появится следующий вывод:

nginx version: nginx/1.18.0 (Ubuntu)

Таким образом, в этой инструкции phpMyAdmin будет работать на сервере Nginx версии 1.18.0.

На данном этапе можно ввести в браузерною строку адрес вашего удаленного сервера и убедиться в том, что Nginx отвечает на пользовательские HTTP-запросы.

Например, адрес может быть таким:

http://188.225.27.132

После этого в браузере должна открыться страница со стандартным приветствием Nginx.

Image6

В дальнейшем вместо стандартного приветствия Nginx будет открывать корневую страницу phpMyAdmin по адресу /phpmyadmin.

Этап 4. Установка PHP

Для работы phpMyAdmin необходимо наличие в системе интерпретатора PHP.

Загружать его мы будем из репозитория независимого поставщика ПО, поэтому сперва необходимо добавить новый удаленный репозиторий в пакетный менеджер APT:

sudo add-apt-repository ppa:ondrej/php

После этого мы устанавливаем так называемый FastCGI Process Manager (FPM), а также дополнительный модуль для работы с MySQL:

sudo apt install php8.3-fpm php8.3-mysql -y

Для проверки корректности установки можно запросить версию PHP:

php -v

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

PHP 8.3.4 (cli) (built: Mar 16 2024 08:40:08) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.4, Copyright (c) Zend Technologies
   with Zend OPcache v8.3.4, Copyright (c), by Zend Technologies

Как можно заметить, в этом руководстве используется PHP версии 8.3.4.

Этап 5. Установка phpMyAdmin

Загрузка phpMyAdmin будет выполняться с официального сайта. На нем нужно выбрать последнюю версию программы в архиве .tar.gz, после чего скопировать загрузочную ссылку и использовать ее в команде wget:

wget -c https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-english.tar.gz

После этого в корневом каталоге появится архив, который нужно распаковать:

tar -xzvf phpMyAdmin-5.2.1-english.tar.gz

Как видно, мы будет использовать phpMyAdmin версии 5.2.1.

При этом сам архив можно удалить:

rm phpMyAdmin-5.2.1-english.tar.gz

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

sudo mv phpMyAdmin-5.2.1-english /usr/share/phpmyadmin

Осталось только создать symbolic link, связанную с веб-каталогом локального хоста:

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

Теперь можно перейти к настройке веб-сервера Nginx.

Этап 6. Конфигурация Nginx

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

Для этого сперва откроем его:

sudo nano /etc/nginx/sites-available/default

Первым делом найдем строку, определяющую параметр имени корневой страницы index. По умолчанию она выглядит так:

...
index index.html index.htm index.nginx-debian.html;

...

Чтобы Nginx мог обрабатывать файлы PHP, сюда необходимо добавить index.php так, чтобы итоговая строка приобрела следующий вид:

...
index index.php index.html index.htm index.nginx-debian.html;
...

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

Для этого найдите код обработчика корневого запроса, который по умолчанию выглядит примерно таким образом:

location / {
	# First attempt to serve request as file, then
	# as directory, then fall back to displaying a 404.
	try_files $uri $uri/ =404;
}

И вслед за ним добавьте код обработчика запросов на файлы PHP:

location ~ \.php$ {
	try_files $fastcgi_script_name =404;
	include fastcgi_params;
	fastcgi_pass unix:/run/php/php8.3-fpm.sock;
	fastcgi_index index.php;
	fastcgi_param DOCUMENT_ROOT $realpath_root;
	fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}

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

server {
	listen 80 default_server;
	listen [::]:80 default_server;

	root /var/www/html;

	index index.php index.html index.htm index.nginx-debian.html;

	server_name _;

	location / {
		try_files $uri $uri/ =404;
	}

	location ~ \.php$ {
		try_files $fastcgi_script_name =404;
		include fastcgi_params;
		fastcgi_pass unix:/run/php/php8.3-fpm.sock;
		fastcgi_index index.php;
		fastcgi_param DOCUMENT_ROOT $realpath_root;
		fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
	}
}

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

nginx -t

Если в конфигурационном файле нет никаких синтаксических ошибок, то в консоли появится соответствующий вывод:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Чтобы применить новые настройки, нужно перезапустить службу Nginx:

systemctl restart nginx

После перезапуска стоит снова проверить статус веб-сервера:

systemctl status nginx

В консоли должен появиться статус, сообщающий об активности службы:

Active: active (running)

Этап 7. Авторизация в phpMyAdmin

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

http://IP/phpmyadmin

Например, адрес может выглядеть так:

http://188.225.27.132/phpmyadmin

После этого откроется страница авторизации в phpMyAdmin, на которой в качестве логина вводится root, а в качестве пароля — ранее созданный пароль для MySQL.

Image7

Например, в этом руководстве в качестве примера паролем был my_pass_123.

После входа в phpMyAdmin откроется веб-интерфейс стандартной панели управления базами данных.

Image3

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

Облачная база данных Timeweb Cloud

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

Вместе с тем, Timeweb Cloud предлагает на выбор заранее установленные веб-интерфейсы управления базами данных:

  • Adminer

  • phpMyAdmin

Чтобы создать базу данных, нужно авторизоваться в панели управления Timeweb Cloud, после чего в левом боковом меню выбрать «Базы данных».

Далее вы окажетесь на странице описания функционала облачных БД, где нужно кликнуть по кнопке «Создать» (либо по кнопке «Добавить» в том случае, если у вас уже есть ранее созданные базы данных).

Image2

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

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

Image8

Для применения выбранных настроек необходимо нажать на кнопку «Заказать». После этого вас перекинет на главную страницу управления облачной базой данных.

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

Чтобы работать с базой данных через консольный терминал, необходимо перейти во вкладку «Подключение» горизонтального меню панели управления БД и скопировать команду подключения к удаленного базе данных через клиент MySQL.

Например, команда подключения может выглядеть так:

mysql -u gen_user -p'jB.-N1|e\_P.3?' -h 109.71.243.210 -P 3306 -D default_db
  • После флага -u указывается имя пользователя.

  • После флага -p указывается root-пароль в одинарных кавычках.

  • После флага -h указывается IP-адрес удаленного хоста.

  • После флага -P указывается порт хоста (например, для MySQL стандартный порт 3306, а для MongoDB — 27017).

  • После флага -D указывается имя базы данных.

Image5

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

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

Image1

Часть функций по управлению облачной БД вынесены в отдельные вкладки панели управления:

  • Создание, редактирование и удаление пользователей.

  • Создание и удаление баз данных.

  • Смена конфигурации базы данных.

  • Управление бэкапами.

  • Просмотр истории изменений.

Подготовили для вас выгодные тарифы на облачные серверы

Заключение

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

  • База данных MySQL

  • Веб-сервер Nginx

  • Интерпретатор PHP в формате FPM

При этом в собственных проектах вы можете расширить показанный в этой инструкции технологический стек до более привычной и распространенной связки Nginx + Apache + PHP.

Также в качестве альтернативы ручному развертыванию MySQL и phpMyAdmin было продемонстрировано создание уже настроенной и готовой к работе облачной базы данных на серверах Timeweb Cloud с предустановленными веб-интерфейсами управления БД, один из которых — phpMyAdmin.

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server
06 мая 2024 г.
3407
11 минут чтения
Средний рейтинг статьи: 3.5
Пока нет комментариев