Данная статья
предназначена начинающим (вероятно) 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 "Диск:\путь"),
устанавливаем для него права. Для начала
оставьте:
<Directory />
Options Indexes FollowSymLinks
MultiViews ExecCGI Includes
AllowOverride None
Order allow,deny
Allow from all
<Files .htaccess>
Order allow,deny
Deny from all
</Files>
</Directory>
Совершенно аналогично можете настроить
параметры любого (из доступных серверу) каталога,
например:
<Directory I:/WEBSite/>
а тут так-же
</Directory>
Дописываем (если еще нет) строки:
Для поддержки SSI в файлах с расширением shtml:
AddType text/html .shtml
AddHandler server-parsed .shtml
Для поддержки скриптов:
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
Теперь оттестируем. А так как лучше
всего учится на реальных примерах, то вот:
Исходные данные - есть копия сайтика
www.citforum.ru (около сотни мегабайт), лежит по адресу
I:\www.citforum.ru.
Хочется, чтобы сайт запускался с
локального винта при вводе в броузер строки
www.citforum.ru.
Правим файл /etc/hosts (это в Юнихах, в НТ же
он лежит у меня в E:\WINNT\system32\drivers\etc\HOSTS), изменяем
строку
127.0.0.1 localhost
на
127.0.0.1 localhost www.citforum.ru
Это мы зарегистрировали еще одно имя для
локальной машины, теперь надо чтобы сервер это
понял.
Дописываем в конец конфига строки:
<VirtualHost www.citforum.ru>
DocumentRoot I:/www.citforum.ru/
</VirtualHost>
Проверяем наличие строки
NameVirtualHost 127.0.0.1
Перезапускаем Апач (возможно после
перезагрузки). Открываем броузер, набираем
www.citforum.ru, и...
Невозможно отобразить страницу
http://www.linkexchange.ru/cgi-bin/erle.cgi?12739?2511238
Увы - закачан был только сайт, а не
реклама, а [censored] броузер MSIE поспешил обрадовать
меня сообщением, что ему не удается загрузить
баннер (связи с интернетом нет), без которого мы (по
мнению фирмы MicroSoft) счастья в этой жизни не увидим.
Открываем FAR->S&R Plugin->Поиск c
регулярными выражениями строки "" и замена
ее на "" по всем файлам CitForum`а. Набираем
www.citforum.ru опять и вот наконец то все в порядке...
Установка интерпретатора языка Perl
В UNIX системах Perl установлен изначально
теперь практически всегда.
Для Windows же пользователей я советую
загрузить последнюю версию ActiveState Perl с сайта
www.activestate.com. Оттуда же (а не со SPAN) загружайте и
дополнительные модули (например, если вы
собираетесь работать с MySQL, то я рекомендую
загрузить и установить (командой ppm имя_пакета)
модуль DBI::MySql)
Распаковываем ActivePerl.zip (если вы
загрузили в ZIP-архиве а не в MSI) куда желаете,
запускаем install.bat (соглашаемся на все для начала).
Тестируем:
Набираем файл test.pl
#!perl.exe
print "HELLO WORD";
Запускаем его командой perl test.pl, получаем строку
HELLO WORD. Радуемся.
Теперь надо заставить Апач обрабатывать
CGI сценарии на этом (великолепном) языке.
Набираем файл test.cgi
#!perl.exe
print "Content-type: text/html\n\n";
print "HELLO WORD";
Кладем его в доступный серверу каталог (для
которого в опциях есть атрибут 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.
Что ж, каждый раз перед отправкой
изменять? Конечно, и этому горю можно помочь.
Дописываем в конфиг Апачу строку
ScriptInterpreterSource registry
Она приказывает серверу искать путь к
интерпретатору не в первой строке файла, по
ассоциации на расширение файла в реестре.
Осталось только эту ассоциацию
произвести:
Проще всего было бы напрямую поправить
реестр, ну да ладно - Проводник->Вид->Параметры->Типы
Файлов->Добавить->Расширение cgi, метод по
умолчанию open программа где:\там она у вас\perl.exe->Оки.
Теперь первой строкой скрипта можете
писать то, на чем настаивает хостер (в моем случае
это #!/usr/bin/perl).
Заодно протестируем и SSI:
Создаем файл test.shtml в каталоге, где есть
уже test.cgi в нем пишем <!--#include virtual="test.cgi"--> и
смотрим через сервер и броузер.
Таким незамысловатым образом вы сможете
вставлять в свои страницы результаты работы
скриптов.
Если же указанный в параметре virtual
скрипт не будет найден (или не отработается без
ошибок) вам будет выдано грозное:
[an error occurred while processing this directive]
потенциальное наличие чего на своем сайте мало
кому может понравится. Это не сложно исправить
добавив в начале страницы строку
<!--#config errmsg ="<p align-'center'>Нуу блин опять! -
если не в лом <a href='mailto:мое@мыло.тут'>напишите
мне</a> о том где вы это увидели"--> или же
можно просто <!--#config errmsg =""-->.
Установка MySql
Загружаем дистрибутив базы с сервера
www.mysql.com.
К сожалению, windows версия mysql
распространяется как SHAREWARE. Разработчики
объясняют это тем, что и сама OS Windows не бесплатна (типа
привыкайте платить за софт начиная с установки
системы), не бесплатны и средства разработки, да и
вообще писать под нее гораздо сложнее ( и
соответственно дороже ), чем под *NIXы.
НО. Единственная разница между платной и
бесплатной (кстати для студентов или для личного
использования бесплатны все версии) версией
состоит в ее несколько более медленной работе,
что в домашних условиях заметить практически
невозможно.
Устанавливаем его в C:\MySql, иначе придется
создать файл c:\my.cnf со строкой
[mysqld]
basedir=E:/installation-path/
Для регистрации 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
http://allhumor.da.ru |