О себе
Вы можете связаться со мной, зайдя в раздел Обратная связь
Что делаю?
Пишу
- Textpattern: больше чем просто блог
- На связи у Skype
Публикация сайта в Сети. Часть II
Инсталляция панели PhpMyAdmin
Почти у каждого хостера, с которым вам доведется или довелось встретиться, панель управления MySQL под названием PhpMyAdmin установлена. Сегодня это своеобразное правило хорошего тона. Сразу напрашивается вопрос: а что, если отсутствует? На самом деле – ничего страшного, установим сами! Дело несложное.
Итак, будем считать, что один из новейших дистрибутивов PhpMyAdmin’а вы уже скачали. Я нашел у себя сентябрьский релиз версии 2.6.4. Распакуйте файлы из архива в отдельную папку. Давайте хорошенько разберемся в содержимом, ведь кое-что здесь в дальнейшем совершенно не понадобится. Можно удалить, например, *.txt, *.html, Readme и файлы без расширения в корне папки. Поддержка многих языков (каталог /lang) также вряд ли пригодится. Короче, оставляем все самое необходимое, на собственное усмотрение.
Скомпилированный дистрибутив важно проверить на работоспособность. Здесь, как всегда, поможет виртуальный сервер «Денвер». В домашнем каталоге (/home/localhost/www/) создадим папку, где будет располагаться новый PhpMyAdmin, и копируем туда файлы дистрибутива. Ну вот, все готово, даже конфигурационный файл необязательно править. Тестирование PhpMyAdmin’а производится по адресу “localhost/имя созданного каталога” (не забывайте: сервер должен быть запущен).
Работает – ОК. Но подумайте, что будет, если перенести данный дистрибутив на удаленный сервер без изменений? Любой посторонний, зная путь к PhpMyAdmin’у, сможет свободно воспользоваться его услугами. Поэтому мы проведем необходимые меры по предостережению, отредактировав config-файл комплекса PhpMyAdmin – сonfig.inc.php. Как и раньше, советую использовать текстовый редактор с подсветкой синтаксиса и нумерацией строк, что-то вроде GridinSoft Notepad. В конфигурационном файле нас интересуют следующие сроки:
// метод аутентификации (основанный на config, http или cookie) $cfg[‘Servers’][$i][‘auth_type’] = ‘http’; // пользователь MySQL $cfg[‘Servers’][$i][‘user’] = ‘user’; // пароль для MySQL-БД(только для config-доступа $cfg[‘Servers’][$i][‘password’] = ‘password’;
Метод аутентификации (удостоверения) выставляется строго ‘http’ – в целях защиты доступа к базе данных. Метод «http» избавляет от необходимости хранения личных данных (‘user’, ‘password’) в конфигурационном файле. Логин/пароль вводятся при каждом соединении с PMA. А вот для локального сервера лучше использовать метод удостоверения по умолчанию – config. При config-аутентификации обязательно задействуйте имя пользователя и пароль: только тогда вы получите доступ к БД. Еще отмечу интересную опцию: вписав пользователем ‘user’, вы получите доступ ко всем имеющимся на хосте (на локальном сервере – localhost) базам. Значение [‘password’] для БД в данном случае необходимо оставить пустым… Почти все. Осталось в строке
изменить или оставить как есть адрес хоста. Хост, разумеется, указывает хостер. Настройка PhpMyAdmin’а закончена, комплект готов к отправлению на сервер.
Работа с БД через PhpMyAdmin
Как театр начинается с вешалки, так и программа – с интерфейса. Интерфейс PhpMyAdmin’a несложен, он делится на боковую панель с возможностью выбора БД и основное поле, содержащее несколько вкладок. Ознакомимся с первыми тремя, на мой взгляд, самыми важными:
Структура – содержимое вкладки наглядно демонстрирует содержимое базы: количество таблиц, кодировку, размер каждой и т. п. С таблицами можно совершать различные действия: как по отдельности (просмотреть содержимое, выполнить запрос, создавать и уничтожать), так и массово (то же удаление, очистка, проверка, оптимизация). Последняя, кстати, весьма полезная функция – рекомендую. Пример: в БД содержится ~ 60 таблиц, общий размер – 320 kb. После десятисекундных действий база «худеет» до 266.5 kb. Оптимизация!
SQL – уже знакомая нам вкладка. Наряду с соседней, Экспорт, она очень важная. По этому адресу пользователю доступны импорт таблиц в базу данных и выполнение запроса. От его составителя, натурально, требуется уверенное знание основ SQL-синтаксиса. К сожалению, формат статьи не позволяет изложить тему составления запроса в подробностях. «На пальцах» же объяснить тоже не удастся. Тот, кто заинтересуется языком SQL, пусть обратится к старым номерам КГ – в газете 3 года назад публиковались замечательные статьи Д. Мигачева, в частности, о SQL. Масса толкового материала есть и в Интернете (см. “Ссылки в помощь”). В любом случае, кое-что прояснится, если вы откроете SQL-файл и хотя бы поверхностно изучите его код. Импорт SQL-дампа – тоже запрос.
Экспорт – создание дампа таблиц БД. Данная функция нужна, например, для того, чтобы получить резервную копию базы. Процесс этот несложный. В колонке под надписью “Экспорт” выделите таблицы, тип – SQL. В опциях SQL выберите дополнительные условия (по надобности). В опции SQL export compatibility обычно выставляется none, но если нужно обеспечить совместимость таблиц с MSSQL, ORACLE, MySQL 3.x – 4.x и т. п., выбирайте желаемое из списка. Тип экспорта – Insert (вставка), Update (обновление) или Replace (замена). Insert используется в том случае, если импортируемых впоследствии таблиц в другой базе нет. В случае если таблица с таковым именем уже имеется, PhpMyAdmin выдает предупреждение, что «table is exists». Для желаемого результата попробуйте параметры Update / Replace либо опцию If not exist.
“Последний штрих” -– выбор сжатия. Однозначно ставим Gzip (жаль, что 7z нету :)). После нажатия на кнопку Go! дамп базы сохраняется на компьютере. Советую вам делать резервную копию базы как можно чаще: не только перед обновлением CMS, но и без особых причин. Поспрашивайте у своего хостера, делает ли он backup пользовательских баз данных, и если да, то как часто. Возможно, вопрос резервирования БД с вашей стороны отодвинется на задний план.
Альтернативный вариант
Мы еще не рассмотрели второй вариант публикации сайта. Итак, как же произвести перенос CMS и базы данных на сайт? Процесс состоит из двух-трех этапов. Сначала вы должны закачать на удаленный хост все файлы движка, опять же, с измененным конфигом. Второй шаг – импорт таблиц локальной базы данных в базу «интернетовского» сервера. Для этого посредством PhpMyAdmin’а сделайте полный дамп таблиц вашей БД с «Денвера», а затем, открыв PMA на удаленном сервере, выполните запрос (вкладка SQL) из ранее экспортированного файла.
Если вы не уверены, что ваша база данных существует в Сети, советую сделать проверку. А поможет в этом маленький php-скрипт:
<?
$link = mysql_connect("dbhost", "login", "pass")
or die("Невозможно подключиться…");
mysql_close($link);
?>
, где dbhost – адрес сервера БД, login – имя пользователя БД, а pass – пароль. При неудачном соединении выдается строка “Невозможно подключиться…”
После импорта данных необходимо зайти в админ-панель движка и навести порядок. Чаще всего приходится изменять пути каталогов (был, скажем, localhost/forum – станет site_name/forum), какие-никакие настройки. Если вам повезет, то после указанных действий сайт заработает.
Однако не всегда все складывается удачно. К сожалению, иногда (и довольно часто) возникает проблема несовместимости. Наиболее распространенная связана с конфликтом разных версий MySQL. База данных, экспортируемая с MySQL <4.1, вряд ли будет корректно распознана на более поздних релизах СУБД. Виной тому – проблема с кодировками windows-1251 и UTF8. Частичное решение конфликта нашли разработчики Денвера, но – по своему опыту знаю – действует оно не всегда. Еще более остро обстоят дела с MySQL 5, где SQL-запросы из старых версий и вовсе не выполнишь. Проблем много, и одним из рациональных решением с вашей стороны будет обновление СУБД «Денвера» до MySQL 5. Или смена хостера :).