| ||
Домашняя установка Apache, Perl, MySql без проблемДанная статья предназначена начинающим (вероятно) web-мастерам (будь то дизайнеры, программисты на Perl, или SQL), желающим творить на домашнем компьютере без подключения к Интернету. И для максимального приближения условий к боевым им необходимо установить и настроить соответствующий набор программ и серверов. Для кодеров/дизайнеров вполне достаточно только сервера (а без него невозможно работать с SSI, и использовать абсолютные адреса). Для программистов: сервера и интерпретатора языка Perl (зачем вам CGI? Естественно для динамического генерирования содержимого сайта. В ручную создавать сотни и тысячи страниц конечно можно (с точки зрения индексации поисковиками это даже лучше), но что если вы хотите сортировать материалы, или выдавать их на одной странице по разному, в зависимости от потребностей пользователя?). Для программистов, работающих с MySql соответственно еще и MySql установить не плохо (А это нужно уже тем, кого не устраивают текстовые или стандартные perl базы данных. Тем, кто хочет быстро и надежно работать с большим (в основном количественно) объемом данных, быстро осуществлять поиск и сортировку данных (по сравнению со стандартными базами Perl разница в скорости составляет несколько порядков). Всем вам я и советую изучить SQL. Если опасаетесь, что будет сложно, то сообщаю - говорить на уровне "SELECT то-то FROM оттуда-то WHERE как-то GROUP BY этак" вы сможете в первый же день.). Выбор OSКонечно же в идеале у вас должна быть в точности та же операционка, что и у хостера (та же версия, тот же софт). Так как это обычно затруднительно, то я советую выделить на жестком диске пару гигабайт под Linux раздел и в разработке (или по крайней мере при тестировании) использовать именно его. Честно говоря я не понимаю людей, которые умудряются жить с одной операционкой, у меня их кстати 6 - Linux Mandrake (свеженький - его я советую тем windows-пользователям, кто только сейчас решил перейти на Linux платформу - тут вам и графическая установка, и графический интерфейс (как правило работающий сразу и без глюков), и вообще Linux на мой взгляд дружелюбнее UNIX-ов), Free-BSD 4.3 (вот ее для начинающих я не посоветую - в один прекрасный день эта [censored] затерла мне таблицу разделов на основном диске (а вот тот диск, что ей на растерзание отдал и не тронула), но в общем операционка весьма своеобразная и приятная), и четыре OS Windows (одна для работы, одна для игр, одна для тестов, и одна резервная). Все они прекрасно уживаются у меня на 2-х винтах. Вообще же LINUX систему я советую каждому разработчику, особенно ежели он пишет на языке PERL. Установка TCP/IPДанный раздел предназначен для возможного (хоть и маловероятного) случая, когда на вашем компьютере нет даже сетевой карты (да и сети соответственно). А что? У меня не так уж и давно была именно такая ситуация - сайт на пару сотен народу в сутки, рассылка на несколько тысяч человек, и без сетевухи, интернета и т.д. (инет был вне дома в двух местах бесплатно). Ежели у вас ОС LINUX, то протокол уже видимо установлен, единственно, что вам возможно требуется, это разве что настроить кольцевой интерфейс командой ifconfig lo 127.0.0.1 , дабы связать машину с самой собой. Если все еще есть проблемы с сетью, то RTFM NET-3-HOWTO до просветления. Пользователей же ОС Windows читать FM увы не пошлешь, посему расскажу подробнее. Если вы счастливый (конечно же в кавычках, но не в данном контексте) обладатель Окон семейства девяностых, то протокол устанавливается просто: Панель управления->Сеть->Протокол->Установить->TCP->OK. Все. Для пользователей же NT будет чуть сложнее (не забываем, что сетевой карты вроде как нет - с ней и в NT проблем не будет). Сейчас я сообщу наиболее простой (но не наиболее оптимальный, или правильный) на мой взгляд (знаете лучше - пишите) способ: Панель управления->Службы - запоминаем все службы, что в столбце запуск имеют "Автомат". Панель управления->Сеть->Отказываемся установить ее, если предложат->Службы->Добавить->Служба RAS->Добавляем устройство X25->Например первое в списке->Смотрим на вкладке протоколы появился ли TCP/IP и установлена ли на него привязка. Если нет - удаляем уср-во X25 и устанавливаем другое. Панель управления->Службы - вспоминаем все службы, что в столбце запуск имели "Автомат". Те, что только что появились изменяем на "Вручную", или вовсе "Запретить". Протокол установлен. Установка ApacheЗагружаем дистрибутив например с www.apache.org или apache.lexa.ru. Запускаем apache_1_3_12_win32.exe (или какой там у вас), если устанавливаем в NT, то после установки инсталлируем его как сервис ( команда Apache.exe -i ). Открываем файл conf/httpd.conf (основной файл конфигурации Апача, если я дальше буду говорить "пропишем то-то в конфиге", то я имею в виду именно этот файл). Знакомы с Ангельским - читаем, понимаем, исправляем по себе. Иначе же прописываем путь к корневому каталогу документации (DocumentRoot "Диск:\путь"), устанавливаем для него права. Для начала оставьте:
Совершенно аналогично можете настроить параметры любого (из доступных серверу) каталога, например:
Дописываем (если еще нет) строки:
Для поддержки скриптов: Теперь оттестируем. А так как лучше всего учится на реальных примерах, то вот: Исходные данные - есть копия сайтика www.citforum.ru (около сотни мегабайт), лежит по адресу I:\www.citforum.ru. Хочется, чтобы сайт запускался с локального винта при вводе в броузер строки www.citforum.ru.
Правим файл /etc/hosts (это в Юнихах, в НТ же он лежит у меня в E:\WINNT\system32\drivers\etc\HOSTS), изменяем строку
Это мы зарегистрировали еще одно имя для локальной машины, теперь надо чтобы сервер это понял. Дописываем в конец конфига строки: Проверяем наличие строки Перезапускаем Апач (возможно после перезагрузки). Открываем броузер, набираем www.citforum.ru, и... Невозможно отобразить страницу http://www.linkexchange.ru/cgi-bin/erle.cgi?12739?2511238 Увы - закачан был только сайт, а не реклама, а [censored] броузер MSIE поспешил обрадовать меня сообщением, что ему не удается загрузить баннер (связи с интернетом нет), без которого мы (по мнению фирмы MicroSoft) счастья в этой жизни не увидим. Открываем FAR->S&R Plugin->Поиск c регулярными выражениями строки " В UNIX системах Perl установлен изначально теперь практически всегда.
Для Windows же пользователей я советую загрузить последнюю версию ActiveState Perl с сайта www.activestate.com. Оттуда же (а не со SPAN) загружайте и дополнительные модули (например, если вы собираетесь работать с MySQL, то я рекомендую загрузить и установить (командой ppm имя_пакета) модуль DBI::MySql)
Распаковываем ActivePerl.zip (если вы загрузили в ZIP-архиве а не в MSI) куда желаете, запускаем install.bat (соглашаемся на все для начала).
Тестируем:
Теперь надо заставить Апач обрабатывать CGI сценарии на этом (великолепном) языке.
Набираем файл test.cgi
Кладем его в доступный серверу каталог (для которого в опциях есть атрибут ExecCGI), набираем в броузере его адрес (например mybestsite.com/test.cgi), и наблюдаем строку HELLO WORD.
Обращаю внимание на первую строку файла (#!perl.exe).
Она срабатывает, если в переменной окружения PATCH прописан путь к программе perl.exe, тогда можно в общем писать даже #!perl.
Если путь не прописан, то придется писать что-то вроде #!E:\Program Files\ActivePerl\bin\perl.exe.
Все это не особо интересно, пока вы не отправляете скрипты вашему хостеру. А у того вероятно UNIX. А в UNIX путь к интерпретатору обычно что-то типа /usr/local/bin/perl.
Что ж, каждый раз перед отправкой изменять?
Конечно, и этому горю можно помочь.
Дописываем в конфиг Апачу строку Она приказывает серверу искать путь к интерпретатору не в первой строке файла, по ассоциации на расширение файла в реестре.
Осталось только эту ассоциацию произвести:
Проще всего было бы напрямую поправить реестр, ну да ладно - Проводник->Вид->Параметры->Типы Файлов->Добавить->Расширение cgi, метод по умолчанию open программа где:\там она у вас\perl.exe->Оки.
Теперь первой строкой скрипта можете писать то, на чем настаивает хостер (в моем случае это #!/usr/bin/perl).
Заодно протестируем и SSI:
Создаем файл test.shtml в каталоге, где есть уже test.cgi в нем пишем <!--#include virtual="test.cgi"--> и смотрим через сервер и броузер.
Таким незамысловатым образом вы сможете вставлять в свои страницы результаты работы скриптов.
Если же указанный в параметре virtual скрипт не будет найден (или не отработается без ошибок) вам будет выдано грозное:
Загружаем дистрибутив базы с сервера www.mysql.com.
К сожалению, windows версия mysql распространяется как SHAREWARE. Разработчики объясняют это тем, что и сама OS Windows не бесплатна (типа привыкайте платить за софт начиная с установки системы), не бесплатны и средства разработки, да и вообще писать под нее гораздо сложнее ( и соответственно дороже ), чем под *NIXы.
НО. Единственная разница между платной и бесплатной (кстати для студентов или для личного использования бесплатны все версии) версией состоит в ее несколько более медленной работе, что в домашних условиях заметить практически невозможно.
Устанавливаем его в C:\MySql, иначе придется создать файл c:\my.cnf со строкой
Для регистрации MySql сервера аки сервис наберите bin\mysqld-shareware --install
Все.
Для теста запустим bin/mysql.exe
Наберем show databases; для просмотра доступных баз. Должны быть хотя бы MySql и test
Для доступа к базе из PERL программ лучше всего использовать модуль DBI.
Для примера перепишем файл test.cgi следующим образом:
Теперь вызываем страницу test.shtml и одним махом проверяем работу MySql,Perl,SSI и Apache.
Если ничто другое не помогает, прочтите, наконец инструкцию!
Во-первых, читайте поставляемую с программами документацию - узнаете много интересного.
По работе с веб-сервером Apache посетите сайт apache.lexa.ru. Он хотя и посвящен русскому Апачу (а я кстати отношусь к этой разновидности программы как праведный юниксоид к windows95), но все же там есть немало полезной документации.
По программированию на языке Perl прочтите "Введение в Perl". Из бумажных носителей я советую "Perl CookBook" (Кристиансена и Торкингтона), а для начинающих вполне подойдет Лешина (А.Павлов) книга.
Программистам MySql советую изучить документацию на MySQL.
Вот собственно и все. Будут вопросы - пишите, будет что интересного сообщить - присылайте, мои реквизиты чуть ниже.
Николай А. Панов, niksite@mail.ru | ||
Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com |