CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2002 ГОД

Сервер племени апачей

Артем «Cosmic» ШМАНЦЫРЕВ cosmic@mail.zp.ua

Здорово, пользователи! Хотите халявный Интернет? Для читателей «МК» этот вопрос давно перешел в катэгорию риторических. А хотите халявный Интернет без модема, телефонной линии и сетевой карточки? Вот тут большинство грамотных пользователей навострят уши и спросят: «А как это?» Очень просто. Нужно всего лишь установить домашний сервер.

Во врезе статьи сознательно допущена неточность. Конечно, полноценного доступа к Интернету без указанных устройств вы не получите. Однако домашний сервер может предоставить вам, например, возможность полноценной отладки вашего сайта в условиях, максимально приближенных к условиям Сети. Более того, при наличии выделенки с хорошей пропускной способностью и мощного компьютера любой домашний сервер можно путем регистрации доменного имени превратить в полнофункциональный web-сервер, содержимое которого будете разглядывать не только вы с другом :-), но и все, кто этого захочет.

Принцип работы сервера прост до безобразия :-). Программа-сервер постоянно «висит» в памяти компьютера-сервера, отслеживает состояние определенного порта и при его изменении выполняет те или иные действия. Программы-серверы, предназначенные для разных целей, работают с различными портами («порт» в данном случае — это не разъем для подключения модема, а виртуальный номер, помогающий протоколу управления передачей данных TCP идентифицировать тип сервиса, который вы запрашиваете у компьютера-сервера). HTTP-сервер, речь о котором и идет в данной статье, отслеживает состояние 80-го порта, при изменении состояния проверяет корректность поступившего HTTP-запроса, обрабатывает его, результат же обработки (последовательность HTML-тэгов запрошенной странички или результат выполнения CGI-скрипта) выдает для отображения браузеру пользователя.

Практически все распространенные серверы работают с протоколами HTTP и CGI. Наличие других функций (например, поддержки FTP и электронной почты) зависит от того, с какой именно программой-сервером вы решили работать. А вот выбор программы-сервера зависит исключительно от вас, я же постараюсь навести вас на верное решение этого вопроса.

Прежде всего вы должны определиться, что вы будете делать при помощи сервера. Если вам всего лишь приспичило показать другу, какой вы на самом деле крутой хацкер :-) — не требуйте многого от сервера. Сгодится и скромный, с поддержкой только протокола HTTP, малого количества пользователей и с небольшой скоростью обработки данных. Благо, в Интернете достаточно таких произведений программерского искусства. Для серьезных же нужд советую обзавестись серьезной программой, обрабатывающей протоколы HTTP и CGI, поддерживающей работу с SSI, PHP и Perl, поддерживающей виртуальные хосты и не имеющей ограничений на количество пользователей. Я говорю о вожде племени апачей —Apache HTTP Server.

Apache HTTP Server (далее — просто Apache) по статистическим данным является самым распространенным и надежным сервером в Сети. Поэтому если вы решите установить у себя Apache, вы приобщитесь к миллионам :-). Apache распространяется бесплатно, имеет открытый исходный код и широкую переносимость (от Windows 95 до Solaris). Скачать программу инсталляции сервера apache_1.3.26-win32-x86-no_src.exe размером 5.1 Мб вы можете с официального сайта The Apache Software Foundation по адресу http://www.apache.org/dist/httpd/binaries/win32/apache_1.3.26-win32-x86-no_src.exe. Я намеренно использую версию 1.3.26, как самую стабильную и отлаженную (хотя существует уже версия 2.0.41). Кстати, если вы являетесь пользователем древней Windows 95 (что вряд ли :-)), скачайте также обновление Winsock. так как без него сервер работать не будет. Адрес для скачивания —http://www.microsoft.com/windows/downloads/bin/W95ws2setup.exe. Итак, запасаетесь пятью дискетами, идете в Интернет-клуб и скачиваете. Скачали? Хорошо. Теперь, уверен, у вас появляется желание запустить установку, открыть браузер, набрать адрес любимого сайта «МК» и позвонить другу :-). Подождите! Сначала нам надо все это настроить.

Как я уже говорил, мы настраиваем домашний компьютер без модема и значка «Сетевое окружение» на Рабочем столе (по умолчанию предполагается операционная система Windows 9x/ME как самая распространенная). Если у вас уже есть такой значок, следующие два абзаца можете прочитать по диагонали (то есть полностью, в соответствии с «диагональным» дизайном «Моего компьютера» :-)).

Несмотря на то, что после воскресной попойки денег на модем не хватило :-), контроллер удаленного доступа нам все же понадобится. Заходим в Пуск > Панель управления > Сеть выбираем вкладку Конфигурация и нажимаем кнопку Добавить. В появившемся окне из изготовителей выбираем Microsoft, из сетевых плат —Контроллер удаленного доступа. Нажимаем ОК и на вкладке Конфигурация видим сразу три компонента —Клиент для сетей Microsoft, Контроллер удаленного доступа и IPX/SPX-совместимый протокол. Если не видим :-), то придется их добавить вручную, используя ту же кнопку Добавить и выбирая соответствующие позиции из списка (Рис. 1).

Кроме перечисленных нам еще нужно добавить компоненты Рис. 1TCP/IP (куда без него!) и Служба доступа к файлам и принтерам сетей Microsoft (Рис. 1). Все! Нажимаем ОК, перезагружаемся и видим заветный значок Сетевое окружение на Рабочем столе. Если вы используете локальную сеть, можете также прописать в свойствах TCP/IP статический IP-адрес (например, 192.168.0.1), по которому другие пользователи сети смогут получить доступ к ресурсам вашего сервера.

Теперь нужно установить Apache. Тут, как говорится, все как в сказке — чем дальше, тем страшнее :-). Но не пугайтесь и не зовите друга на помощь! Справимся сами, иначе это уже не будет для него сюрпризом.

Для корректной установки сервера Apache нам придется немножко помучить нашу файловую систему. Дело в том, что файл конфигурации Apache подразумевает установку сервера на диск F. Для нас это некритично, но для упрощения жизни в дальнейшем я все же рекомендую установить его именно туда, причем этот самый диск F желательно целиком отвести для файлов сервера, серверных примочек и содержимого вашего сайта. Если у вас уже есть такой диск, то проблема снимается, если нет — создайте его, либо переразбив разделы жесткого диска, либо средствами DriveSpace, либо командой subst f: c:\wwwserv (при этом, конечно, нужно создать папку c:\wwwserv). Авторы руководств по установке Apache обычно не рекомендуют использовать последний метод, обосновывая это возможными проблемами с Perl’ом. Но лично я с подобными проблемами не сталкивался, поэтому, для экономии времени, мы выделим диск F именно последним способом.

Итак, создаем на диске С (или на любом другом жестком диске) папку с именем wwwserv (или любую другую — по вашему вкусу), нажимаем Пуск > Выполнить и вводим команду subst f: c:\wwwserv. Эту же команду советую прописать в Autoexec.bat, чтобы не выполнять ее всякий раз вручную.

Теперь открываем Проводник (или что там у вас) и видим, что наша коллекция дисков пополнилась еще одним экземпляром, помеченным литерой F. Переходим на новоиспеченный диск и создаем на нем дерево каталогов, подобное показанному на Рис. 2.

Теперь все готово для установки нашего многострадального сервера. Как вы уже догадались, устанавливать мы его будем в папку f:\usr\local\ (недаром же мы ее создали!). Рис. 2Запускаем недавно выкачанный apache_1.3.26-win32-x86-no_src.exe, соглашаемся с лицензионным соглашением (I accept the items in the license agreement), везде, где просят, нажимаем Next. В окне предварительной настройки сервера (Server Information) в качестве доменного имени (Network Domain) вводим mycomp.com.ua, имя сервера (Server Name) —www.mycomp.com.ua, e-mail администратора (Administrator’s Email Address) — адрес вашего ящика (он будет отображаться при выводе сообщений об ошибках сервера). Выбираем пункт Run as a service for All Users («Запускать как сервис для всех пользователей» — в отличие от альтернативной ему опции, резервирущей порт 8080, использует порт 80, доступный для всех пользователей сети), после чего снова нажимаем Next. В качестве Типа установки выбираем Custom, как и рекомендуют для особо продвинутых пользователей :-). Здесь можно убрать флажок Apache Documentation, если вы брезгуете читать англоязычную документацию. Здесь же в качестве установочного каталога вводим f:\usr\local. Теперь можно глотнуть пивка и дождаться окончания установки.

Уголок Маньяка

В папке f:\usr\local автоматически должна быть создана папка Apache, в которой и будут храниться файлы сервера. Если она не создается, то есть файлы копируются прямо в папку f:\usr\local, можете спокойно создать папку f:\usr\local\apache и перенести в нее всю структуру каталогов. После этого в файле httpd.conf (о нем чуть позже) значение директивы ServerRoot нужно изменить на "F:/usr/local/apache".

Выход из Уголка Маньяка

Не бегите к телефону! Это еще не все. Для окончания нашей сказки :-) сервер осталось сконфигурировать. Это самый интересный момент, а потому, как пишут в многочисленных руководствах по установке и настройке Apache, прошу соблюдать все следующие инструкции БУКВАЛЬНО! Потерпите, нам осталось отредактировать всего два файла конфигурации сервера.

Снова открываем Проводник и переходим в каталог f:\usr\local\apache\conf. Здесь и находятся заветные файлы. Первый файл с именем mime.types отредактировать очень просто. Более того, если вы не планируете использовать SSI (Server Side Includes) на вашем сайте, то можете его и не редактировать. Если же планируете, откройте файл с помощью любого текстового редактора, найдите там строку

и замените ее на

Таким образом мы приказали серверу обрабатывать файлы с расширениями *.shtml, *.shtm и *.sht, которые чаще всего содержат SSI-инструкции.

Нам осталось отредактировать последний файл, после чего вы наконец сможете излить душу по телефону :-). Файл называется httpd.conf, он находится в той же папке, что и mime.types (т. е. f:\usr\local\apache\conf) и содержит все основные директивы, в соответствии с которыми будет работать наш сервер.

Открываем файл с помощью текстового редактора и ужасаемся :-). Я же говорил — как в сказке… Но огромная куча англоязычных комментариев (строчек, начинающихся со знака #) не должна вас смущать. В этом хаосе нам предстоит найти и изменить лишь некоторые незакомментированные строчки:

ServerAdmin ваш@email — адрес вашего электронного почтового ящика, который будет выводиться при сообщениях об ошибках сервера как адрес администратора, которому можно написать и поплакаться в жилетку :-). Мы его уже ввели при установке сервера, если нужно — поменяйте;

ServerName ваш_адрес — как и договорились, www.mycomp.com.ua;

DocumentRoot f:/www — каталог, где будет находиться содержимое вашего сайта.

Теперь нужно найти блок текста, заключенного между строками <Directory /> и </ Directory>, обозначающего установки корневой директории (в нашем случае — диска F). Содержимое блока изменим на

В корневой директории и всех ее поддиректориях мы установили возможность обработки SSI (директива Options Includes) и возможность вывода содержимого директории при отсутствии индексной страницы (директива Options Indexes). Директива AllowOverride All позволяет файлу .htaccess (в котором определяются права доступа к конкретной директории) переустанавливать все опции директории, находящиеся в конфигурационном файле httpd.conf.

Далее находим аналогичный установочный блок, начинающийся строкой <Directory “f:/usr/local/apache/htdocs”>. Этот блок отвечает за установки директории нашего сайта (директории, определенной в DocumentRoot). Все комментарии внутри блока можете удалить и заменить его на

В блоке появились новые директивы: Order и Allow. Директива Order устанавливает порядок выполнения директив Allow и Deny, которые позволяют разрешить и/или запретить доступ к конкретной директории для конкретных хостов, IP-адресов или даже пользователей, использующих определенный браузер. В данном случае мы разрешаем доступ для всех пользователей (Allow from All).

Следом на очереди строчки:

UserDir “f:/home/” — каталог, где будут храниться файлы пользователей вашего сайта (ведь вы сам себе провайдер, так почему бы вам не предоставить хостинговые услуги другим пользователям — например, соседу по локалке :-));

DirectoryIndex index.htm index.html index.phtml index.php — определяет имя и расширение индексной (главной) страницы вашего сайта. Индексная страница — это главная страница вашего сайта, то есть она является той страницей, которую пользователь видит первой при указании адреса вашего сайта (http://www.mycomp.com.ua). Фактически она находится в установленной нами директории DocumentRoot и имеет адрес http://www.mycomp.com.ua/index.htm(.html, .phtml, .php). При отсутствии индексной страницы сервер выведет содержимое директории DocumentRoot.

ScriptAlias /cgi-bin/ “f:/cgi-bin/” — здесь определяем подстановочную переменную для директории CGI-скриптов нашего сервера. Переменная служит для указания серверу абсолютного адреса вашей CGI-директории, т.е. при вводе адреса типа http://www.mycomp.com.ua/cgi-binсервер будет искать CGI-скрипты в директории f:/cgi-bin.

Теперь найдем установочный блок для директории CGI-скриптов (т.е. <Directory “f:/usr/local/apache/cgi-bin”>) и заменим его на

Директива Options ExecCGI позволяет исполнять CGI-скрипты, находящиеся в этой директории.

Следующая важная для нас строчка — AddHandler cgi-script .bat .exe — тем самым мы указываем серверу, что все файлы с расширением *.bat и *.exe нужно обрабатывать как CGI-скрипты (не забудьте раскомментировать эту строчку, то есть убрать перед ней символ #).

Если вы собрались использовать SSI на вашем сайте и изменили файл mime.types в соответствии с моими инструкциями, в файле httpd.conf раскомментируйте строку AddHandler server-parsed .shtml и добавьте еще пару расширений: .shtm .sht. Тем самым мы указали серверу, что файлы с расширениями *.shtml, *.shtm и *.sht нужно обрабатывать с учетом встроенных SSI-инструкций.

Теперь последнее и самое интересное. В папке c:\windows (или как там она у вас называется) находим файл hosts (без расширения!). Если не нашли — создаем при помощи текстового редактора и заносим в него одну строчку — два параметра через знак табуляции: 127.0.0.1  www.mycomp.com.ua. Первый параметр — это IP-адрес нашего сервера по умолчанию, второй — сопоставленный с ним адрес сервера, который можно «обозвать» по вашему желанию (пусть редакция МК не пугается, без регистрации в компании-регистраторе этот сервер будет виден максимум в локальной сети :-)).

Ну вот! Последний глоток пива сделан, и рука уже лежит на телефоне :-). Но я снова вынужден вас огорчить — это еще не все. Сказка еще не окончена. Наш сервер осталось проверить.

Для проверки сервера мы с помощью текстового редактора создадим простейший HTML-документ с именем index.htm или index.html и разместим его в папке DocumentRoot, установленной в файле конфигурации (в нашем случае f:\www). Файл будет содержать следующие строки:

Разместили? Теперь запускаем сервер (по умолчанию ярлык находится в разделе Программы > Apache HTTP ServerГлавного меню и называется Start Рис. 3Apache in Console), сворачиваем окно сервера на Панель задач, открываем браузер, вводим http://www.mycomp.com.uaи наслаждаемся полученным результатом (Рис. 3) Если не наслаждаемся :-), советую еще раз пересмотреть файл конфигурации и найти допущенные ошибки.

Для проверки работоспособности CGI, в директории f:/cgi-bin создаем файл test.bat, куда записываем следующие строки:

Создали? Теперь в адресной строке любимого браузера вводим http://www.mycomp.com.ua/cgi-bin/test.batи снова наслаждаемся результатом. В окне браузера должно отобразиться содержание вашей CGI-директории в кодировке DOS.

И последнее. Проверим работоспособность SSI — подразумеваем, что вы решились их использовать и соответствующим образом отредактировали конфигурационные файлы сервера. Переименовываем файл index.htm, находящийся в нашей директории DocumentRoot, в index.shtml и удаляем из него все содержимое. В него нужно вписать только одну строчку: <!--#exec cgi="/cgi-bin/test.bat"-->. Теперь в браузере вводим http://www.mycomp.com.ua/index.shtmи в предпоследний раз наслаждаемся полученным результатом. Почему в предпоследний? Потому что последнее наслаждение вы испытаете, когда, наконец, увидите реакцию друга на внезапно обнаружившиеся в вас задатки хакера :-). Кстати, остановить сервер можно простым нажатием комбинации клавиш Ctrl+Break.

Вот и сказочке конец, кто слушал — молодец! Теперь можете звонить и приглашать друга на пиво. Для тех же, кто не торопится, хочу сказать следующее. Эта статья — лишь небольшое предисловие к большому циклу статей, в котором я познакомлю вас с основами профессиональной разработки динамических web-сайтов, каковая, как вы уже поняли, невозможна без наличия домашнего сервера или неограниченного доступа к Интернет. Что дешевле? Вам решать.

(Продолжение следует)

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov