Устанавливаем PhpMyAdmin в Debian 10

monitor_linux

Ставим 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 разработки, отладки и тестирования своих локальных проектов.

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

Удачи!

Про ПК
Добавить комментарий