# phpMyAdmin (Русский)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Состояние перевода: На этой странице представлен перевод статьи phpMyAdmin. Дата последней синхронизации: 23 февраля 2020. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

Примечание: По умолчанию каждый, кто может получить доступ к веб-серверу Apache, может видеть страницу входа phpMyAdmin. Чтобы исправить это, отредактируйте `/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" на домашней странице.

Примечание: В этом примере предполагается, что вы используете стандартное имя пользователя pma в качестве `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

## Смотрите также

- Официальный веб-сайт

Category:

- Web admin interfaces (Русский)