понедельник, 30 июня 2008 г.

Установка phpMyAdmin для "чайников"

Авторы: Иван Шумилов, Виктор Волков

Данная статья описывает установку phpMyAdmin 2.8.1 на систему следующей конфигурации:
  • Apache 1.3.33
  • MySQL 4.0.26
  • PHP 4.3.11
  • OS Unix

1. Прежде чем начинать установку, убедитесь, что у Вас есть следующая информация, которую Вы можете получить у своего хостинг-провайдера:
  • Имя хоста (сервера), на котором размещен MySQL
  • Номер порта MySQL
  • Логин
  • Пароль
Также, полезным будет получение от хостера подтверждения о возможности установки phpMyAdmin, кроме этого, он может указать на возможные "подводные камни" при установке phpMyAdmin на конкретной хостинговой площадке.

2. Если Вы еще не скачали дистрибутив, сделать это можно на странице "Скачать phpMyAdmin"

3. После того как дистрибутив скачан на локальный компьютер, самое время создать директорию для phpMyAdmin, куда будет загружен дистрибутив. Название можно давать любое, мы назовем её `pma` (http://www.yourdomain.ru/pma/), проверьте, чтобы права на эту директорию были 755.
Те, кому небезразличен трафик, а также занимаемое дисковое пространство на сервере, могут почистить директорию `lang`, которая занимает львиную долю общего объема дистрибутива: в версии 2.8.1 - более 8 мегабайт, что составляет около 70% "веса" распакованного дистрибутива.
Чистите директорию осторожно, иначе может статься так, что останетесь без родного перевода. Для русскоязычных пользователей важны, прежде всего, файлы: russian-koi8-r.inc.php, russian-utf-8.inc.php, russian-windows-1251.inc.php, кроме них я бы рекомендовал оставить родные для phpMyAdmin языковые файлы: english-iso-8859-1.inc.php, english-iso-8859-15.inc.php, english-utf-8.inc.php. В результате таких манипуляций объем директории `lang` остается менее 500 Кб.

4. "Заливаем" распакованный дистрибутив на удаленный сервер - в созданную нами ранее директорию `pma`.

5. Теперь все готово к завершающей фазе инсталляции - созданию конфигурационного файла (config.inc.php), который используется phpMyAdmin для работы с базами данных, и, прежде всего, для подключения к MySQL-серверу. Создать конфиг можно двумя способами: с помощью скрипта установки или вручную. Рассмотрим оба способа.
Генерирование конфигурационного файла phpMyAdmin с помощью скрипта. Этот способ стал доступным совсем недавно - начиная с версии 2.8.0. Суть его заключается в задании параметров, необходимых для работы phpMyAdmin через веб-интерфейс с последующим сохранением конфигурационного файла на сервер.

а) создаем директорию `config`: http://www.yourdomain.ru/pma/config

б) делаем директорию `config` доступной для записи, чтобы разрешить скрипту в последствии записать туда созданный нами конфигурационный файл. Выставляем права 777


в) запускаем скрипт установки: http://www.yourdomain.ru/pma/scripts/setup.php

г) Выбираем самый первый блок `Servers` (Сервера) и нажимаем `Add` (Добавить).


Здесь следует немного оговориться: phpMyAdmin использует конфигурационный файл, для определения специфичных (уникальных) параметров для Вашей системы. Если параметр специально не задан в конфигурационном файле, то phpMyAdmin "берет" его из собственных настроек по-умолчанию, большая часть которых содержится в файле http://www.yourdomain.ru/pma/libraries/config.default.php. Поэтому, например, если номер порта MySQL 3306, то нет необходимости специально задавать его в конфиге, т.к. этот номер порта MySQL по-умолчанию.
В открывшемся окне заполняем следующие поля:
- Server hostname - имя хоста (сервера), на котором размещен MySQL
- Authentication type - cookie (наиболее надежный для безопасности тип аутентификации)
После того как заполнили эти два поля, жмем `Add` и игнорируем предупреждающую надпись `You didn't set phpMyAdmin database, so you can not use all phpMyAdmin features.`, которая сообщает о том, что не задали базу данных для phpMyAdmin (требуется для расширенных возможностей phpMyAdmin - записи комментариев к полям, информации о связях таблиц, генерирования pdf-схем)


Далее в блоке `Configuration` жмем `Save`, получаем подтверждение того, что файл сохранен - "File Saved"

д) Перемещаем созданный нами config.inc.php из директории `config` в главную директорию (`pma`). После этого необходимо удалить директорию `config`, иначе phpMyAdmin корректно работать не будет

е) Конфигурационный файл создан. Проверяем, чтобы права на конфиг были 644, для предотвращения записи в файл сторонними лицами.

Создание конфигурационного файла phpMyAdmin вручную. Это старый способ создания конфигурационного файла.

а) копируем в текстовый редактор следующие строки:
$i++;
$cfg['Servers'][$i]['host'] = 'Имя хоста (сервера) MySQL';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['blowfish_secret'] = 'любая фраза';
?>

б) сохраняем этот файл как config.inc.php и копируем его в директорию `pma`

в) проверяем, чтобы права на конфигурационный файл были 644

Первый метод предпочтителен, если планируется расширенная настройка phpMyAdmin, характеризующаяся заданием специфичных значений для многих переменных. Для базовой установки гораздо привлекательнее старый метод создания конфигурационного файла вручную.

6. Запускаем в браузере phpMyAdmin: http://www.yourdomain.ru/pma/. Должно появиться приветствие и приглашение к авторизации. Если все сделано правильно и введенные логин и пароль верны, то запустится главное окно phpMyAdmin для управления базами данных.

7. Завершающим, необязательным, штрихом установки phpMyAdmin является создание служебной базы данных, содержащей таблицы, которые необходимы для расширенных возможностей phpMyAdmin. Если Вы не собираетесь пользоваться закладками, комментариями, вести SQL-историю, генерировать PDF-схемы баз данных - тогда создание служебной базы данных необязательно.

Если Вы хотите пользоваться расширенными опциями phpMyAdmin, тогда необходимо создать служебную базу 'phpmyadmin'. Для этого достаточно импортировать дамп, который находится в директории scripts/. Если у вас установлен MySQL сервер 4.1.2 и выше - файл create_tables_mysql_4_1_2+.sql. Если у Вас установлена версия MySQL сервера версии меньше 4.1.2, используйте вместо вышеуказанного файла create_tables.sql.

Если у вас уже создана инфраструктура таблиц, и вы обновляете MySQL до версии 4.1.2 или выше, используйте upgrade_tables_mysql_4_1_2+.sql.

После импорта create_tables.sql, необходимо создать специального пользователя, наделенного соответствующими правами. Если Вы работаете не под рутом (подключаетесь к MySQL-серверу не как root), тогда вы должны подключиться к базе как root и задать пользователю pma права на работу с базой данных phpmyadmin, для чего необходимо проделать следующее:

Создайте пользователя с именем "pma" и наделите его соответствующими правами, для чего нажмите "Privileges" ("Привилегии"), на открывшейся странице нажмите ссылку "Add a new User" ("Добавить нового пользователя"), в разделе "Login Information" ("Информация учетной записи") заполните поля следующим образом:

User name (Имя пользователя): pma
Host (Хост): localhost
Password (Пароль): придумайте пароль


Нажмите кнопку "Go" (OK).

На открывшейся странице, в разделе "Database-specific privileges" ("Привилегии уровня базы данных") из ниспадающего меню "Add privileges on the following database:" ("Добавить привилегии на следующую базу") выберите "phpmyadmin". Откроется следующая страница, где в разделе "Database-specific privileges" ("Привилегии уровня базы данных"), в блоке "Data" ("Данные"), поставьте галочки рядом с опциями: SELECT, INSERT, UPDATE, DELETE и нажмите "Go" ("OK").

Если же в качестве 'controluser' Вы указали рут (root), тогда права задавать не нужно - они у него уже есть.

После того, как пользователь с необходимыми правами на базу данных `phpmyadmin` создан необходимо внести коррективы (задать названия таблиц, логин и пароль для ранее созданного пользователя 'controluser') в файле config.inc.php, задав значения для следующих директив:
$cfg['Servers'][$i]['controluser'] - имя созданного пользователя для доступа к расширенным таблицам
$cfg['Servers'][$i]['controlpass'] - пароль пользователя
$cfg['Servers'][$i]['pmadb'] - название служебной базы данных
$cfg['Servers'][$i]['bookmarktable'] - название таблицы, содержащей информацию для закладок
$cfg['Servers'][$i]['relation'] - название таблицы, содержащей информацию о связях таблиц
$cfg['Servers'][$i]['table_info'] - название таблицы, содержащей информацию о таблицах пользовательских баз данных
$cfg['Servers'][$i]['table_coords'] - название таблицы, содержащей информацию для генерирования PDF-схем
$cfg['Servers'][$i]['pdf_pages'] - название таблицы, содержащей информацию для генерирования PDF-схем
$cfg['Servers'][$i]['column_info'] - название таблицы, содержащей информацию о комментариях к столбцам таблиц
$cfg['Servers'][$i]['history'] - название таблицы, содержащей SQL-историю

Либо, согласиться с предлагаемыми по умолчанию названиями таблиц, скопировав и добавив в конфигурационный файл буквально следующие строки:

3 комментария:

Евгений Медведев комментирует...

Недавно в дебиане вновь ставил phpmyadmin:
1. apt-get install phpmyadmin
2. Можно заходить в админку через браузер http://IP_адрес/phpmyadmin
3. Логин и пароль для входа - те же, что и для пользователя root в mysql.

Евгений Медведев комментирует...

Забыл указать что нуно сделать еще пункт 1.1:
ln -s /usr/share/phpmyadmin /var/www

Евгений Медведев комментирует...

Если на экране с логином и паролем внизу написано:

Невозможно загрузить расширение mcrypt! Проверьте настройки PHP.

Нужно всего то заинсталить недостающий пакет:

apt-get install php5-mcrypt

и рестартнуть апач:

apache2ctl restart