phpMyAdmin — это специальная утилита, написанная на PHP, которая реализует графический интерфейс для управления базами данных MySQL через браузер.
Помимо визуального отображения таблиц, phpMyAdmin упрощает менеджмент баз данных, позволяя формировать SQL-запросы через панель управления без непосредственного написания команд или какого-либо кода.
При этом phpMyAdmin реализует весь функционал SQL-запросов: просмотр, добавление, удаление и изменение баз данных, а также их таблиц, полей и индексов.
В этом руководстве мы рассмотрим процесс установки phpMyAdmin и всех его зависимостей на удаленный хост.
При этом технологический стек, в рамках которого будет работать phpMyAdmin, будет выглядеть так:
- База данных MySQL
- Веб-сервер Nginx
- Интерпретатор PHP
Обратите внимание, что в этом руководстве используется веб-сервер Nginx вместо привычного для PHP веб-сервера Apache. Поэтому общая связка инструментов, показанных в этой инструкции, выглядит следующим образом: Nginx + PHP + phpMyAdmin + MySQL. Таким образом, Nginx принимает пользовательские запросы и перенаправляет их на PHP через протокол FastCGI. Интерпретатор PHP в свою очередь обрабатывает скрипты phpMyAdmin, который «общается» с базой данных MySQL и управляет ей.
❯ Этап 1. Подготовка системы
Конфигурация облачного сервера
Для создания облачного веб-сервера в Timeweb Cloud необходимо сперва авторизоваться в панели управления, после чего в левом меню выбрать «Облачные серверы».
На открывшейся странице нужно нажать на кнопку «Создать» (либо на кнопку «Добавить», если у вас уже есть существующие серверы), после чего вас перекинет на страницу конфигурации облачного сервера.
Самое главное — выбрать Ubuntu 22.04. Остальные параметры настраиваются по своему усмотрению. По завершению конфигурации жмем на кнопку «Заказать», после чего откроется страница управления облачным сервером.
После создания сервера нужно подождать несколько минут, пока он запустится и станет доступен для удаленного доступа.
Подключение к удаленному серверу выполняется через команду SSH, которая доступна во всех популярных операционных системах (в том числе и Windows):
ssh root@IP
Вместо IP нужно подставить адрес облачного хоста. Адрес сервера и root-пароль можно скопировать с основной странице управления облачным сервером в нижнем правом углу.
Например, в этой инструкции выполнялось 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.
В дальнейшем вместо стандартного приветствия 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.
Например, в этом руководстве в качестве примера паролем был my_pass_123.
После входа в phpMyAdmin откроется веб-интерфейс стандартной панели управления базами данных.
Большая часть функций, выполняемая ранее через консольный терминал в виде SQL-запросов, теперь доступна через графический интерфейса phpMyAdmin в наглядном виде.
❯ Облачная база данных Timeweb Cloud
В качестве альтернативы самостоятельному развертыванию баз данных и инструментов управления Timeweb Cloud предоставляет уже настроенные и готовые к работе облачные базы данных MySQL, а также PostgreSQL, Redis, MongoDB и другие.
Вместе с тем, Timeweb Cloud предлагает на выбор заранее установленные веб-интерфейсы управления базами данных:
- Adminer
- phpMyAdmin
Чтобы создать базу данных, нужно авторизоваться в панели управления Timeweb Cloud, после чего в левом боковом меню выбрать «Базы данных».
Далее вы окажетесь на странице описания функционала облачных БД, где нужно кликнуть по кнопке «Создать» (либо по кнопке «Добавить» в том случае, если у вас уже есть ранее созданные базы данных).
Откроется страница конфигурации облачный базы данных, аналогичная странице конфигурации облачного веб-сервера, но с другими параметрами.
В нашем случае мы выбираем в качестве типа базы данных MySQL. Тем не менее, в своих проектах вы можете использовать любые другие базы данных.
Для применения выбранных настроек необходимо нажать на кнопку «Заказать». После этого вас перекинет на главную страницу управления облачной базой данных.
Первые несколько минут база данных будет конфигурировать и запускаться, после чего станет доступна для работы через веб-интерфейс или удаленного подключения.
Чтобы работать с базой данных через консольный терминал, необходимо перейти во вкладку «Подключение» горизонтального меню панели управления БД и скопировать команду подключения к удаленного базе данных через клиент 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 указывается имя базы данных.
Либо в верхнем левом углу можно нажать на кнопку «Веб-интерфейс» и выбрать одну из двух возможных утилит для управления базами данных.
После этого в новой вкладке откроется привычная страница авторизации, в которой нужно будет ввести данные для входа в базу данных.
Часть функций по управлению облачной БД вынесены в отдельные вкладки панели управления:
- Создание, редактирование и удаление пользователей.
- Создание и удаление баз данных.
- Смена конфигурации базы данных.
- Управление бэкапами.
- Просмотр истории изменений.
❯ Заключение
В этой инструкции была показана установка и конфигурация phpMyAdmin с предварительной ручной установкой всех необходимых зависимостей:
- База данных MySQL
- Веб-сервер Nginx
- Интерпретатор PHP в формате FPM
При этом в собственных проектах вы можете расширить показанный в этой инструкции технологический стек до более привычной и распространенной связки Nginx + Apache + PHP.
Также в качестве альтернативы ручному развертыванию MySQL и phpMyAdmin было продемонстрировано создание уже настроенной и готовой к работе облачной базы данных на серверах Timeweb Cloud с предустановленными веб-интерфейсами управления БД, один из которых — phpMyAdmin.
Читайте также:
- ➤ Деплой .NET приложений для самых маленьких
- ➤ Новые способы авторизации. Новые условия багхантинга. И новые места в рейтингах! Новости Timeweb Cloud в мае
- ➤ Бесплатный прокси к Docker Hub
- ➤ Разработка ядра – API для прошивки
- ➤ Тьюринг. Гений, опередивший время
Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале ↩
Комментарии (2)
Akina
24.06.2024 16:49Сперва необходимо установить саму базу данных MySQL на облачный сервер
Не базу данных (БД), а систему управления базами данных (СУБД).
Если это так, то среди консольного вывода будет такой статус
А если это НЕ так?
Hidden text
Кому вообще это нужно? у вас что, онлайн-справки нет? Этот материал должен размещаться именно там. А здесь имеет смысл рассматривать проблемы - что может пойти не так, по какой причине, и как это исправлять.
CrazyAlex25
Так же есть https://www.adminer.org/ который может работать с разными БД
Works with MySQL, MariaDB, PostgreSQL, SQLite, MS SQL, Oracle, Elasticsearch, MongoDB, SimpleDB (plugin), Firebird (plugin), ClickHouse (plugin)