phpMyAdmin (Русский) - ArchWiki

# phpMyAdmin (Русский)

From ArchWiki
Jump to navigation Jump to search

Состояние перевода: На этой странице представлен перевод статьи 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 (Русский)