Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых
[Назад] [Содержание] [Дальше]

Практика применения Perl, PHP, Apache, MySQL для активных Web-сайтов

(С) Александр Фролов, Григорий Фролов, 2002

Введение

Введение. 1

Как появилась ОС  Linux.. 1

Основные дистрибутивы Linux.. 2

Преимущества и недостатки Linux.. 4

О бесплатности Linux. 5

Сопровождение Linux. 5

Предварительная установка Linux на новые компьютеры.. 6

Приложения для Linux. 6

Linux и настольные персональные компьютеры.. 7

Открытость Linux. 8

Linux как платформа для приложений Интернета.. 9

Сетевые средства Linux. 9

Web-серверы.. 10

CERN HTTPD.. 10

NCSA HTTPd. 11

Apache. 11

Web-сервер THTTPD.. 11

FTP-серверы.. 12

Серверы электронной почты.. 12

Базы данных. 12

Инструментальные средства и кросс-разработка Web-приложений. 13

Что нужно знать и уметь для работы с книгой.. 16

Проекты, на базе которых создана эта книга.. 16

Узел Web службы восстановления данных DataRecovery.Ru. 16

Виртуальное кадровое агентство Трудоголик.Ру. 17

Узел Web симпозиума «Сердечно-сосудистая и интервенционная радиология». 18

Содержимое книги.. 19

Благодарности.. 20

Об авторах.. 20

 

 

Как появилась ОС  Linux

Несмотря на победоносное шествие операционной системы Microsoft Windows как платформы для настольных систем и серверов, огромное количество служб и сервисов Интернета создаются на базе операционной системы Linux. Первоначально ядро этой операционной системы (ОС) было создано в начале 90-х годов одним человеком — Линусом Торвальдсом (Linus Torvalds) в рамках курсовой студенческой работы.

Первая версия Linux была написана на языке ассемблера, причем в качестве прототипа послужила другая бесплатная Unix-подобная операционная система с названием Minix. Впоследствии Линус Торвальдс переписал ОС Linux на языке программирования С, что облегчило ее дальнейшее развитие. Этому способствовало и то, что исходные тексты Linux свободно распространялись через Интернет.

Версия ОС Linux 0.02, которую можно назвать официальной, появилась в конце 1991 года. Она содержала командный процессор bash (GNU Born Again Shell) и компилятор языка программирования C.

К моменту появления ядра СО Linux версии 1.0 (март 1994 года) к проекту подключилось много людей и дело пошло быстрее. В Linux были перенесены многие из утилит операционной системы Berkley Unix (BSD), в частности, демоны и сетевые утилиты.

Многие работы велись в рамках Фонда бесплатного программного обеспечения (Free Software Foundation). Так были, в частности, созданы инструментальные средства, такие как GNU C Compiler.

Постепенно в Linux были перенесены компоненты, обязательные для «обычных» версий Unix. Прежде всего, это сетевые средства на базе протокола передачи данных TCP/IP, серверы Web, FTP, серверы электронной почты, серверы электронных новостей и брандмауэры, в результате чего Linux стало возможно использовать в качестве узлов Интернета. В Linux были добавлены редакторы текста, такие как Emacs, а также графический пользовательский интерфейс на базе X-Window и многочисленные программы с этим интерфейсом. ОС Linux стала мощной ОС, способной работать на современных компьютерах с несколькими центральными процессорами в режиме симметричного мультипроцессирования.

В результате ОС Linux превратилась из студенческой разработки в полноценную операционную систему, успешно конкурирующую с коммерческими версиями других ОС, в частности, и с такими авторитетными, как Microsoft Windows. Сегодня интерес к этой ОС  проявляется не только со стороны пользователей и системных администраторов, но и со стороны крупных производителей аппаратного и программного обеспечения.

В нашей книге мы заострим свое внимание главным образом на использовании ОС Linux в качестве платформы для работы Web-приложений. Не секрет, что большая часть Web-серверов и других информационных узлов Интернета созданы с применением именно этой операционной системы.

Рассматривая общие принципы построения Web-приложений, а также приемы создания таких приложений для платформы Microsoft Windows NT/2000, мы будем часто ссылаться на нашу книгу с названием «Создание Web-приложений: Практическое руководство» [1], которая вышла в издательстве компьютерной литературы «Русская Редакция», а также на другую литературу, перечень которой приведен в разделе «Библиографический список».

Основные дистрибутивы Linux

Устанавливая операционную систему Microsoft Windows той или иной версии, Вы имеете дело с одним из дистрибутивов, подготовленных компанией Microsoft. Посетив Web-узел Microsoft по адресу http://www.microsoft.com, Вы всегда сможете получить полную информацию о самых новых версиях этой операционной системы, загрузить пакеты исправлений, получить техническую поддержку или воспользоваться любой другой услугой по сопровождению этой операционной системы.

В случае с ОС Linux все не так просто. Не существует никакого единого дистрибутива Linux и никакого централизованного сопровождения этой ОС, поэтому, несмотря на изобилие в Интернет различных ресурсов, посвященных Linux, среди них нет ни одного, который можно было бы считать главным или центральным. Впрочем, на роль такого центра может претендовать Web-узел http://www.linux.org, который мы рекомендуем обязательно посетить (рис. В-1).

Рис. В-1. Узел Web, посвященный операционной системе Linux

Вместо централизованного выпуска одного и того же дистрибутива несколько компаний и организаций распространяют собственные дистрибутивы ОС Linux, собирая их на основе ядра, разработанного Линусом Торвальдсом. Вот перечень только некоторых таких дистрибутивов:

·         RedHat Linux:

·         Caldera Open Linux;

·         S.u.S.E. Linux;

·         Debian Linux;

·         Slackware Linux;

·         Linux Mandrake;

·         TurboLinux;

·         LinuxPPC;

·         LinuxWare;

·         «Красная шапочка» (русская версия ОС RedHat Linux);

·         ASPLinux

Не путайте номер версии дистрибутива Linux с номером версии ядра ОС Linux.

Каждый дистрибутив Linux, поставляемый компаниями или организациями, имеет свою собственную нумерацию версий, отличающуюся от нумерации версии ядра операционной системы. Например, дистрибутив ОС RedHat Linux версии 7.1 комплектуется ядром ОС Linux версии 2.4.

Однако ничто не помешает Вам обновить ядро в уже установленной операционной системе Linux. Таким образом, полный ответ на вопрос «Какую версию ОС Linux Вы используете?» должен состоять из трех частей:

·         название дистрибутива (RedHat Linux, S.u.S.E. Linux и т.п.);

·         номер версии дистрибутива (например, RedHat Linux версии 7.1);

·         номер версии ядра операционной системы Linux (например, 2.4)

Как формируются дистрибутивы ОС Linux?

Так как исходные тексты ядра и всех утилит Linux можно бесплатно загрузить через Интернет, любая компания, организация или частное лицо (например, Вы) может выпустить собственную версию дистрибутива Linux.

В простейшем случае при создании нового дистрибутива Linux можно взять за основу любой существующий дистрибутив, переписать модули установки самой операционной системы и программ, программы администрирования, добавить собственные программы по выбору, внести изменения в существующие программы или драйверы периферийных устройств (если Вы считаете, что в этом есть необходимость) и… дело сделано!

Разумеется, некоторые дистрибутивы Linux распространены больше, некоторые — меньше. А если Вы создадите собственный дистрибутив Linux, и будете пользоваться им только для своих нужд, то о нем вообще никто не узнает. В таком уникальном дистрибутиве можно, например, реализовать собственный подход к защите данных, исключить ненужные и потенциально опасные программы и сделать другие изменения, необходимые для Ваших специфических приложений. Здесь полностью проявляются преимущества Linux как открытой платформы с доступными исходными текстами программ — на платформе Microsoft Windows, MacOS или IBM OS/2 такое было бы невозможно.

Какой дистрибутив ОС Linux выбрать в качестве платформы для Web-приложений?

Вы можете воспользоваться тем дистрибутивом, который Вы лучше знаете, или тем, который у Вас уже есть, так как между ними нет никаких принципиальных отличий, влияющих на пригодность в качестве рабочей платформы Интернет-приложений. Главное, чтобы в дистрибутиве было ядро Linux новой версии (на момент написания этой книги — ядро версии 2.4), а также, чтобы у Вас не возникало проблем с поиском драйверов для периферийного оборудования компьютера.

В своей книге мы будем рассказывать, главным образом, про дистрибутив RedHat Linux версии 7.1. Дистрибутив RedHat Linux пользуется большой популярностью и в нем есть все (или почти все), что нужно для создания информационного узла в Интернете. Полную информацию о дистрибутиве RedHat Linux можно найти в Интернете по адресу http://www.redhat.com.

Преимущества и недостатки Linux

Системных администраторов и разработчиков Web-приложений Linux всегда привлекала надежностью, высокой производительностью, низкой стоимостью (распространяется практически бесплатно), доступностью исходных текстов самой операционной системы и всех приложений, а также развитыми и хорошо работающими сетевыми средствами.

В корпоративной интрасети, а также в Интернете Linux может служить базой для создания:

·         файловых серверов;

·         серверов печати;

·         серверов Web;

·         почтовых серверов;

·         прокси-серверов (proxy);

·         брандмауэров (firewall);

·         серверов управления базами данных (СУБД);

·         видео серверов, предназначенных для трансляции видео через Интернет в реальном времени

Разумеется, у Linux есть и недостатки. Они сказываются, главным образом, при попытке использовать эту ОС в качестве платформы для рабочих станций с офисными приложениями, такими как текстовые процессоры, электронные таблицы, графические редакторы и т.п. На сегодняшний день бесспорный лидер в этой области — операционная система Microsoft Windows.

О бесплатности Linux

Одной из важнейших особенностей Linux является то, что она распространяется бесплатно по открытой лицензии GNU (http://www.linux.org/info/gnu.html) в рамках Фонда бесплатного программного обеспечения (Free Software Foundation). Лицензия GNU разрешает бесплатное распространение программного обеспечения (ПО), но при условии, что вместе с загрузочными модулями программ поставляются и их исходные тексты. Коммерческое использование ПО при этом сильно ограничено.

Как расшифровать аббревиатуру GNU?

Как следует из объяснений на странице Web, посвященной проекту GNU (http://www.gnu.org/gnu/the-gnu-project.html), эта аббревиатура образована в лучших хакерских традициях как рекурсивное сокращение от «GNU's Not Unix» (что означает «GNU — это не Unix»). Вероятно, этим подчеркивается, что создание и распространение бесплатного ПО вместе с исходными текстами не является прерогативой программистов, создающих свои проекты только в среде операционной системы Unix. В настоящее время за разработку ядра операционной системы отвечает Linus Torvalds, поэтому эта работа выполняется централизованно. Что же касается системных и пользовательских программ, то над ними работает бесчисленное количество программистов — любителей и профессионалов.

Оставив в стороне моральные рассуждения насчет необходимости использования лицензионного программного обеспечения (ПО), сделаем некоторые замечания относительно ПО серверов Интернета. Такое ПО находится у всех на виду — любой и каждый может получить доступ к серверу через Интернет и (с некоторыми оговорками) узнать, что на нем установлено. Создавая свой узел в Интернете, позаботьтесь о том, чтобы там находилось только лицензионное ПО.

Создание информационного узла в Интернете на платформе Microsoft Windows может стоить Вам несколько тысяч долларов. Посчитайте сами — примерно $1000 уйдет на приобретение ОС Microsoft Windows 2000 Server, еще столько же — на СУБД Microsoft SQL Server, около $300 — на сервер электронной почты. А еще нужно установить брандмауэр, антивирусы и т.п. Как видите, затраты будут довольно высокими. Аналогичные лицензионные решения на базе коммерческих версий ОС UNIX обойдутся Вам еще дороже.

Если же Вы остановили свой выбор на платформе Linux, то весь этот набор средств, перечисленный выше (разве что за исключением антивирусов), можно бесплатно загрузить из Интернета и установить на законных основаниях, либо купить на лицензионном диске CD-ROM за 50-100 долларов. Причем в подавляющем большинстве случаев Вас не ограничивают ни в количестве серверов, на которые можно установить ПО, ни в количестве клиентских приложений, работающих с этими серверами.

Однако у каждой медали, как известно, есть оборотная сторона. Что касается Linux, то эта ОС и разработанные для нее приложения, как правило, сложнее в установке и сопровождении по сравнению с Microsoft Windows и ее приложениями. Поэтому уменьшив единовременные затраты на приобретение, Вы можете увеличить ежемесячные затраты на сопровождение. Решайте сами, что для Вас важнее.

Сопровождение Linux

Используя промышленное ПО, Вы вправе рассчитывать на качественное сопровождение от производителя. Компания Microsoft, например, предоставляет такое сопровождение, как на платной, так и на бесплатной основе.

Многие системные администраторы и провайдеры Интернета делают выбор в пользу коммерческих операционных систем, не доверяя бесплатным изделиям, созданным энтузиастами (даже высокопрофессиональными). В ответственных случаях это оправдано — приобретая операционные системы, СУБД и другие программные продукты у коммерческих фирм, можно надеется на сопровождение и помощь в сложных ситуациях. Кроме того, коммерческие продукты обязательно снабжаются полным комплектом документации, помогающем в установке и использовании программ.

Что же касается Linux, то сегодня появились коммерческие фирмы, поставляющие эту ОС со всем необходимым окружением за символическую плату и выполняющие платное сопровождение. В качестве примера можно привести компании Caldera и RedHat. К сожалению, плату за сопровождение Linux-систем, как и плату за обучение администрированию Linux, нельзя считать символической.

Хотя это может показаться странным, но в целом стоимость  администрирования систем на базе Linux могут оказаться выше стоимости администрирования таких же систем, но созданных на базе Microsoft Windows. Причина заключается в том, что для администрирования Linux требуются специалисты более высокой квалификации. Однако если в Вашем распоряжении есть необходимые специалисты или Вы справляетесь с администрированием Linux самостоятельно, то, возможно, затраты на сопровождение будут весьма невелики.

В нашей книге мы не рассматриваем вопросы использования Linux на рабочих станциях. Большинство пользователей привыкло к приложениям Microsoft Windows и переход на платформу Linux для них будет болезненным. По нашему мнению, офисные приложения Linux пока еще не догнали по своим возможностям и удобству аналогичные приложения Microsoft Windows. Поэтому мы не считаем, что в ближайшее время Linux вытеснит Microsoft Windows с рабочих станций.

Хотя ОС Linux очень хорошо подходит в качестве платформы для работы Web-приложений в Интернете, но на наш взгляд, для разработки Web-приложений удобнее Microsoft Windows. В этой книге мы рассмотрим технологии, которые позволят разрабатывать Web-приложения на платформе Microsoft Windows, при этом созданные Вами приложения смогут работать в неизменном виде не только на платформе Microsoft Windows и Linux, но и на многих других платформах.

Предварительная установка Linux на новые компьютеры

Нельзя оставить без внимания тот факт, что десятки OEM-производителей персональных компьютеров в разных странах выполняют по желанию своих клиентов предварительную установку Linux на новые серверы или рабочие станции (например, Compaq). Это избавляет пользователей и администраторов Linux от необходимости разбираться с этим, иногда непростым, процессом. Можно купить новый компьютер с Linux, полностью готовый к работе (сервер или рабочую станцию).

Таким образом, сегодня Вы можете надеяться на сопровождение как со стороны поставщиков операционной системы Linux и компьютерного оборудования, так и со стороны производителей всех других приложений, необходимых в офисе.

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

Приложения для Linux

Ценность любой операционной системой определяется, по нашему мнению, наличием  достаточного количества созданных для нее удобных и мощных приложений. Если архитектура ОС и примененные в ней технические решения вызывают восторг специалистов, но по тем или иным причинам для нее не было создано достаточное количество приложений, судьба такой ОС предрешена. Вспомните IBM OS/2. Это была прекрасная операционная система, но где изобилие приложений, созданных специально для нее и способных конкурировать с приложениями Microsoft Windows?

С операционной системой Linux ситуация такова: для нее разработано много качественных приложений, особенно таких, которые нужны для создания информационных узлов Интернета. Это Web-серверы и системы поиска информации, FTP-серверы, серверы электронной почты, прокси-серверы, брандмауэры, и, конечно, СУБД. Большой список программ и систем, разработанных для Linux, можно найти в Интернете по адресу http://www.linux.org.

Приобретая практически даром компакт-диск, например,  с ОС RedHat Linux, Вы получите в свое распоряжение полный набор средств, необходимых для создания мощного Интернет-сервера.

Некоторые крупные производители программного обеспечения обратили свое внимание на ОС Linux и выпустили для этой ОС бесплатные или очень недорогие версии своих продуктов. Теперь на платформе Linux появились такие известные и хорошо себя зарекомендовавшие СУБД, как Sybase SQL Server, Adabas D, Borland Interbase, Oracle, текстовый процессор Word Perfect, пакет офисных приложений Sun Star Office (аналогичный по возможностям и пользовательскому интерфейсу пакету Microsoft Office), а также другие серьезные продукты.

Все это говорит о том, что Linux стала полноценной и признанной ОС, пригодной для решения серьезных задач, в том числе и в Интернете.

Linux и настольные персональные компьютеры

Мы полагаем, что факт проникновения Linux на рынок настольных персональных компьютеров весьма интересен и примечателен. Поэтому, хотя наша книга и не имеет непосредственного отношения к использованию Linux на рабочих станциях, мы сделаем некоторые замечания по этому поводу.

Как известно, платформа UNIX (и, естественно, Linux) долго была малопривлекательной для пользователей, избалованных удобным объектно-ориентированным интерфейсом операционной системы Microsoft Windows и разработанных для нее приложений.

Кроме того, пользователей отпугивала процедура установки Linux или любой коммерческой версии UNIX (а также многих приложений для Linux и UNIX). Эта процедура никогда не сводилась только к запуску программы установки и просмотру за чашечкой кофе рекламных сообщений, а ведь именно к этому привыкли пользователи Microsoft Windows.

Сейчас с появлением коммерческих распространителей Linux, таких как компания RedHat, ситуация с установкой сильно улучшилась, хотя здесь еще не достигнута полная автоматизация, характерная для Microsoft Windows. При установке Linux пользователю приходится отвечать на ряд специфических вопросов, касающихся конфигурации аппаратных и программных средств, а иногда даже загружать явным образом модули периферийных устройств и указывать их параметры.

Скажем даже больше — иногда при установке или настройке Linux приходится перетранслировать ядро операционной системы! Хотя эта процедура и не слишком сложная для администратора, она отпугивает рядового пользователя.

Набор драйверов периферийных компьютерных устройств, подготовленный для Linux, достаточно широк, но все же он не такой обширный, как в Microsoft Windows. Тем не менее, в большинстве случаев Вы сможете установить Linux без особых проблем, не связываясь с установкой дополнительных драйверов или трансляцией исходных текстов ее ядра.

Теперь про объектно-ориентированный пользовательский интерфейс.

Менеджеры файлов и окон для Linux, такие, например, как KDE, очень сильно напоминают по своему внешнему виду и функциональности рабочий стол Microsoft Windows, и даже превосходят его в некоторых отношениях (рис. В-2). Для Linux создано немало приложений с графическим интерфейсом, покрывающим все потребности пользователей настольных компьютеров.

Рис. В-2. Графический интерфейс пользователя KDE в RedHat Linux версии 7.1

В частности, Вы без проблем сможете установить соединение с Интернетом и работать с электронной почтой, серверами Web и FTP, а также с серверами новостей News. Те из Вас, кто имеет опыт работы в Microsoft Windows или IBM OS/2, найдут современные офисные приложения Linux интуитивно понятными и простыми в использовании.

Справедливости ради нужно, однако, заметить, что по скорости работы и функциональности современные настольные приложения Linux пока еще уступают приложениям Microsoft Windows, поэтому Linux и применяется главным образом как платформа для создания серверов.

Однако не исключено, что в результате пробуждения интереса крупных производителей программного и аппаратного обеспечения к Linux через год-другой эта платформа станет столь же удобной для пользователей офисных программ, как и хорошо обжитая платформа Microsoft Windows. При этом стоимость приобретения рабочей станции Linux, «упакованной» всем необходимым лицензионным программным обеспечением, может оказаться намного ниже стоимости приобретения аналогичной по своим возможностям рабочей станции Microsoft Windows.

Открытость Linux

Есть и еще один фактор, благоприятно влияющий на рост популярности Linux. Это открытость операционной системы. Как мы уже говорили, она распространяется на базе лицензионного соглашения GNU, предусматривающего поставку программ с исходными текстами без ограничений на дальнейшее распространение (и модификацию) как самих программ, так и их исходных текстов.

Любой может изменить исходный текст ядра или какой-либо утилиты операционной системы и распространять измененный вариант (как бесплатно, так и за деньги), но он не должен ограничивать других в правах распространения полученных по лицензии GNU программ и исходных текстов.

Открытая платформа Linux — это широкое поле для экспериментов для всех энтузиастов программного обеспечения, и потому она так популярна среди студентов. Что еще, как не изучение исходных текстов, может помочь в изучении принципов работы операционной системы или аппаратуры, а также приемов программирования.

Linux как платформа для приложений Интернета

Исторически сложилось так, что операционная система UNIX и все ее разновидности с самого начала своего существования содержали в своем составе мощные сетевые средства на базе протокола TCP/IP, предназначенные для создания глобальных сетей компьютеров. Это были, в частности, серверы электронной почты и серверы FTP, разработанные для обмена файлами.

Современные версии дистрибутивов операционной системы Linux, такие как, например,  RedHat, включают в себя полный набор средств, необходимых для создания и работы Web-приложений. Ниже мы кратко перечислим эти средства. Подробное описание некоторых из этих средств Вы найдете в нашей книге. О других программах, разработанных для ОС Linux, можно узнать в Интернете по адресу http://www.linux.org (рис. В-3) или из литературы, перечень которой находится в разделе «Библиографический список».

Рис. В-3. Приложения, разработанные для ОС Linux

Сетевые средства Linux

Компьютер, предназначенный для работы Web-приложений, должен быть подключен к Интернету скоростным каналом передачи данных. Обычно такой компьютер размещают на площадке провайдера Интернета и подключают к его локальной сети при помощи обыкновенного сетевого адаптера. Подробно об этом мы рассказали в [1].

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

С целью защиты сервера, предназначенного для работы Web-приложений, от «взлома» со стороны хакеров, Вы можете настроить брандмауэр, входящий в состав Linux. Сетевые средства Linux позволяют также замаскировать реальные адреса IP серверов, что затруднит их «взлом». При этом брандмауэр будет дополнительно выполнять функции прокси-сервера, динамически подменяя реальные физические адреса IP серверов на другие.

Брандмауэры, входящие в состав Linux, поставляются бесплатно. И хотя эти брандауэры не так удобны в настройке, как коммерческие версии, они способны обеспечить необходимый уровень безопасности.

Детальное рассмотрение процедуры установки и настройки брандмауэров выходит за рамки нашей книги. В книгах [10] и [11] подробно изложены методики установки и настройки брандмауэров. Всех, кто занимается системным администрированием сетей, мы адресуем к этим книгам.

Говоря о защите сервера, нельзя не упомянуть антивирусные программы, рассчитанные на работу в операционной системе Linux. Такие программы могут, в частности, проверять все сообщения электронной почты с целью поиска и блокирования файлов приложений (attachments) с компьютерными вирусами. В настоящий момент нам неизвестны версии антивирусов для Linux, поставляющиеся бесплатно на основе открытой лицензии, поэтому, скорее всего, Вам придется довольствоваться коммерческими версиями. Список антивирусных программ для Linux Вы найдете в Интернете по адресу http://www.linux.org. Заметим, что сегодня стали доступны отечественные антивирусы для Linux, созданные Игорем Даниловым (http://www.dials.ru) и Евгением Касперским (http://www.kaspersky.ru).

Web-серверы

Операционная система Linux неплохо себя зарекомендовала как платформа для Web-серверов. Согласно различным статистическим отчетам, опубликованным в прессе, доля Web-серверов в Интернете, созданных на базе Linux, составляет десятки процентов.

Для Linux было разработано много различных серверов Web, некоторые из них используются чаще, некоторые — реже. Мы расскажем только о самых интересных таких серверах, доступных на платформе Linux. Довольно полный список серверов Web можно найти в Интернете по адресу http://www.netcraft.com/survey/servers.html.

CERN HTTPD

Первый Web-сервер с названием CERN HTTPD был создан в  Европейской лаборатории физики элементарных частиц (Conseil Européen pour la Recherche Nucléaire, CERN). Как известно, сотрудник CERN Tim Berners-Lee в 1991 году разработал проект «всемирной паутины» World Wide Web (WWW).

В настоящее время развитие этого сервера прекращено. Сейчас он интересен только для истории и не рекомендуется к использованию. Подробную информацию о сервере CERN HTTPD можно найти в Интернете по адресу http://www.w3.org/Daemon.

Европейская лаборатория физики элементарных частиц (CERN)

Conseil Européen pour la Recherche Nucléaire (CERN) была создана в 1951 году как совет ученых. В 1953 году совет CERN принял решение о создании центральной лаборатории недалеко от Женевы. Официальное название лаборатории — European Organization for Nuclear Research, однако до сих пор используется французская аббревиатура — CERN. Это связано с тем, что слово Conseil, образующее первую букву аббревиатуры CERN, означает «совет», что наиболее точно отражает сущность данной организации.

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

Так как сложные исследования в области ядерной физики немыслимы без автоматизированной обработки данных, в лаборатории были созданы крупные сети компьютеров. Локальная сеть CERN подключена ко многим научным центрам, расположенным в различных странах Европы.

Острая необходимость в высокотехнологичных системах передачи и обработки данных, связанных с организацией и проведением научных исследований, послужила толчком к разработке проекта WWW. Технологии, составляющие основу этого проекта, позволили ученым различных стран быстро обмениваться информацией. Как разработчик технологии WWW, именно CERN сыграла роль инициатора стремительного роста популярности Интернета.

Более подробную информацию о лаборатории CERN Вы найдете на сервере http://cern.web.cern.ch.

NCSA HTTPd

Сервер NCSA HTTPd был разработан в американском Национальном центре по применению супер-ЭВМ (National Center for Supercomputer Applications, NCSA). В свое время в этом центре был создан первый графический Web-браузер.

Сервер NCSA HTTPd является предшественником современного Web-сервера Apache, ставшего одним из наиболее популярных Web-серверов современного Интернета. До появления Apache этот сервер, распространявшийся свободно с исходными текстами, пользовался известностью.

Сегодня разработка сервера NCSA HTTPd, так же как и сервера CERN HTTPD, прекращена. Подробную информацию о сервере NCSA HTTPd можно найти в Интернете по адресу http://hoohoo.ncsa.uiuc.edu.

Apache

Пожалуй, наибольшей популярностью в Интернете пользуется Web-сервер Apache. Бесплатно доступный с исходными текстами на различных платформах, этот сервер обладает высокой производительностью и надежностью.

Сервер Apache имеет модульную структуру, и потому его возможности можно расширять. Он позволяет создавать несколько виртуальных Web-узлов на одном физическом сервере, привязанных к одному адресу IP. Сервер Apache часто применяется провайдерами Интернета для хостинга, т. е. для размещения нескольких виртуальных Web-узлов на одном компьютере.

Что касается активных Web-приложений, то разработчикам доступно несколько распространенных средств создания таких приложений:

·         программы CGI, составленные на языке программирования Perl или С;

·         приложения PHP

Заметим, что перечисленные выше средства имеются и на платформе Microsoft Windows. Это обстоятельство создает предпосылки для разработки Web-приложений, способных работать на различных компьютерных платформах  — UNIX и ее разновидностях, таких как Linux, FreeBSD, Solaris,  а также на платформах Microsoft Windows и MacOS.

Существует свободно распространяемый вариант Web-сервера Apache с названием Apache-SSL, способный работать с протоколом Secure Sockets Layer (SSL). Этот протокол позволяет браузерам обмениваться данными с Web-сервером с применением защиты данных и аутентификации. Вы можете загрузить сервер  Apache-SSL и руководства по его использованию из Интернета по адресу http://www.apache-ssl.org.

В нашей книге мы будем рассказывать главным образом про сервер Apache. Мы также будем упоминать Web-сервер Microsoft Internet Information Server (IIS). Подробное описание процесса установки и настройки сервера IIS Вы найдете в [1].

Web-сервер THTTPD

На наш взгляд, наряду с таким мощным и многофункциональным сервером, как Apache, заслуживает внимания простой, быстрый, надежный и безопасный Web-сервер с названием THTTPD.

Хотя в THTTPD отсутствуют многие возможности, реализованные в Apache, сервер THTTPD может с успехом применяться для создания высокопроизводительных узлов Web, рассчитанных на большое количество посещений в единицу времени. Существует версия этого сервера, доступная на платформе Microsoft Windows.

Реализуя базовые возможности протокола HTTP версии 1.1 и CGI версии 1.1, сервер THTTPD позволяет, тем не менее, создавать достаточно сложные информационные узлы, в том числе интегрированные с базами данных.

FTP-серверы

Протокол передачи файлов File Transfer Protocol (FTP) появился в операционной системе Unix с первых дней ее существования. Для ОС Linux было создано немало серверов и клиентов FTP.

Для чего сервер FTP может потребоваться разработчику Web-приложений?

Если Web-сервер создан на базе ОС Linux, то для загрузки в его каталоги файлов Web-приложения часто используется протокол FTP. При этом после установки Linux Вам придется установить и настроить сервер FTP.

Какой сервер FTP лучше выбрать?

Проще всего воспользоваться сервером WU-FTP, свободно доступным в Интернете по адресу http://www.landfield.com/wu-ftpd. Соответствующее программное обеспечение входит в дистрибутив RedHat Linux, но Вы можете установить и более новую версию, загрузив ее с только что упомянутого Web-узла Интернета.

В Интернете (например, на сервере бесплатного и условно-бесплатного ПО http://www.tucows.com), можно найти и другие FTP-серверы, предназначенные для работы в Linux. Это, например, Pure FTP server, BFTPD, Troll-FTPd и другие.

Серверы электронной почты

Средства передачи электронной почты в виде почтовых серверов и клиентов существовали в операционной системе Unix очень давно. Что же касается Linux, то для этой ОС также были разработаны многочисленные почтовые системы.

Наиболее известны почтовые агенты smail и sendmail, установке и конфигурированию которых посвящено немало книг (см., например, [6]). Эти агенты обеспечивают все необходимое для приема и передачи почтовых сообщений по протоколам POP3 и SMTP. Эти протоколы были нами подробно описаны в [1].

Помимо smail и sendmail, на платформе Linux используются и другие агенты электронной почты, такие, например, как exim, qmail, zmailer и др. Все эти агенты можно бесплатно загрузить с сервера бесплатного и условно-бесплатного ПО http://www.tucows.com.

Таким образом, Linux представляет собой отличную платформу для создания почтовых серверов. Создавая площадку для размещения в Интернете Web-приложений на базе ОС Linux, Вы можете дополнить ее почтовым сервером. При этом разрабатываемые Вами Web-приложения можно дополнить функциями приема и отправки почтовых сообщений через Ваш собственный почтовый сервер (с этой целью можно, разумеется, использовать и почтовый сервер провайдера, но это обычно ведет к дополнительным расходам).

Базы данных

Как мы уже говорили, для операционной системы Linux было разработано большое количество СУБД. Такие серьезные коммерческие СУБД, как Oracle, Sybase, Interbase, Adabas были перенесены на Linux с других операционных систем.

Во многих случаях разработчики Web-приложений могут использовать бесплатную СУБД MySQL, входящую в большинство дистрибутивов Linux. Хотя этой СУБД присущи некоторые ограничения (например, в использованной нами при работе над книгой СУБД MySQL версии 3.23.41 отсутствуют штатные средства работы с транзакциями и хранимые процедуры), ее возможностей будет достаточно, например, для создания Интернет-магазина, форума, каталога товаров, службы объявлений и знакомств и аналогичных Web-приложений.

Хотя в комплекте с СУБД MySQL не поставляется никаких графических средств администрирования, Вы можете бесплатно загрузить такие средства из Интернета. Все необходимые ссылки есть на Web-узлах MySQL, расположенных по адресам http://www.mysql.com и http://www.mysql.org.

Главное окно одного из средств администрирования СУБД SQL с названием MySQL-Front показано на рис. В-4. Здесь показано содержимое одной из таблиц базы данных нашего Web-узла виртуального кадрового агентства Трудоголик.Ру (http://www.trudogolik.ru), исходные тексты которого будут подробно рассмотрены в нашей книге.

Рис. В-4. Программа MySQL-Front, предназначенная для администрирования MySQL

Эта программа позволяет выполнять все необходимые административные действия — создавать базы данных и таблицы, редактировать таблицы и хранящиеся в них данные, запускать программы SQL и т.п. Хотя программа MySQL-Front предназначена для ОС Microsoft Windows, аналогичные средства администрирования имеются и для ОС Linux.

Другая СУБД, заслуживающая внимания — это Inprise Interbase и ее версия с открытой лицензией Firebird. Оставаясь бесплатной, эта СУБД способна работать с транзакциями, триггерами и хранимыми процедурами, что ставит ее в один ряд с другими промышленными СУБД, такими, например, как Oracle и Microsoft SQL Server. Вы можете бесплатно загрузить СУБД Firebird и документацию к ней из Интернета по адресу http://firebird.sourceforge.net.

Инструментальные средства и кросс-разработка Web-приложений

Что же касается инструментальных средств, необходимых для разработки Web-серверов, то такие средства имеются в Linux. Это всевозможные текстовые редакторы с синтаксическим выделением для различных языков программирования, или без него, приложения для администрирования серверов Web и СУБД, редакторы графических изображений и др.

На рис. В-5 мы показали главное окно мощного и удобного редактора HTML с названием Bluefish. Этот редактор и документацию по его использованию можно бесплатно загрузить из Интернета по адресу http://bluefish.openoffice.nl.

Рис. В-5. Главное окно редактора Bluefish

Как видите, редактор Bluefish может выделять синтаксические конструкции HTML, обладает богатыми инструментальными панелями и приятным пользовательским интерфейсом. К сожалению, без установки в Linux шрифтов с кириллицей в кодировке Windows-1251 он не может отображать страницы HTML, подготовленные в операционной системе Microsoft Windows, но эту проблему можно решить.

Для Microsoft Windows создано большое количество высококачественных инструментальных средств, которые можно использовать для разработки Web-приложений Linux. Это удобно, если одни и те же разработчики часто создают Web-приложения для различных платформ и с применением различных технологий. Сегодня Вам нужно сделать Web-сервер для Linux с применением Perl, а завтра — для Microsoft Windows с использованием технологии Active Server Pages (ASP). При этом было бы проще использовать какую-то одну среду разработки, особенно если разработка всех Web-приложений ведется на одном компьютере.

Платформа Microsoft Windows представляется нам довольно удобной для разработки Web-приложений. В то же время тестирование и размещение созданных там приложений Вы сможете проводить в среде Linux.

На рис. В-6 мы показали главное окно мощного средства разработки Web-приложений Allaire ColdFusion Studio, предназначенного для Microsoft Windows. Подробную информацию об этом инструменте, а также о других приложениях, разработанных компанией Allaire, Вы найдете в Интернете по адресу http://www.allaire.com.

Рис. В-6. Средство разработки Web-приложений Allaire ColdFusion Studio

Помимо визуального проектирования HTML страниц, это средство позволяет редактировать в режиме синтаксического выделения документы HTML, сценарии Perl, PHP и ASP, содержит удобные и мощные инструментальные панели, а также средства загрузки разработанных приложений на сервер, подключенный к Интернету.

Разумеется, Вы можете сделать всю работу и в Linux. Большой список инструментальных средств, предназначенных для работы в Linux, Вы найдете на Web-узле http://www.linux.org. Кроме того, по мере изложения материала мы будем рассказывать о некоторых инструментальных средствах для платформ Linux и Microsoft Windows.

При начальном изучении Web-сервера Apache Вам может пригодиться визуальное средство конфигурирования этого сервера, входящее в дистрибутив ОС RedHat Linux версии 7.1 (рис. В-7).

Рис. В-7. Конфигуратор Web-сервера Apache

В дальнейшем Вы будете настраивать этот сервер таким же образом, что и все основные серверные программы Linux — посредством редактирования текстовых конфигурационных файлов.

Что нужно знать и уметь для работы с книгой

Наша книга ориентирована в первую очередь на тех разработчиков Web-приложений, которые уже имеют опыт создания Web-узлов (хотя бы статических, без программных расширений CGI, ISAPI, без применения технологий PHP или ASP), и опыт размещения этих узлов в Интернете. Мы также полагаем, что Вы знакомы с языком разметки гипертекста HTML, а также умеете составлять несложные сценарии на языке программирования JavaScript.

Для получения начальных сведений о технологиях Интернета, необходимых для работы с этой книгой, мы адресуем Вас к нашей книге с названием «Разработка Web-приложений. Практическое руководство» [1], которая вышла в издательстве «Русская Редакция» (http://www.rusedit.ru). По мере изложения материала мы будем делать ссылки и на другую литературу, посвященную этой теме.

Мы также полагаем, что Вы уже научились устанавливать и администрировать операционную систему Linux. Хотя при изложении материала мы ориентируемся на дистрибутив RedHat Linux версии 7.1, будет полезен опыт работы с любыми другими дистрибутивами Linux, а также с любыми Unix-подобными операционными системами. В качестве учебных пособий по Linux мы рекомендуем книги [7], [8] и [9].

Если Вы занимаетесь не только созданием Web-приложений, но и их размещением в Интернете на собственных серверах, а также администрируете локальную сеть своей Web-студии, подключенной к Интернету, необходимо познакомится с принципом работу, приемами настройки и установки межсетевых экранов (брандмауэров). В этом Вам окажут большую помощь книги [10] и [11].

По мере изучения материала мы будем адресовать Вас и к другой литературе, в частности, к описаниям языка программирования Perl, а также языка сценариев, применяемых при создании PHP-приложений.

Проекты, на базе которых создана эта книга

При написании данной книги мы использовали опыт создания реальных проектов в Интернете, накопленный нами и нашими партнерами. В этом разделе мы кратко расскажем о некоторых таких проектах:

·         узел Web проекта восстановления данных DataRecovery.Ru;

·         виртуальное кадровое агентство Трудоголик.Ру;

·         узел Web IV международного симпозиума «Сердечно-сосудистая и интервенционная радиология»,

Узел Web службы восстановления данных DataRecovery.Ru

Служба восстановления данных DataRecovery.Ru предоставляет услуги по ликвидации последствий сбоев программного обеспечения и аппаратуры, повлекших за собой потерю компьютерных данных, а также консалтинговые услуги в области антивирусной защиты и сохранности данных.

Созданный авторами этой книги узел Web службы DataRecovery.Ru (рис. В-8) расположен по адресу http://www.datarecovery.ru и адресован, в первую очередь, тем, кто нуждается в услугах по восстановлению данных и антивирусной защите. Посетителям предоставляется возможность заполнить подробную анкету с описанием случившейся беды, а также вызвать через Интернет экстренную помощь (пока только по Москве). Сообщение об экстренном вызове передается оператору службы DataRecovery.Ru непосредственно на пэйджер или мобильный телефон.

Рис. В-8. Узел Web службы восстановления данных DataRecovery.Ru

Ну и конечно, на этом узле мы выложили подробные рекомендации о том, что нужно делать в случае уничтожения данных, а чего не следует делать категорически. Читайте внимательно — это поможет Вам сохранить то, что еще можно восстановить после краха, так как неумелые попытки «добыть» файлы из разрушенного (логически или физически) диска зачастую лишают профессионалов возможности восстановить данные.

В нашей книге мы расскажем о способе, который мы применили, чтобы получать экстренный вызов на пейджер или мобильный телефон нашего оператора. Возможно, наш опыт окажется Вам полезен, и Вы именно таким образом организуете оперативный прием сообщений от посетителей Вашего узла Web.

Виртуальное кадровое агентство Трудоголик.Ру

Другой наш проект, который мы подробно описали в этой книге — это Web-узел виртуального кадрового агентства Трудоголик.Ру, расположенный в Интернете по адресу http://www.trudogolik.ru (рис. В-9).

Рис. В-9. Узел Web виртуального кадрового агентства Трудоголик.Ру.

Виртуальное кадровое агентство Трудоголик.Ру работает бесплатно. На страницах агентства работодатели могут оставить сведения об имеющихся в их распоряжении вакансиях. Эти сведения будут храниться в базе данных агентства, доступной для просмотра всем желающим.

Те же, кто ищет работу, смогут записать в эту базу данных свои резюме.

И работодатели, и соискатели рабочих мест смогут найти в базе данных нужную им информацию, пользуясь несложной системой поиска.

На примере узла Web http://www.trudogolik.ru читатели нашей книги научатся пользоваться языком Perl для составления программных расширений CGI сервера Web. Кроме того, мы расскажем о том, как осуществить доступ из таких программ CGI к базам данных MySQL и почтовым серверам.

Мы рассмотрим процедуру регистрации пользователей с автоматической проверкой регистрационной информации (адреса E-Mail). Кроме того, мы расскажем об использованной в этом агентстве системе автоматизированного восстановления забытых паролей и процедуре автоматического обслуживания базы данных.

Узел Web симпозиума «Сердечно-сосудистая и интервенционная радиология»

В нашей книге мы расскажем о Web-узле, созданного для проведения IV международного симпозиума «Сердечно-сосудистая и интервенционная радиология» (http://forum.angio.ru). Этот симпозиум проходил в Москве осенью 2001 года. Мы расскажем о наиболее интересных программных решениях этого Web-узла (рис. В-10).

Рис. В-10. Главная страница Web-узла симпозиума http://forum.angio.ru

Содержимое книги

В первой главе нашей книги рассказывается о создании стенда, предназначенного для разработки Web-приложений. Перечисляются требования к аппаратному и программному обеспечению, рассматриваются вопросы создания стендов разной сложности, а также их защиты от атак хакеров.

Вторая глава полностью посвящена установке операционной системы RedHat Linux. Основной упор делается на моментах, имеющих отношение к использованию RedHat Linux.в качестве платформы для создания Web-узлов Интернета, а также методике организации двойной загрузки RedHat Linux и Microsoft Windows.

В третьей главе мы подробно рассказали об установке и настройке Web-сервера Apache, играющего роль ядра Web-приложений. Мы рассмотрим методику создания виртуальных узлов Web, управление доступом и приведем другую информацию, необходимую для использования этого Web-сервера.

Четвертая главе нашей книги представляет собой краткое введение в программы CGI. Эти программы являются важнейшим средством создания активных Web-приложений. Мы рассмотрим технологии создания Web-приложений, расскажем о формах HTML, а также о способах передачи данных программам CGI.

Пятая глава посвящена созданию программ CGI на языке Perl. В ней рассказано об установке интерпретатора Perl, о создании виртуальных каталогов программ Perl, рассмотрены многочисленные примеры программ CGI, предназначенные для решения задач, чаще всего встречающихся при разработке Web-приложений. Это обработка форм, действия с Cookie, использование шаблонов HTML, интеграция Web-приложения с почтовым сервером и т.д.

В шестой главе мы рассказали об установке и настройке СУБД MySQL, с помощью которой можно создавать Web-узлы, интегрированные с базами данных. Рассмотрены способы создания баз данных и таблиц, а также удобная программа администрирования MySQL-Front.

В седьмой главе рассмотрены способы создания программ Perl, работающих с базами данных посредством универсального интерфейса DBI, а также модуля Win32::ODBC. Описан набор функций, упрощающих доступ к базам данных средствами DBI и обработку ошибок.

В восьмой главе Вы найдете подробное описание Web-приложения, созданного специально для этой книги, — виртуального кадрового агентства Трудоголик.Ру (http://www.trudogolik.ru). Подробно описан пользовательский интерфейс и его реализация этого Web-приложения, в том числе специального административного Web-узла, управляющего работой виртуального кадрового агентства.

Описанию другого реального проекта, созданного с применением описанных в этой книге технологий, мы посвятили девятую главу. В ней рассказано о внутренней «кухне» узла Web симпозиума «Сердечно-сосудистая и интервенционная радиология» http://forum.angio.ru.

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

В одиннадцатой главе мы рассказали о функциях PHP, предназначенных для доступа к базам данных MySQL. Приведены примеры, иллюстрирующие выполнение основных операций с базами данных, в том числе с использованием шаблонов HTML.

Приложение 1 нашей книги представляет собой статью о выборе провайдеров для размещения Web-узла. Мы написали эту статью специально для Web-узла службы ZeroHops.Ru (http://www.zerohops.ru).

В конце книги имеется библиографический список, в котором представлена дополнительная литература.

Благодарности

Авторы книги выражают благодарность генеральному директору издательства компьютерной литературы «Русская Редакция» (http://www.rusedit.ru) Михаилу Царейкину и главному редактору Андрею Козлову за то, что они предоставили нам возможность написать эту книгу и высказали немало ценных замечаний по ее содержанию и стилю изложения материала.

Мы благодарим редактора Юлию Леонову, выполнившую огромную и кропотливую работу по редактированию наших книг, вышедших в издательстве «Русская Редакция».

Огромную помощь в создании книги и в работе над Web-проектами нам оказал генеральный директор компании Spektrum Web Development (http://www.spectrum.org.ru) Максим Синев. Мы благодарим его за предоставление доступа к Интернету и возможность размещения наших серверов http://www.frolov.pp.ru и http://www.DataRecovery.ru на скоростной магистрали M9.

Об авторах

Авторы этой книги знакомы читателям по сериям книг «Библиотека системного программиста» и «Персональный компьютер. Шаг за шагом» (вышедших в издательстве «Диалог-МИФИ»), по книге «Базы данных в Интернете» и серии книг «Ваш спутник в Интернете», подготовленных издательством компьютерной литературы «Русская Редакция», а также по многочисленным статьям в компьютерных журналах и газетах.

Помимо разработки Web-проектов, написания книг, статей и документации для программных комплексов, авторы разработали ПО для восстановления компьютерных данных и непосредственно занимаются восстановлением данных, разрушенных в результате аппаратных или программных сбоев. Вы сможете ознакомиться с этим проектом на Web-узле по адресу http://www.DataRecovery.ru.

Многие работы представлены на авторском компакт-диске, о содержимом которого и условиях приобретения рассказано на сервере http://www.frolov.pp.ru.

Авторы этой книги доступны по электронной почте (alexandre@frolov.pp.ru, grigory@frolov.pp.ru, a_frolov@hotmail.com) или через сервер Web — http://www.frolov.pp.ru.

[Назад] [Содержание] [Дальше]