Ставим Php MyAdmin — для управления базами данных через веб-интерфейс. У вас уже должен быть настроенный LAMP, как это сделать в Debian 10 рассказано в одной из прошлых статей.
Не буду рассусоливать, что к чему, если вы читаете эту статью, то понимаете, что к чему и зачем вам это все нужно.
Непосредственно сам процесс, приступим к установке PhpMyAdmin
Как всегда обновляемся
# apt update
Ставим необходимые пакеты
# apt install php-mbstring php-zip php-gd
На момент написания этой статьи Php MyAdmin не доступен в репозиториях Debian 10. Поэтому обратимся к разработчикам и там скачаем нужный нам пакет.
На сегодняшний день актуальная версия 4.9.1 ее будем скачивать. Я скачиваю версию для всех языков, если вас устраивает только английская замените all-languages на english
# wget https://files.phpmyadmin.net/phpMyAdmin/4.9.1/phpMyAdmin-4.9.1-all-languages.tar.gz
Распаковываем скаченное (если английская замените all-languages на english)
# tar xvf phpMyAdmin-4.9.1-all-languages.tar.gz
Теперь переместим распакованное в /usr/share/phpmyadmin
# sudo mv phpMyAdmin-4.9.1-all-languages/ /usr/share/phpmyadmin
Базовые настройки phpMyAdmin
Создаем каталог для временных файлов phpMyAdmin
# mkdir -p /var/lib/phpmyadmin/tmp
Зададим нужные права для каталога /var/lib/phpmyadmin
# chown -R www-data:www-data /var/lib/phpmyadmin
Создаем файл конфигурации, взяв за основу ранее созданный образец
# cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
Теперь откроем его для редактирования
# nano /usr/share/phpmyadmin/config.inc.php
Прокрутите файл до строки , которая начинается с $cfg[‘blowfish_secret’]:
В единичных кавычках поставите любую комбинацию из 32 символов — пароль для шифрования
Если менее 32 — защита будет слабее, более 32 ничего не даст.
Ниже в этом файле находим строку /* User used to manipulate with storage */
Уберите комментирование двух строк с логином и паролем — укажите свой пароль
Спускаемся далее по файлу до комментария /* Storage database and tables */ и убираем комментирование у каждой строки, получится так
Ну и в самом низу этого файла допишите такую строку строку
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
Теперь сохраните Ctrl+O и закройте файл Ctrl+X
Команда, чтобы использовать файл create_tables.sql для создания базы данных и таблиц конфигурации
# mariadb < /usr/share/phpmyadmin/sql/create_tables.sql
Создаем администратора pma
Откроем командную строку MariaDB
# mariadb
В командной строке выполните следующую команду, чтобы создать пользователя pma и предоставить ему соответствующие права. Обязательно измените пароль — он должен соответствовать паролю, который вы определили в файле config.inc.php:
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
Если не создали, то создайте обычного пользователя user со всеми правами, пароль password конечно свой
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Выходим командой exit
Настроим Apache для работы с PhpMyAdmin
Создаем файл phpmyadmin.conf в каталоге /etc/apache2/conf-available/
# nano /etc/apache2/conf-available/phpmyadmin.conf
Вставляем в него следующее содержимое
# phpMyAdmin default Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
<IfModule mod_php5.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
php_admin_value mbstring.func_overload 0
</IfModule>
<IfModule mod_php.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
php_admin_value mbstring.func_overload 0
</IfModule>
</Directory>
# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
</IfModule>
Require valid-user
</IfModule>
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Require all denied
</Directory>
Теперь сохраните его и закройте
Включаем этот файл
# sudo a2enconf phpmyadmin.conf
Перезагружаем Apache2
# sudo systemctl reload apache2
Теперь настало время проверить, перейдем в браузере по адресу
http://localhost/phpmyadmin
Для входа используйте логин и пароль MariaDB
Защита Php MyAdmin
Если вы настраиваете хостинг, сервер для общего пользования, то этот пункт нельзя пропускать.
Включите поддержку файлов .htaccess. Настройте тип авторизации, расположение файлов паролей и пользователей которым дан доступ.
Я же настраивал и использую связку LAMP для web разработки, отладки и тестирования своих локальных проектов.
Мне защита в данном случае ни к чему. Поэтому не буду заострять на этом внимание.
Удачи!