Иногда требуется запустить phpmyadmin на виртуальном хосте. Базовая система, на которой будет развернут сервер Apache, сервер баз данных MariaDB и непосредственно phpmyadmin, это Ubuntu 24.04.
Установка необходимых пакетов
После установки Ubuntu 24.04 сделаем апгрейд системы и установим необходимые пакеты
sudo apt update && sudo apt upgrade -y
sudo apt install apache2 mariadb-server php php-mysql php-mbstring php-zip php-gd php-json php-curl -y
sudo systemctl enable --now apache2 mariadb
Базовая настройка MariaDB
Настройте MariaDB: sudo mysql_secure_installation для базовой безопасности.
sudo mysql_secure_installation
Установка и интеграция phpMyAdmin
Установим phpmyadmin
sudo apt install phpmyadmin -y
Отключим конфигурацию созданную по умолчанию
sudo a2disconf phpmyadmin
Создание виртуального хоста
Создадим файл конфигурации виртуального хоста
sudo nano /etc/apache2/sites-available/phpmyadmin.conf
<VirtualHost *:80>
ServerName phpmyadmin.somehost.ladm.lazyadmin.ru
ServerAdmin webmaster@localhost
DocumentRoot /usr/share/phpmyadmin/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/phpmyadmin>
Options Indexes SymLinksIfOwnerMatch FollowSymLinks
DirectoryIndex index.php
AllowOverride All
Require all granted
</Directory>
<Directory /usr/share/phpmyadmin>
Options Indexes SymLinksIfOwnerMatch FollowSymLinks
DirectoryIndex index.php
<IfModule mod_php7.c>
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/usr/share/doc/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/:/usr/share/javascript/
</IfModule>
# PHP 8+
<IfModule mod_php.c>
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/usr/share/doc/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/:/usr/share/javascript/
</IfModule>
AllowOverride All
Require all granted
</Directory>
<Directory /usr/share/phpmyadmin/templates>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
Require all denied
</Directory>
</VirtualHost>
Активируем добавленную конфигурацию и перезагрузим apache
sudo a2ensite phpmyadmin
sudo systemctl reload apache2
Проанализируем логи на предмет ошибок
tail -f /var/log/apache2/error.log
Если ошибок в логах нет и phpmyadmin нормально загружается в браузере, пропускаем следующий этап.
Если phpmyadmin на виртуальном хосте не запустился, нужно проверить /var/log/apache2/error.log на наличие ошибок. Может случится что без переназначения прав на папки bootstrap, jquery и phpmyadmin, там много символических ссылок, из-за чего apache может ругатся. Помогает установка прав пользователя от которого запущен apache на эти папки
sudo chown -R www-data:www-data /usr/share/phpmyadmin/
sudo chown -R www-data:www-data /usr/share/bootstrap-html/
sudo chown -R www-data:www-data /usr/share/javascript/
Используйте эти команды только если в логах явно видно ошибки доступа (Permission denied к файлам/каталогам). Не запускайте chown -R без понимания последствий.”
открываем в браузере
phpmyadmin.somehost.ladm.lazyadmin.ru
DNS сервер должен знать о существовании этого адреса, вносим соответствующие записи на сервере или прописываем в хостах
Если внутри сети используется DNS сервер, то нужно будет внести соответствующую A запись, иногда достаточно будет сделать CNAME
A запись
sudo samba-tool dns add 10.0.0.254 ladm.lazyadmin.ru phpmyadmin.somehost A [ip_address_somehost] -U Administrator
CNAME
sudo samba-tool dns add 10.0.0.254 ladm.lazyadmin.ru phpmyadmin.somehost CNAME somehost.ladm.lazyadmin.ru -U Administrator
Запись в файле hosts
[ip_address_somehost] phpmyadmin.somehost.ladm.lazyadmin.ru