- Установка phpMyAdmin 3.5.0
- Установка и настройка phpMyAdmin
- Устранение ошибок и настройка дополнительных возможностей
- Настраиваем дополнительные возможности phpMyAdmin.
- Убираем авторизацию
- Установка phpMyAdmin
- Быстрая установка
- Linked-tables infrastructure (Инфраструктура связанных таблиц)
- Обновление старой версии
- Использование режимов аутентификации
Установка phpMyAdmin 3.5.0
Статья описывает процесс установки и первоначальной настройки на локальном компьютере, работающим под операционной системой Windows XP, прекрасно зарекомендовавшей себя связки программ, используемых при создании, как крупных, так и средних веб-проектов: Apache, MySQL, PHP и phpMyAdmin.
Вместо тестирования нашего хозяйства, предлагаю установить скрипт phpMyAdmin для управления базой данных MySQL. Если он будет работать, значит мы все сделали правильно и можем собой гордиться. Ну а если работать не будет, значит во всем виновато трудное детство и недостаток витаминов, на чем и порешим. 🙂
Остановите сервис Apache выполнив в командной строке «C:\Apache2\bin\httpd.exe -k stop», либо с помощью пакетного файла «stop-webserver.bat». Распакуйте архив в каталог «C:\apache\localhost\www\». Появившуюся папку, для большего удобства, желательно переименовать в «phpmyadmin». Далее, в каталоге «C:\apache\localhost\www\phpmyadmin» создайте файл «config.inc.php» следующего содержания (не забудьте вписать пароль пользователя «root», который вы создавали при установке MySQL):
Обратите внимание (!) , что при подключении мы указываем phpMyAdmin, использовать расширение «mysqli», так как установленный нами MySQL 5, и произведенные выше настройки PHP 5, позволяют полноценно работать с функциями данного расширения.
Далее откройте многострадальный httpd.conf и добавьте в блок начинающийся строкой:
Следующую строку:
Alias /pma «C:/apache/localhost/www/phpmyadmin»
Теперь запустите сервисы с помощью пакетного файла start-webserver.bat и введите в адресной строке браузера «localhost/phpmyadmin». Вы увидите основное окно скрипта phpMyAdmin для управления базами данных MySQL. Благодаря добавленной нами выше строке в конфигурационный файл Apache (так называемый алиас), мы также можем попасть в phpMyAdmin из любого хоста, для чего понадобится установить виртуальный хост и ввести в адресной строке браузера адрес вида: «имя хоста»/pma. Например: http://www.test.ru/pma.
Далее мы воспользуемся возможностью установить расширение функциональности phpMyAdmin, позволяющее работать с закладками, историями вводимых команд, дизайнером связанных таблиц и некоторыми другими дополнительными функциями.
Для установки расширения сперва необходимо создать базу данных «phpmyadmin» и импортировать в нее специально предназначенные таблицы, для чего выберите на главной странице ссылку «Import» («Импорт»), на открывшейся странице, в разделе «File to import» («Импортируемый файл») нажмите кнопку «Browse. » («Обзор. «), выберите файл «create_tables.sql», находящийся в каталоге «examples», и нажмите кнопку «Go» («OK»).
Следующим шагом необходимо создать специального пользователя с именем «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»).
И последнее что надо сделать – это вновь открыть конфигурационный файл phpMyAdmin «config.inc.php» и добавить несколько новых директив. Все содержимое конфигурационного файла должно будет выглядеть примерно так:
Теперь у вас будет возможность воспользоваться всеми дополнительными функциями скрипта phpMyAdmin.
Вот и всё. Полная установка и настройка скрипта phpMyAdmin – завершена, как и всего комплекса веб-разработчика в целом. Примите мои поздравления. И заметьте — никто не умер. 🙂
Установка и настройка phpMyAdmin
К этому моменту у вас должны быть установлены и настроены связка Apache + PHP и сервер MySQL. Ели это еще не сделано, то обратитесь к предыдущим статьям Установка сервера Apache, Установка и настройка PHP и Установка и настройка сервера баз данных (MySQL), либо воспользуйтесь другими источниками для установки данного ПО.
Скачать установочный пакет можно с официального сайта, или с данного ресурса по ссылке, расположенной ниже:
В рабочей папке вашего сервера htdocs создайте папку phpmyadmin и скопируйте туда содержимое скачанного архива.
Зайдите в директорию phpmyadmin, найдите файл config.sample.inc.php и переименуйте его в config.inc.php, откройте переименованный файл в блокноте для редактирования.
Отыщите строку $cfg[‘blowfish_secret’] = ‘a8b7c6d’; и измените значение в кавычках на произвольную комбинацию цифр и букв латинского алфавита длиной не менее 10 (десяти) символов. Сохраните изменения.
В адресной строке браузера наберите http://localhost/phpmyadmin, появится следующее окно:
В поле пользователь введите root, в поле пароль — тот пароль, который был указан во время установки сервера MySQL. Нажмите кнопку Ok. Будет осуществлен вход в базы данных SQL.
Устранение ошибок и настройка дополнительных возможностей
Если вы при установке и настройке локального сервера в точности следовали инструкциям, которые описаны на этом ресурсе и использовали дистрибутивы, которые предоставлены здесь для скачивания, то при первом входе в phpMyAdmin у вас появятся следующие ошибки и предупреждения:
Устраним ошибку, связанную с библиотекой mbstring. Откройте в блокноте файл php.ini (у меня он расположен в с:\windows\php.ini), отыщите строку ;extension=php_mbstring.dll и разкомментируйте ее (удалите точку с запятой перед строкой). Перезагрузите Apache. Обновите окно браузера с phpMyAdmin. Сообщение об ошибке исчезнет.
Настраиваем дополнительные возможности phpMyAdmin.
Кликните по заголовку, что бы открыть/закрыть подробное описание процесса
Нам потребуется создать новую базу данных — щелкаем по вкладке «Базы данных». В текстовом поле подраздела «Создать базу данных» вводим phpmyadmin, нажимаем кнопку «Создать».
Создадим нового пользователя — щелкаем по вкладке «Пользователи».
На данный момент у нас создан единственный пользователь с именем root. Кликаем по ссылке «Добавить пользователя»,
в открывшемся всплывающем окне, в разделе «Информация учетной записи» в текстовое поле «Имя пользователя:» вводим «pma». В текстовое поле «Хост:» вводим «localhost». В поле «Пароль:» вводим пароль (любой, который придет вам в голову). В поле «Подтверждение:» подтверждаем введенный выше пароль.
Скролируем окно до раздела «Глобальные привилегии», жмем на ссылку «Отметить все».
Кликаем по кнопке «Добавить пользователя».
Новый пользователь с именем pma будет создан.
Теперь, в созданную базу нужно импортировать данные. В левой колонке выбираем phpmyadmin (кликаем по ней мышью).
В верхнем меню щелкаем по вкладке Импорт.
В подразделе Импортируемый файл: нажимаем кнопку обзор.
В открывшемся контекстном меню выбираем файл create_tables.sql, который находится в папке examples, лежащей внутри корневой директории phpMyAdmin (в моем случае полный путь выглядит так: c:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\phpmyadmin\examples\create_tables.sql).
В самом низу страницы находим и жмем кнопку Ok. База импортирована.
Внесем изменения в конфигурационный файл.
Открываем в блокноте файл config.inc.php. Ищем строку $cfg[‘Servers’][$i][‘controlhost’] = »;, разкомментируем ее (удаляем двойной слеш), в кавычки вписываем localhost (строка примет вид $cfg[‘Servers’][$i][‘controlhost’] = ‘localhost’;).
Находим и разкомментируем строку $cfg[‘Servers’][$i][‘controlpass’] = ‘pmapass’;, в кавычках меняем пароль, на тот, который назначался при создании пользователя pma.
Находим и разкомментируем следующие строки:
$cfg[‘Servers’][$i][‘controluser’] = ‘pma’;
$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][‘tracking’] = ‘pma_tracking’;
$cfg[‘Servers’][$i][‘designer_coords’] = ‘pma_designer_coords’;
$cfg[‘Servers’][$i][‘userconfig’] = ‘pma_userconfig’;
$cfg[‘Servers’][$i][‘recent’] = ‘pma_recent’;
$cfg[‘Servers’][$i][‘table_uiprefs’] = ‘pma_table_uiprefs’;
Сохраняем изменения в файле, выходим и снова заходим в phpMyAdmin. Предупреждение исчезло.
Как альтернативный вариант (если очень не хочется копаться в коде) — заменяем все содержимое файла config.inc.php на код, приведенный ниже
Не забываем вписать в строке $cfg[‘Servers’][$i][‘controlpass’] = ‘пароль для пользователя pma’; в кавычках пароль, который был задан для пользователя pma и в строке $cfg[‘blowfish_secret’] = ‘a8b7c6d’; увеличить надпись в кавычках минимум до 10 символов
Убираем авторизацию
Если надоело каждый раз при обращении к базе авторизоваться, то в файл config.inc.php потребуется внести следующие изменения:
Находим строку $cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’; и меняем параметр cookie на config
Ниже прописываем еще две строки:
$cfg[‘Servers’][$i][‘user’] = ‘root’;
$cfg[‘Servers’][$i][‘password’] = ‘пароль для пользователя root’;
Не забываем вписать в кавычках пароль для пользователя root в строке $cfg[‘Servers’][$i][‘password’] = ‘пароль для пользователя root’;
Теперь phpMyAdmin не будет запрашивать пароль для входа, но имейте ввиду, что это имеет смысл делать только на локальной машине, где вы являетесь единственным пользователем.
Работы по установке и общей настройке сервера на локальной машине полностью завершены. Конечно, в процессе работы может понадобится до настроить что то еще, но это уже зависит от конкретных выполняемых задач.
Установка phpMyAdmin
Внимание! phpMyAdmin не предоставляет собственных методов обеспечения безопасности MySQL-сервера. Предоставление привилегий в базе данных MySQL — прерогатива системного администратора. Страница phpMyAdmin’s «Privileges» может быть использована именно для этого.
Предупреждение для пользователей Mac: если у вас установлена версия MacOS до OS X, StuffIt разархивируйте с помощью Mac-архиваторов. Пересохраните с помощью BBEdit в стиле Unix ВСЕ скрипты phpMyAdmin перед копированием их на сервер, т.к. PHP по-видимому не любит Mac-символы переноса строки («\r»)
Быстрая установка
1. Распакуйте дистрибутив в корневую директорию вашего веб-сервера (убедитесь, что поддиректории распакованы тоже): tar -xzvf phpMyAdmin_x.x.x.tar.gz. Если Вы не имеете прямого доступа к корню вашего веб-пространства, распакуйте файлы в директорию на локальной машине и, после 3-го шага, скопируйте директорию на веб-сервер, например, через ftp.
2. Убедитесь, что все скрипты имеют соответствующего владельца (если PHP запущен в безопасном режиме, наличие нескольких скриптов, принадлежащих разным владельцам, вызовет проблему в работе). Смотри FAQ 4.2 и FAQ 1.26.
3. Теперь Вы должны создать конфигурационный файл (config.inc.php). Создание конфигурационного файла — необходимое условие прежде всего для запуска phpMyAdmin, а также необходимо для задания некоторых возможностей. Эта задача может быть выполнена двумя разными способами. Традиционно, пользователи могут вручную отредактировать копию файла config.inc.php. Кроме этого, пользователи, предпочитающие графическую инсталляцию, могут воспользоваться мастером установки (скриптом инсталляции).
- Для того, чтобы вручную создать конфигурационный файл, достаточно простейшего текстового редактора, с помощью которого нужно создать файл config.inc.php. Для упрощения задачи, Вы можете скопировать в текстовый редактор содержимое файла config.sample.inc.php — образца рабочей конфигурации, содержащей минимальное количество конфигурационных переменных.
Созданный файл необходимо поместить в главную директорию phpMyAdmin (ту, которая содержит index.php). phpMyAdmin сперва загружает libraries/config.default.php, а затем подменяет значения прописанных в нем переменных теми, что находит в config.inc.php. Если значение по умолчанию (тех переменных, что определены в libraries/config.default.php) Вас устраивает, тогда нет необходимости включать его в config.inc.php. Для запуска phpMyAdmin вам понадобятся как минимум несколько директив, простейшая конфигурация может выглядеть так:
Или, если вы не хотите вводить каждый раз логин/пароль (данная конфигурация не рекомендуется из соображений безопасности), конфигурационный файл может выглядеть так:
Для более полного ознакомления с функциями и описаниями значений всех конфигурационных переменных читайте раздел документации «Конфигурирование».
Вместо ручного редактирования файла config.inc.php, Вы можете использовать скрипт установки. Прежде всего, вам необходимо вручную создать в главной директории phpMyAdmin папку ‘config’. Это — мера безопасности. При работе под ОС Linux/Unix Вы можете использовать следующие команды:
cd phpMyAdmin
mkdir config # создает директорию для хранения
chmod o+rw config # дает всем пользователям права на запись в неё
Для редактирования уже существующего конфигурационного файла, можно воспользоваться следующими командами:
cp config.inc.php config/ # копирует текущую конфигурацию для редактирования
chmod o+w config/config.inc.php # дает всем пользователям права на запись в неё
На других платформах, просто создайте директорию и убедитесь, что Ваш веб-сервер имеет права на чтение и запись в неё. FAQ 1.26 может помочь в этом случае.
Затем, откройте в браузере scripts/setup.php. Помните, что изменения не будут сохранены на диск до тех пор, пока не будет нажата кнопка «Save» в блоке «Configuration». Если все хорошо, то скрипт сохранит новый config.inc.php в директорию config/, но если веб-сервер не имеет необходимых прав, Вы можете увидеть сообщение об ошибке «Cannot load or save configuration». В таком случае, убедитесь, что директория config/ создана и имеет необходимые права, либо воспользуйтесь ссылкой «Download» для сохранения конфигурационного файла на локальный диск и последующей закачки (например, через FTP) на сервер.
Как только файл был сохранен, необходимо переместить его из директории config/ в главную директорию phpMyAdmin и в целях безопасности сбросить права на него:
mv config/config.inc.php . # перемещает файл в текущую директорию
chmod o-rw config.inc.php # отменяет права на чтение и запись для всех остальных пользователей
Теперь файл готов к использованию. Вы можете просмотреть и отредактировать конфигурационный файл в текстовом редакторе, если потребуется установка некоторых расширенных опций, настройка которых не предусмотрена скриптом установки.
4. Если Вы собираетесь использовать «config» аутентификацию (auth_type), необходимо защитить директорию в которую был установлен phpMyAdmin от несанкционированного доступа, потому что данный режим позволяет любому пользователю получить доступ к phpMyAdmin без предварительного ввода логина/пароля. Рекомендуются альтернативные методы аутентификации, например, HTTP-AUTH (с помощью .htaccess файла), либо использованием одного из двух других методов аутентификации: cookie или http. См. подраздел FAQ «Мультипользовательская установка» для дополнительной информации, особенно обратите внимание на FAQ 4.4.
5. Откройте главную директорию phpMyAdmin в вашем браузере. Должно появиться окно приветствия phpMyAdmin и Ваши базы данных, или окно ввода логина, в случае использования режима HTTP- или cookie-аутентификации. 6. Вы должны запретить доступ к субдиректории ./libraries средствами вашего веб-сервера. В случае использования веб-сервера Apache для защиты директории Вы можете использовать файл .htaccess. При использовании других веб-серверов вы должны запретить доступ к директории ./libraries самостоятельно. Подобная конфигурирование — превентивная мера на случай обнаружения уязвимостей: возможного раскрытия пути (path exposure) и межсайтового выполнения сценариев (Cross-site Scripting, XSS).
Linked-tables infrastructure (Инфраструктура связанных таблиц)
Для использования многих опций (закладок, комментариев, SQL-истории, PDF-схем, преобразования содержимого полей, и т.д.) необходимо создать набор специальных таблиц. Эти таблицы могут находиться как в Вашей базе данных, так и в центральной базе при многопользовательской системе (в этом случае данная БД может быть доступна только для пользователя controluser, соответственно, другие пользователи не имеют прав на неё).
Зайдите в директорию scripts/ , здесь вы найдете файл create_tables.sql . (Если используете Windows сервер, обратите особое внимание на FAQ 1.24).
Если у Вас установлена версия MySQL сервера 4.1.2 или более позднее, используйте вместо вышеуказанного файла create_tables_mysql_4_1_2+.sql , для новой инсталляции.
Если у вас уже есть готовая инфраструктура и вы обновляете MySQL до версии 4.1.2 или выше, используйте upgrade_tables_mysql_4_1_2+.sql .
Вы можете использовать phpMyAdmin для создания баз данных и таблиц, для этого необходимо обладать администраторскими привилегиями на создание баз данных и таблиц, в связи с чем скрипту может понадобиться небольшая настройка (указание названия базы данных).
После импорта create_tables.sql , Вы должны определить названия таблиц в файле config.inc.php , с помощью директив, описанных в разделе «Конфигурирование». Кроме этого необходимо обладать правами controluser на данные таблицы (см. ниже, раздел «Использование режима аутентификации»).
Обновление старой версии
Просто скопируйте конфигурационный файл ./config.inc.php от предыдущей версии в директорию куда был распакован phpMyAdmin. Конфигурационные файлы из очень старых версий (2.3.0 or older) могут потребовать некоторых настроек, т.к. некоторые опции были изменены или удалены.
Не рекомендуется использовать (копировать) файл libraries/config.default.php вместо config.inc.php , т.к. файл config.default.php является специфичным для каждой версии. Если Вы обновили свой MySQL-сервер с версии старше, чем 4.1.2 до версии 4.1.2 или новее,и используете инфраструктуру связанных таблиц, тогда необходимо запустить SQL-скрипт, который находится в scripts/upgrade_tables_mysql_4_1_2+.sql.
Использование режимов аутентификации
- Режимы HTTP- и cookie- аутентификации рекомендуются при многопользовательской среде, где вы можете разрешать доступ пользователям к своим базам данных и запрещать им выходить за пределы своего окружения.
Необходимо иметь ввиду, что Internet Explorer имеет некоторые проблемы при работе с куками, вплоть до 6-й версии. PHP 4.1.1 также имеет некоторые проблемы в этой области!
Даже в однопользовательской среде, вы можете использовать режим HTTP- или cookie- аутентификации, чтобы не указывать в конфигурационном файле пару «логин/пароль». - Режимы HTTP и cookie аутентификации более безопасны, т.к. нет необходимости хранить учетную информацию MySQL в конфигурационном файле phpMyAdmin (исключение для controluser).
Тем не менее, помните, что в режиме HTTP-аутентификации пароль передается незашифрованным обычным текстом, за исключением того случая когда используется HTTPS протокол.
В режиме cookie-аутентификации пароль хранится зашифрованным с помощью алгоритма blowfish во временных куках. - Внимание: начиная с phpMyAdmin 2.6.1, эта секция актуальна только в том случае если версия Вашего MySQL выше, чем 4.1.2, или сервер запущен с параметром —skip-show-database .
При использовании ‘HTTP’ и ‘cookie’ режимов phpMyAdmin, рекомендуется завести пользователя (controluser), который должен обладать правами только на выборку (SELECT) из следующих таблиц: mysql.user (все столбцы за исключением «Password»), mysql.db (все столбцы), mysql.host (все столбцы) и mysql.tables_priv (все столбцы за исключением «Grantor» и «Timestamp»).
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’;
Необходимо установить настройки для controluser в файле config.inc.php в следующих секциях: $cfg[‘Servers’][$i][‘controluser’] и $cfg[‘Servers’][$i][‘controlpass’] .
В нижеприведенном примере, в обучающих целях используются следующие значения для: ‘controluser’ — ‘pma’, ‘pmapass’ — ‘controlpass’. Но на практике используйте другие значения в своих файлах!
Разумеется, localhost в случае необходимости нужно заменить на реальное имя веб-сервера.
Если вы используете старую версию MySQL (ниже 4.0.2), замените первый запрос GRANT SELECT следующим образом:
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 ) ON mysql.user TO ‘pma’@’localhost’;
. и если Вы хотите использовать возможности закладок и связей:
GRANT SELECT, INSERT, UPDATE, DELETE ON
(конечно, подразумевается, что должна быть настроена инфраструктура связанных таблиц).
Разумеется, вышеприведенный запрос работает только в том случае, если рабочая версия MySQL поддерживает команду GRANT (поддерживается начиная с версии 3.22.11).
- После этого каждый из истинных пользователей будет наделен соответствующими привилегиями для отдельных баз данных. Как правило, глобальные привилегии не даются обычным пользователям, за исключением того случая, если без них не обойтись и вы четко представляете себе последствия назначения данных привилегий (например, вам надо создать суперпользователя).
Например, чтобы наделить пользователя ‘real_user’ всеми привилегиями в базе данных `user_base`:
- Использует HTTP Basic режим аутентификации и позволяет вход в систему как действительному пользователю MySQL.
- Данный режим поддерживается большинством конфигураций PHP. Для получения дополнительной информации о настройке http-аутентификации на серверах где PHP установлен как CGI-модуль см. FAQ 1.33 — для серверов IIS (ISAPI), FAQ 1.36 — для Apache.
- Смотрите также FAQ 4.4 о том, что не стоит использовать .htaccess механизм совместно с http-аутентификацией.
- Вы можете использовать этот метод как альтернативу HTTP-аутентификации (например, если запущен IIS).
- Разумеется, пользователь должен разрешить браузеру использовать куки. Теперь это необходимое требование для всех методов аутентификации
- В этом режиме, после прохождения первичной идентификации phpMyAdmin создает на компьютере пользователя cookie-файл, содержащий логин и пароль пользователя, который будет автоматически подставляться при следующих сеансах.
- При использовании данного режима пользователь может завершить сеанс phpMyAdmin и авторизоваться под другим именем.
- Если вы собираетесь проходить процедуру идентификации на произвольном сервере обратите внимание на директиву $cfg[‘AllowArbitraryServer’].
- Как указано в секции «Технические требования», наличие PHP библиотеки mcrypt на сервере способно ускорить фазу авторизации, но наличие её не обязательно.