phpMyAdmin (Русский)
phpMyAdmin — веб-инструмент для управления базами данных MySQL с помощью фронтенда на Apache/PHP.
Установка
Установите пакет phpmyadmin.
Запуск
PHP
Убедитесь, что mysql-расширения PHP были включены.
При необходимости можно также включить extension=bz2
и extension=zip
для поддержки сжатия.
open_basedir
, обязательно включите /usr/share/webapps
и /etc/webapps
в open_basedir
в файле /etc/php/php.ini
. Смотрите PHP#Configuration.Apache
Настройте Apache для использования PHP, как описано в разделе Apache HTTP Server (Русский)#PHP.
Создайте файл конфигурации Apache:
/etc/httpd/conf/extra/phpmyadmin.conf
Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin" <Directory "/usr/share/webapps/phpMyAdmin"> DirectoryIndex index.php AllowOverride All Options FollowSymlinks Require all granted </Directory>
И включите его в /etc/httpd/conf/httpd.conf
:
# phpMyAdmin configuration Include conf/extra/phpmyadmin.conf
/etc/httpd/conf/extra/phpmyadmin.conf
как вам нужно. Например, если вы хотите получить доступ к phpMyAdmin только с одного компьютера, замените Require all granted
на Require local
. Обратите внимание, что это действие запретит подключение к PhpMyAdmin с удаленного компьютера. Если вы хотите получить безопасный доступ к PhpMyAdmin на удаленном сервере, вы можете настроить Шифрованный туннель SOCKS.После внесения изменений в конфигурационный файл Apache, перезапустите службу httpd.service
.
Lighttpd
Убедитесь, что Lighttpd может обслуживать PHP-файлы и включён mod_alias
.
Добавьте в конфигурацию следующее альтернативное имя для PhpMyAdmin:
alias.url = ( "/phpmyadmin" => "/usr/share/webapps/phpMyAdmin/")
Nginx
Настройте FastCGI и используйте серверные блоки, чтобы упростить управление.
Для более лёгкого доступа к phpMyAdmin можно создать поддомен, например, https://pma.domain.tld
:
/etc/nginx/sites-available/pma.domain.tld
server { server_name pma.domain.tld; ; listen 80; # also listen on http ; listen [::]:80; listen 443 ssl http2; listen [::]:443 ssl http2; index index.php; access_log /var/log/nginx/pma.access.log; error_log /var/log/nginx/pma.error.log; # Allows limiting access to certain client addresses. ; allow 192.168.1.0/24; ; allow my-ip; ; deny all; root /usr/share/webapps/phpMyAdmin; location / { try_files $uri $uri/ =404; } error_page 404 /index.php; location ~ \.php$ { try_files $uri $document_root$fastcgi_script_name =404; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param HTTP_PROXY ""; fastcgi_param HTTPS on; fastcgi_request_buffering off; } }
Или по подкаталогу, например, https://domain.tld/phpMyAdmin
:
/etc/nginx/sites-available/domain.tld
server { server_name domain.tld; listen 443 ssl http2; listen [::]:443 ssl http2; index index.php; access_log /var/log/nginx/domain.tld.access.log; error_log /var/log/nginx/domain.tld.error.log; root /srv/http/domain.tld; location / { try_files $uri $uri/ =404; } location /phpMyAdmin { root /usr/share/webapps/phpMyAdmin; } # Deny static files location ~ ^/phpMyAdmin/(README|LICENSE|ChangeLog|DCO)$ { deny all; } # Deny .md files location ~ ^/phpMyAdmin/(.+\.md)$ { deny all; } # Deny setup directories location ~ ^/phpMyAdmin/(doc|sql|setup)/ { deny all; } #FastCGI config for phpMyAdmin location ~ /phpMyAdmin/(.+\.php)$ { try_files $uri $document_root$fastcgi_script_name =404; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param HTTP_PROXY ""; fastcgi_param HTTPS on; fastcgi_request_buffering off; } }
Настройка
Главный файл конфигурации находится в /usr/share/webapps/phpMyAdmin/config.inc.php
.
Определение удаленного сервера MySQL
Если MySQL-сервер находится на удалённом хосте, добавьте следующую строку в файл конфигурации:
$cfg['Servers'][$i]['host'] = 'example.com';
Использование скрипта установки
Чтобы разрешить использование сценария установки phpMyAdmin (например, http://localhost/phpmyadmin/setup), убедитесь, что /usr/share/webapps/phpMyAdmin
доступен для записи пользователю http
:
# mkdir /usr/share/webapps/phpMyAdmin/config # chown http:http /usr/share/webapps/phpMyAdmin/config # chmod 750 /usr/share/webapps/phpMyAdmin/config
Добавление парольной фразы blowfish_secret
Требуется ввести уникальную строку длиной 32 символа, чтобы полноценно использовать алгоритм blowfish, используемый phpMyAdmin, что исключает сообщение об ошибке "ERROR: The configuration file now needs a secret passphrase (blowfish_secret)":
/usr/share/webapps/phpMyAdmin/config.inc.php
$cfg['blowfish_secret'] = '...';
Включение хранилища настроек
Дополнительные параметры, такие как связывание таблиц, отслеживание изменений, создание PDF-файлов и запросы закладок, по умолчанию отключены, что приводит к отображению сообщения "The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated" на домашней странице.
controluser
и pmapass в качестве controlpass
.В /usr/share/webapps/phpMyAdmin/config.inc.php
, раскомментируйте (удалите символы "//") и при необходимости измените их на нужные учетные данные:
/usr/share/webapps/phpMyAdmin/config.inc.php
/* User used to manipulate with storage */ // $cfg['Servers'][$i]['controlhost'] = 'my-host'; // $cfg['Servers'][$i]['controlport'] = '3306'; $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = 'pmapass'; /* Storage database and tables */ $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; $cfg['Servers'][$i]['relation'] = 'pma__relation'; $cfg['Servers'][$i]['table_info'] = 'pma__table_info'; $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords'; $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages'; $cfg['Servers'][$i]['column_info'] = 'pma__column_info'; $cfg['Servers'][$i]['history'] = 'pma__history'; $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs'; $cfg['Servers'][$i]['tracking'] = 'pma__tracking'; $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; $cfg['Servers'][$i]['recent'] = 'pma__recent'; $cfg['Servers'][$i]['favorite'] = 'pma__favorite'; $cfg['Servers'][$i]['users'] = 'pma__users'; $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups'; $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches'; $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns'; $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings'; $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
Настройка базы данных
Для создания необходимых таблиц доступны два варианта:
- Импортируйте
/usr/share/webapps/phpMyAdmin/sql/create_tables.sql
, используя PhpMyAdmin. - Выполните команду
mysql -u root -p < /usr/share/webapps/phpMyAdmin/sql/create_tables.sql
в терминале.
Настройка пользователя базы данных
Чтобы применить необходимые разрешения для controluser
, выполните следующий запрос:
pma
и pmapass
на значения, заданные в config.inc.php
. Если вы настраиваете это для удалённой базы данных, вы также должны изменить localhost
на соответствующий хост.GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass'; GRANT SELECT ( Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv ) ON mysql.user TO 'pma'@'localhost'; GRANT SELECT ON mysql.db TO 'pma'@'localhost'; GRANT SELECT ON mysql.host TO 'pma'@'localhost'; GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv) ON mysql.tables_priv TO 'pma'@'localhost';
Чтобы использовать функции закладок и отношений, установите следующие разрешения:
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost';
Повторно войдите в систему, чтобы убедиться, что новые функции активированы.
Включение кеширования шаблонов
Добавьте следующую строку в /usr/share/webapps/phpMyAdmin/config.inc.php
:
$cfg['TempDir'] = '/tmp/phpmyadmin';
Удаление каталога конфигурации
Удалите временный каталог конфигурации после завершения настройки. Удаление каталога также устранит предупреждение из веб-интерфейса:
# rm -r /usr/share/webapps/phpMyAdmin/config