...
...

Создание интернет-проекта. Часть 4. WAMP сервер: MySQL, Perl и phpMyAdmin

Мы продолжаем настраивать компоненты веб-сервера на локальной машине, которые помогут нам довести до ума CMS нашего сайта и немного поработать над его контентом, так сказать, в домашних условиях. Делается это для того, чтобы не мешкать при старте проекта в Сети и свести к минимуму промежуток времени, необходимый для наполнения уже работающего сайта. В конце концов, никто нам не мешает сделать бэкап базы данных и потом просто поставить его на рабочую БД.

В предыдущей части мы рассмотрели момент настройки веб-сервера Apache и интерпретатора языка PHP, который, по итогу, был настроен как модуль Apache. В этой статье я закончу говорить о настройке веб-сервера, а именно, расскажу, как установить и настроить три недостающих нам до полного счастья компонента – MySQL, Perl и phpMyAdmin — для удобства работы с БД. Конечно, как я уже говорил, phpMyAdmin для работы с базой данных использовать не обязательно, можно воспользоваться и командной строкой, но удобство сосредоточено в графическом интерфейсе, следовательно, на этом и остановимся. Поехали.

MySQL

Итак, система управления базами данных MySQL сейчас очень популярна. А вообще, для подобных целей часто используется одна из двух СУБД: MySQL или PostgreSQL. Отличаются они тем, что MySQL относится больше к разряду любительских, а PostgreSQL – профессиональных. Поэтому при разработке массивных и серьезных проектов используется обычно PostgreSQL, под массивными я подразумеваю ресурсы с посещаемостью по несколько сот тысяч посетителей в сутки. Хотя я знаю ресурсы с такой посещаемостью, в основе которых лежит MySQL. В общем, я решил не мудрить и использовать MySQL – то, с чем пользователи более знакомы, а если и не знакомы, то слышали точно.





При выборе пакета возникает вопрос о версии, ну, как обычно в общем-то. В нашем случае это выбор между 5.x и 4.x. Конечно, в пятой версии имеется много того, чего нет в четвертой, например, хранимые процедуры, представления, поддержка внешних ключей для всех типов таблиц. Все это безумно хорошо, но особой важности для нас не имеет, поэтому не будем изобретать велосипед и поставим четвертую версию. Я использую версию 4.1.18, скачать которую можно на официальном сайте (http://www.mysql.com/). Тут с установкой и конфигурированием не так просто, зато настройка взаимодействия с PHP будет в несколько операций.

После запуска всеми любимого Setup.exe перед нами знакомая картина, на которой стоит нажать Далее. Первое окно, которое нас интересует – окно выбора типа установки, в котором нам необходимо выбрать никак не Typical или Complete, а Custom - это позволит изменить путь установки. Если вы помните, мы договорились устанавливать все в E:\www\ - в моем случае, а в вашем — любой другой раздел. Поэтому после выбора пункта Custom перед нами возникает окно выбора устанавливаемых компонентов, внизу которого можно найти кнопочку change – именно эта кнопочка и позволит поменять каталог установки. Прописываем нужный путь, в моем случае E:\www\mysql\ и жмем Далее.

После окончания процесса установки инсталлер нам предлагает настроить СУБД прямо сейчас, на что мы и соглашаемся. Вот тут начинается самый важный момент – конфигурирование. Первое окошко предлагает нам настроить автоматически по стандартному шаблону, но мы выберем ручную настройку и будем правы. СУБД MySQL используется не только в сайтостроении, но и в более «гражданских» целях, т.е. как обычное хранилище информации. И поэтому следующее окно предлагает выбрать тип машины, на которую ставится пакет. Предложено три варианта: Developer Machine (компьютер разработчика), Server Machine (сервер смешанного типа) и Dedicated MySQL Server Machine (сервер, целиком отведенный СУБД). Мы выбираем первый пункт, поскольку ставим пакет именно на машину разработчика (рис.1).

Далее предстоит выбрать тип хранилища базы данных (рис.2). И опять на выбор предоставлены три варианта:

. Mutltifunctional Database. Это самый подходящий вариант для нашей задачи. В этом случае создаются хранилища "общего назначения" с возможностью использования как InnoDB, так и MyISAM таблиц.

. Transactional Database Only. База оптимизируется для серверов приложений или web-приложений с большим числом транзакций. Основным движком для хранилищ становится InnoDB.

. Non-Transacional Database Only. Используется для большинства простых web-приложений, для сбора статистики и т. п. Активируется только движок MyISAM.

Чтобы мы не были темными и дремучими, я немного поясню, что из себя представляют эти InnoDB и MyISAM. Начну с преимуществ MyISAM:

1. Скорость.
2. Меньший расход дискового пространства.
3. Для обновлений используется меньше памяти.

Теперь преимущества InnoDB:

1. Надежность.
2. Можно сочетать несколько операторов и принимать все эти операторы одной командой COMMIT.
3. Поддержка откатов.
4. Если произойдет сбой во время обновления, все изменения будут восстановлены (в нетранзакционных таблицах все внесенные изменения не могут быть отменены).
5. Лучше обеспечивает параллелизм при одновременных обновлениях таблицы и чтении.

Едем дальше, и в следующем окне нам предлагают выбрать место хранения данных на жестком диске. Тут на ваше усмотрение, хотя учитывая то, что сервер мы настраиваем для домашнего использования, можно не мудрить, а просто поставить в папку с установленной прогой. Дальше необходимо выбрать один из вариантов предполагаемой нагрузки, всего их три (рис.3):

. Decision Support (DSS)/OLAP – этот вариант актуален в том случае, если ожидается не более 20 одновременных подключений, т.е. в нашем случае.
. Online Transaction Processing (OLTP) – это уже серьезно, поскольку рассчитан он на 500 одновременных подключений.
. Manual Setting – этот позволяет выбрать настройку коннектов вручную, это добавляет гибкости.

В следующем окне мы должны определиться с тем, необходим ли нашей БД доступ по Сети и какой порт MySQL стоит прослушивать. Поскольку мы будем устанавливать phpMyAdmin, то эту опцию нужно оставить включенной и порт - дефолтным. В противном случае можно было бы смело вырубать эту опцию. Кодировка, выбираем cp1251, что равно windows 1251 и спокойно жмем кнопку Далее.

Следующее окно (рис.4) поможет нам определиться с названием процесса и включить функцию его автоматического старта с системой. А вот ниже находится опция, которая во включенном состоянии позволит нам администрировать БД посредством командной строки Windows. Поскольку я думаю назвать парочкой команд вам для демонстрации, то опцию включаю. Да и вообще, советовал бы включить и вам, всякое бывает, а еще один канал администрирования лишним не будет. Вводим пароль главного пользователя (root) и ставим галочку чуть ниже, тем самым разрешаем подключения к MySQL извне (это также необходимо для phpMyAdmin).

Все. Жмем Далее, а в следующем окошке Execute наблюдаем за конфигурированием и стартом сервиса. Теперь необходимо проверить работу, для этого мы воспользуемся командной строкой, в которой наберем следующее:

mysqladmin -uroot -p version status proc

Если вы отключили опцию TCP/IP при конфигурировании сервера, то команда будет выглядеть немного по-другому:

mysqladmin --pipe -uroot -p version status proc

Дело в том, что придется использовать еще одну опцию при запуске утилиты mysqladmin, а именно опцию --pipe. По умолчанию MySQL использует TCP/IP, а если использование отключено, то при подключении к базе нам надо явно, опцией --pipe указать, что мы используем именованные каналы.
После вода команды получим результат, как показано на рисунке 5.

Теперь осталось только настроить MySQL на работу с PHP. Идем в E:/www/php и находим файл php.ini, открываем его в блокноте. Там находим строчку
extension_dir = "./"

и меняем ее на

extension_dir = " ./ext".

Далее находим строчку

;extension=php_mysql.dll

и раскомментируем ее, то есть уберем в начале строки точку с запятой. Ну и последний штрих заключается в том, что нужно добавить значение в системную переменную Path, для того чтобы PHP подхватил библиотеку libmysql.dll. Поэтому к значениям Path добавляем путь к каталогу, где лежит эта библиотека, у меня E:/www/php. Добавляем так: правой клавишей жмем на Мой компьютер и выбираем свойства, после выбираем вкладку Дополнительно и ищем там кнопочку Переменные среды, нажимаем. В нижнем окне (системные переменные) находим Path, выделяем, жмем Изменить и в конце, через точку с запятой добавляем к уже имеющимся путям путь к каталогу с библиотекой (рис.6). Готово.

Еще раз проверим работу, но на этот раз уже с PHP. Открываем блокнот и пишем:

$db = mysql_connect(".", "root", "123")
or
die("Could not connect : " . mysql_error());
mysql_select_db("test",$db) or die ("Could not select database");

$date = mysql_query("SELECT CURDATE()") or die ("Query failed: " . mysql_error());
echo mysql_result($date, 0);
mysql_close($db);
?>

Сохраняем как index.php и кладем в корень одного из наших сайтов, после чего пробуем открыть в браузере. Вы должны увидеть сегодняшнюю дату. Если это произошло, то все работает правильно.

Perl

Пакет качаем с www.activeperl.com, запускаем Мастер установки и выполняем уже привычные действия, но я хочу обратить ваше внимание на окошко, показанное на рисунке 7. Обязательно расставьте галочки так, как показано на рисунке. И на этом все, установка закончена. Проверить работу Perl CGI можно с помощью Perl скрипта, который устанавливается по умолчанию при инсталляции Apache в каталог cgi-bin и называется printenv.pl. Поменяйте в заголовке путь к интерпретатору perl.exe на тот, который используете вы — и все дела. Однако я бы все же убрал немного головной боли: откройте httpd.conf (конфигурационный файл Apache, если забыли) и добавьте в него строку

ScriptInterpreterSource registry

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

phpMyAdmin

Ну и последний аккорд нашей песни – установка phpMyAdmin, которая тоже не относится к числу сложных. Скачайте с любого русскоязычного представительства phpMyAdmin-2.11.9.5-all-languages, он чем-то похож на движок сайта (CMS). Распакуйте содержимое в один корень какого-либо домена (лучше всего создать отдельный) и попробуйте запустить index.php, который будет работать неверно. Для того чтобы изменить ситуацию, вызовите все скрипт установки scripts/setup.php (рис.8), который поможет вам сгенерировать конфигурационный файл. Открыв скрипт установки, нажмите кнопочку add и там в полях введите те значения, которые показаны на моем рисунке. Скачиваете файл и заливаете в папку, в которой лежит phpMyAdmin и все, готово. Запускаем, вводим логин (root), пароль и входим. Вот, теперь нет проблем с созданием БД.

На этом все на сегодня. В следующей статье мы поставим Wordpress, пробежимся по его настройкам, установим несколько плагинов и рассмотрим структуру тем оформления для блогов. Если вы все же остались без понятия в некоторых вещах, то можете скачать видео, на котором и запечатлено сие действо http://forum.sa-sec.org/index.php?showforum=66. Не забывайте про эксперименты над своим свежеиспеченным сервером, но будьте аккуратны, поскольку все устанавливать заново, думаю, никому неохота.

Евгений Кучук q@sa-sec.org SASecutrity gr.



© Компьютерная газета

полезные ссылки
Аренда ноутбуков