Практика применения Perl, PHP, Apache, MySQL для активных Web-сайтов (С) Александр Фролов, Григорий Фролов, 2002 1. Стенд для создания Web-приложений 1. Стенд для создания Web-приложений Устройство бесперебойного питания Заземление компьютерного оборудования Выбор инструментальных средств разработки Web-приложений Подготовка исходных текстовых и графических материалов Создание программных расширений сервера Web Подготовка Web-приложений для Linux в среде Microsoft Windows Стенд для разработки сложных Web-приложений Рабочая станция Web-программиста Сервер разработки Web-приложений Защита от вирусов и атак хакеров Установка антивирусных программ
Так как наша книга имеет практическую направленность, то с самых первых ее страниц мы займемся вполне конкретным делом, а именно — сборкой и настройкой стенда для создания Web-приложений. Что это за стенд и зачем он нужен? Процесс создания Web-приложения — сложный и многоступенчатый. Мы перечислили основные шаги в [1]. Заметим, что прежде чем размещать Web-приложение в Интернете и допускать к нему посетителей, необходимо убедиться в том, что оно отлажено и не содержит ошибок (ну хорошо, по крайней мере, не содержит известных Вам ошибок…). Используя стенд, Вы сможете разработать и проверить Web-приложение, а также выполнить установку на тестовый сервер, имитирующий тот сервер, где это приложение будет в дальнейшем работать (сервер провайдера или Ваш сервер, установленный на площадке провайдера). В зависимости от масштабов Вашей деятельности для разработки и отладки Web-приложений может потребоваться один или несколько компьютеров, объединенных в локальную сеть и подключенных к Интернету. Создавая такой стенд, необходимо выбрать аппаратное и программное обеспечение, выполнить его установку и настройку. Особенное внимание следует уделить защите от компьютерных вирусов и атак хакеров, которые могут полностью уничтожить результаты Вашего труда. Мы расскажем о нескольких возможных конфигураций стенда, пригодных для решения тех или иных задач. Вы можете выбрать наиболее подходящий вариант с учетом своих требований и финансовых возможностей. Конфигурация простейшего стенда, представленная на рис. 1-1, выбрана из соображений максимальной экономии средств. Фактически она рассчитана на работу одного человека и потому пригодна разве лишь для домашней Web-студии. Рис. 1-1. Простейший стенд Предполагается, что вся работа по созданию и отладке Web-приложения будет выполняться на одном компьютере, имеющем соединение с Интернетом через модем или по выделенной линии. Web-приложения, созданные в студии, размещаются в Интернете на сервере провайдера. Подробно о выборе провайдера и размещении Web-приложений в Интернете мы рассказали в [1], а также в приложении 1 к нашей книге. Как может выглядеть сценарий разработки Web-приложений в такой студии? Вначале Вы готовите страницы HTML и программные компоненты Web-приложения, отлаживая их на компьютере Web-студии. Для этого Вам потребуется установить на компьютер сервер Web, например, Apache (если приложение разрабатывается для платформы Linux) или Microsoft IIS (для приложений, которые будут работать на платформе Microsoft Windows). После отладки файлы Web-приложения загружаются через модем в Интернет, на сервер, установленный у провайдера. Обычно такая загрузка выполняется с применением протокола FTP. Окончательная проверка созданного Web-приложения выполняется уже на рабочем сервере, подключенном к Интернету через локальную сеть провайдера. Конечно, описанная выше схема не идеальна, так как к аппаратному и программному обеспечению единственного компьютера Web-студии предъявляются противоречивые требования. Кроме того, недостаточно хорошо отлаженное Web-приложение может нарушить нормальную работу сервера, установленного у провайдера, в результате чего он может даже «зависнуть». Тем не менее, при помощи простейшего стенда Вы все же сможете создавать полноценные Web-приложения. Рассмотрим состав аппаратных и программных средств стенда. Для создания простейшего стенда нужно приобрести один компьютер, оснащенный модемом и принтером. Для подготовки иллюстраций, размещаемых на страницах Web-узлов, возможно, придется подключить к компьютеру сканер и цифровой фотоаппарат. Как выбрать компьютер, чтобы он был пригоден для создания Web-приложений? Мы рекомендуем оснастить компьютер стенда процессором Pentium III с тактовой частотой не ниже 500 Мгц или более мощным, либо процессором Pentium IV. Такой процессор позволит Вам использовать в работе современные инструментальные средства, довольно требовательные к вычислительной мощности компьютера. Заметим, что оснащение компьютера двумя процессорами, конечно, даст положительный эффект, однако, возможно, он будет не так велик, как хотелось бы. Дело в том, что многие инструментальные средства ничего не выигрывают от возможности распараллеливания вычислений, так как они выполняют последовательную обработку данных. Что же касается сервера Web-приложений, установленного в Интернете, то там, безусловно, выигрыш от использования второго процессора будет заметен. При использовании операционной системы с симметричным мультипроцессированием разные процессоры смогут одновременно обрабатывать потоки, имеющие отношение к запросам разных посетителей Вашего узла Web. Оперативная память стоит относительно недорого, поэтому ее мы рекомендуем установить как минимум 256 Мб. В крайнем случае, хватит и 128 Мб. Требования к оперативной памяти определяются конфигурацией используемых программных средств. Указанного нами объема должно хватить для разработки и отладки Web-приложений как на платформе Linux, так и на платформе Microsoft Windows. Мы рекомендуем приобрести один жесткий диск объемом не менее 40 Гб, а еще лучше — два таких диска. Сегодня стоимость жестких дисков сильно понизилась, поэтому «большие» диски стали доступны даже тем, кто не готов потратить на оборудование компьютера крупную сумму денег. Диск большого объема позволит установить на один компьютер сразу несколько операционных систем (например, Microsoft Windows 2000 Server и Linux), хранить архивы работ, документации и программного обеспечения. Приобретая два диска, Вы получите возможность устанавливать операционные системы на разные диски. Это упрощает сам процесс установки, а также, что немаловажно, процесс переустановки операционных систем — переустанавливаемый диск может быть переформатирован без риска разрушения информации, хранящейся на другом диске. Кроме того, учтите, что в главной загрузочной записи Master Boot Record (MBR) может быть описано только четыре раздела. Операционная система Linux требует для себя сразу два раздела (один — собственно для установки файлов ОС, а второй — для раздела свопинга оперативной памяти). Установив два физических диска, Вы сможете увеличить максимальное количество экземпляров операционных систем, установленных на компьютере. Единицы измерения информации В нашей книге мы будем часто приводить значения единиц измерения информации. При этом используются различные единицы измерения, что иногда приводит к путаннице. Как известно, объем информации исчисляется в битах (bit). Бит может иметь только два значения — 1 или 0. Для представления символьной информации (например, букв и цифр) используется более крупная единица измерения — 1 байт (byte), содержащая 8 бит. Если речь идет о количестве информации (число символов в тексте, размер файла), то наряду с байтом используют производные единицы, такие, как килобайт — кбайт (Kbyte), мегабайт — Мбайт (MByte), гигабайт — Гбайт (Gbyte) и терабайт — Tбайт (TByte). Считается, что 1 Кбайт = 1 024 байт, а не 1 000, как это можно было бы подумать. Соответственно, 1 Мбайт = 1 024 Кбайт, 1 Гбайт = 1 024 Мбайт, а 1 Тбайт = 1 024 Мбайт. Выбор числа 1 024 вместо 1 000 связан с широким использованием в вычислительной технике двоичных и шестнадцатеричных чисел (известная шутка: начинающий программиста думает, что в одном килобайте 1 000 байт, а опытный — что в одном километре 1 024 метра). Заметим, что некоторые производители жестких дисков считают, что в 1 Мбайте содержится 1 000 000, а не 1 048 576 байт. Это позволяет им «добавлять» 48 576 байт на каждый Мбайт емкости диска. Пользователь, однако, не получит от этого никакого выигрыша, так как производители программного обеспечения, заявляя о требованиях программ к памяти, имеют в виду «полновесные», а не «облегченные» мегабайты. Так как Web-узлы содержат помимо текста еще и иллюстрации, скорее всего Вам потребуется сканер и цифровой фотоаппарат. В комплекте с программами распознавания текста сканер поможет Вам при вводе текстовой информации, предоставленной заказчиком в печатном виде. Так как из соображений увеличения скорости загрузки размер файлов иллюстраций, размещаемых в Интернете, обычно невелик, нет особого смысла тратить деньги на приобретение дорогостоящего сканера с высоким разрешением. Если сканер не используется ни для чего другого, помимо подготовки иллюстраций для Web-узлов и распознавания текста, то разрешение сканера 600 точек на дюйм представляется нам вполне достаточным. Такое разрешение имеют практически все современные недорогие офисные сканеры. По этим же соображениям для подготовки иллюстраций, предназначенных для размещения на Web-сервере, можно воспользоваться недорогим цифровым фотоаппаратом. Как правило, размера фоточувствительной матрицы в 1-2 миллиона пикселов хватит для подготовки достаточно качественных иллюстраций к Web-страницам. Мы также рекомендуем Вам оснастить свою Web-студию принтером. Принтер нужен не только для распечатки исходных текстов программ и документации, но и, в частности, для тестовой печати содержимого страниц создаваемого Вами сервера. Дело в том, что одна и та же страница Web-сервера может выглядеть совершенно по-разному на экране и на бумаге после печати. Если предъявляются повышенные требования к результату распечатки страниц Web-узла, то разработчику Web-приложения приходится создавать второй комплект страниц узла специально для печати. Экономная конфигурация стенда предполагает подключение компьютера к Интернету посредством модема. Мы рекомендуем приобрести профессиональный модем Courier или Zyxel с максимальной скоростью передачи данных не менее 36,6 Кбит/с. Учтите, что качество соединения с Интернетом зависит не только от модема (и в ряде случаев даже не столько от модема), сколько от качества телефонной линии и оборудования, установленного на Вашей автоматической телефонной станции (АТС). Цифровые АТС позволяют устанавливать соединение на скоростях порядка 56 Кбит/с, что требует, разумеется, наличия современных модемов с Вашей стороны и со стороны провайдера Интернета. Скорость передачи данных Что же касается скорости передачи информации, то ее можно измерять количеством передаваемых или принимаемых за одну секунду бит (бит/с) или байт (байт/с), однако и здесь не все так просто. Как правило, при передаче данных вместе с байтами и битами полезной информации передаются биты и байты служебной информации. В результате эффективная скорость передачи данных снижается. Например, во многих случаях данные передаются последовательно, бит за битом. Так, например, работает модем, с помощью которого Вы будете, скорее всего, подключаться к Интернету. При этом на каждые 8 бит «полезной» информации приходится передавать 2 бита служебной информации. Когда говорят о такой единице измерения скорости передачи данных, как биты в секунду — бит/с (Bits Per Second, bps), то имеют в виду скорость с учетом всех передаваемых битов данных, как полезной, так и служебной информации. Единица измерения скорости символы в секунду (Characters Per Second, cps) подразумевает измерение скорости передачи только полезной информации. Таким образом, для одного и того же канала, скорость, указанная в cps, будет меньше, скорости, указанной в bps, умноженной на 8 (так как для передачи 1 байта нужно дополнительно передавать биты служебной информации). Кроме того, при вычислении скорости в cps учитывается возможная упаковка информации, выполняемая модемами. Она исключает передачу избыточной информации. Известна и еще одна единица измерения скорости передачи данных — боды (baud). Эта число изменений сигнала, передаваемого модемом, за одну секунду, оно зависит от технических особенностей модема. Обычно скорость, выраженная в бодах, превосходит скорость, выраженную в бит/с. Для профессиональной разработки и сопровождения Web-приложений лучше всего подключить компьютер Web-студии к Интернету посредством выделенной линии. Здесь у Вас есть несколько возможностей: · подключение к домашней локальной сети, имеющей «выход» в Интернет; · использование обычной телефонной линии и аппаратуры ADSL; · подключение с помощью дополнительной линии на основе радиомодемов, медных проводов или оптоволоконной линии. Первый вариант с использованием домашней локальной сети выглядит наиболее привлекательным с точки зрения финансовых затрат. О каких домашних локальных сетях здесь идет речь? Во многих городах существуют так называемые домашние локальные сети, проложенные, как правило, в жилых многоэтажных домах. Эти сети подключаются к Интернету скоростными каналами связи, такими как радиомодемы, асимметричные цифровые абонентские линии (Asymmetric Digital Subscriber Line, ADSL), цифровые сети с интегрированными услугами (Integrated Services Digital Network, ISDN) и т.п. Жители Москвы могут найти такие сети в своем районе при помощи каталога домашних сетей, расположенного по адресам http://lan.net.ru, http://homenetworks.ru и http://www.mosnet.ru. Посетите также Web-узел http://www.enals.com компании ENALS. При этом где-то в доме (на чердаке, в коридоре или в одной из квартир) располагается маршрутизатор, а в квартиры прокладывается локальная сеть на базе витой пары. Хотя скорость передачи данных в домашней локальной сети может достигать 10 Мбит/с или даже 100 Мбит/с, реальная скорость работы с Интернетом может оказаться ниже. Она определяется пропускной способностью оборудования, при помощи которого локальная сеть подключена к провайдеру Интернета. Если это радиомодем, то, скорее всего, скорость не будет превышать 2 Мбит/с. Оборудование ADSL позволяет достичь скорости загрузки данных из Интернета порядка 7 Мбит/с, а скорости передачи данных в обратном направлении — порядка 1,5 Мбит/с. Учтите, что канал домашней локальной сети используется совместно всеми пользователями этой сети, поэтому в результате загрузки канала другими пользователями средняя скорость передачи данных будет меньше максимально возможного значения. Второй и третий варианты подключения компьютера Web-студии (с использованием телефонной линии и ADSL, а также через радиомодем или дополнительную линию, медную или оптоволоконную) обычно позволяет достичь лучших результатов, однако затраты на создание и эксплуатацию такого канала могут быть значительными. Реально эти варианты подходят для подключения к Интернету локальных сетей средних и крупных компаний. Относительно недорог вариант использования асимметричного спутникового доступа, при котором данные из Интернета в компьютер поступают через скоростной спутниковый канал связи, а в обратном направлении — через обычную телефонную линию с применением модема. Таким способом подключают как отдельные компьютеры, так и локальные сети. Асимметричный спутниковый доступ в Интернет поможет при загрузке файлов и просмотре содержимого Web-узлов, но не принесет никакой пользы для загрузки файлов разработанных Вами Web-узлов на серверы, расположенные у провайдера, а также для администрирования этих серверов. При выполнении этих операций данные будут передаваться через медленный модем. Мы испытали «на себе» асимметричный спутниковый доступ, предоставляемый в Москве компанией «НТВ-Интернет» (до того как эта компания прекратила свое существование). Приобретенный нами комплект оборудования состоит из тарелки диаметром 0,6 м, твин-конвертора, позволяющего подключать к тарелке одновременно два приемных устройства (ресивера), ресивер и адаптер DVD типа SkyMedia-300. Ресивер нужен для просмотра телевизионных каналов. Для доступа в Интернет мы установили адаптер SkyMedia-300 в персональный компьютер и подключили его коаксиальным кабелем к одному из выходов твин-конвертера. В целом система показала себя вполне работоспособной, однако ее настройка отняла у нас немало времени и сил. Проблемы были связаны с конфликтами по прерываниям в работе звукового адаптера и с настройкой TCP/IP. Нам пришлось обращаться за консультациями в службу поддержки компании «НТВ-Интернет» и экспериментировать самим, чтобы разобраться, как следует настроить параметры BIOS, отвечающие за распределение ресурсов периферийных устройств. При работе в среде операционной системы Microsoft Windows 2000 Server мы получили скорость загрузки файлов до 200 Кбайт/с(!). Учтите, что эта скорость сильно зависит от загруженности сервера, на котором хранятся данные. Немалое значение имеет также пропускная способность канала передачи данных, посредством которого этот сервер подключен к основным магистралям Интернета. Хотя адаптер SkyMedia-300 допускает просмотр телевизионных каналов на экране персонального компьютера, на момент написания книги эта возможность реализована только в операционной системе Microsoft Windows 98. Загрузка данных в системе «НТВ-Интернет» выполняется только с применением протоколов HTTP и FTP. Кроме того, для достижения приемлемых скоростных характеристик Вам придется позаботиться о надежном модемном соединении с провайдером на скорости свыше 24—26 Кбит/с. Сегодня в Москве услуги спутникового доступа в Интернет оказывает компания Omicom (http://www.omicom.ru). Она подключает своих пользователей к зарубежной спутниковой системе Europe Online. Подробную информацию об этой системе Вы найдете по адресу http://www.europeonline.com. По последним сведениям, которыми располагают авторы этой книги, компания Europe Online собирается со временем отказаться от предоставления спутникового доступа к Интернету, ограничившись только службами скоростной загрузки файлов через спутник. Поэтому прежде чем решиться на приобретение комплекта спутникового доступа к Интернету, мы советуем Вам рассмотреть другие варианты подключения, в частности, подключение по выделенной линии. Устройство бесперебойного питания В любом случае для электропитания компьютера необходимо использовать устройство бесперебойного питания Uninterruptable Power Supply (UPS), особенно если Вы работаете дома, или если часто пропадает напряжение в электропитающей сети. Необходимая мощность зависит от количества компьютеров, энергопотребления монитора и другого периферийного оборудования, подключенного к UPS. Для одного компьютера будет достаточно мощности UPS, равной 650-700 Вт. Заметим, что ни при каких обстоятельствах нельзя подключать к UPS лазерный принтер, так как при печати он потребляет слишком большую мощность. Заземление компьютерного оборудования Организуя электропитание компьютера и периферийных устройств (принтера, сканера и т. п.), позаботьтесь о надежном заземлении. В офисах и современных жилых домах устанавливаются электрические розетки с заземляющим контактом. Для подключения компьютерного оборудования можно пользоваться только такими розетками. При необходимости обратитесь за помощью к электрику, чтобы он вывел провод заземления с электрического щитка. Не пытайтесь решить проблему заземления самостоятельно, подключая заземляющий контакт электрической розетки к батарее отопления, ванной или к другому оборудованию, которое, по Вашему мнению, надежно заземлено. Это может привести к поражению током Вас, жильцов Вашей квартиры или соседей. На выбор программных средств стенда оказывают влияние несколько факторов. Прежде всего, это тип операционных систем, на которых будут работать разрабатываемые Вами Web-приложения. Необходимо также учитывать наличие на той или иной платформе мощных и удобных средств проектирования и отладки Web-приложений. Не последнюю роль играют Ваши привычки, а также имеющиеся навыки по использованию тех или иных средств. Один из главных вопросов — выбор операционных систем, установленных на единственном компьютере простейшего стенда Web-студии. Если Вы будете разрабатывать Web-приложения только для платформы Linux, то можете либо ограничиться установкой этой ОС на компьютер Web-студии, либо подготовить систему с двойной загрузкой ОС Linux и Microsoft Windows. В том случае, если одной из целевой платформ разработки будет Microsoft Windows, ограничиться установкой Linux Вам не удастся. Более того, Если Ваши приложения работают не только на платформе Microsoft Windows 2000 Server, но и на платформе Microsoft Windows NT 4.0, то, возможно, придется установить и эту, устаревшую ОС. Проблема здесь в том, что не все средства администрирования, входящие в состав Microsoft Windows 2000 Server, смогут работать с сервером Microsoft Windows NT 4.0 (так себя ведут, например, средства управления сервером индексирования Microsoft Index Server, входящего в комплект Web-сервера Internet Information Server [IIS] версии 4.0). На выбор операционной системы оказывает влияние и состав применяемых Вами инструментальных средств, так как некоторые из них могут работать только в среде какой-либо одной ОС (чаще всего это Microsoft Windows). Если количество и размер жестких дисков позволяет, мы рекомендуем Вам установить на компьютер все операционные системы, которые используются или планируются к использованию на Ваших серверах, установленных у провайдера. Только в этом случае можно будет выполнить полноценное тестирование Web-приложений в естественной для них «среде обитания». Выбор инструментальных средств разработки Web-приложений В отличие от обычного программиста, создающего приложения с консольным или оконным интерфейсом, разработчик Web-приложений сталкивается с необходимостью использования самых разных инструментальных средств. Некоторые из этих средств будут нужны для создания страниц HTML, некоторые — для разработки программных расширений сервера Web или других программных модулей, а некоторые — для предварительной обработки текстовой, графической, звуковой или видео информации, размещаемой в каталогах узла Web. Поэтому Вам вряд ли удастся ограничиться каким-то одним инструментальным средством, например, Borland Delphi, Microsoft Visual Studio, Allaire HomeSite или каким-то другим. Подготовка исходных текстовых и графических материалов Прежде всего, Вам потребуются средства для подготовки исходного текстового или графического материала, размещаемого на Web-узле. Заказчик может предоставить исходные документы в электронном или бумажном виде, причем формат электронных документов встречается самый разный — от простого текстового файла до файлов текстовых процессоров, электронных справочных систем и систем верстки журналов и книг. Как правило, текстовый материал необходимо преобразовать в формат HTML. При этом если документ представлен в бумажном виде, его придется либо набрать вручную, либо отсканировать, а потом передать программе автоматического распознавания текста, такой, например, как FineReader. Перед тем как размещать на Web-узле графические иллюстрации, звуковые фрагменты или видеофрагменты, их необходимо обработать. Если графические иллюстрации представлены в бумажном виде, то их требуется еще и отсканировать. Обработка графических изображений, звуковых фрагментов и видеофрагментов должна включать в себя оптимизацию размера полученного файла, так как из соображений увеличения скорости страниц Web-узла не рекомендуется размещать на них файлы с размером более 30‑100 Кбайт. По нашему мнению, на сегодняшний день наиболее мощные и удобные инструментальные средства подготовки текстовых и графических изображений имеются на платформе Microsoft Windows. Это, конечно, Microsoft Office, Adobe Photoshop, Corel Draw и другие аналогичные приложения. Несмотря на то, что делаются попытки создания функциональных аналогов таких приложений для платформы Linux, мы считаем, что особых успехов в этом направлении еще не достигнуто. Использование ОС Linux в качестве платформы для разработки Web-приложений может быть затруднено еще и тем, что при использовании этой ОС могут возникнуть трудности с поиском драйвера и программного обеспечения сканера или цифрового аппарата. В то же время в ОС Microsoft Windows все эти средства наверняка есть. Таким образом, можно сделать вывод, что предварительную обработку исходного материала проще и эффективнее выполнять с помощью инструментария, разработанного для Microsoft Windows. Впрочем, как мы уже говорили, здесь многое зависит от Ваших привычек и навыков. Что же касается разработки программных расширений сервера Web, работающего в ОС Linux, то эту задачу тоже можно решить в среде OC Microsoft Windows. Об этом мы расскажем чуть позже в разделе «Создание программных расширений сервера Web». Подготовка страниц HTML Хотя многие Web-дизайнеры создают страницы HTML с помощью простых текстовых редакторов, имеющихся в любой операционной системе, удобнее выполнять эту работу при помощи редактора с синтаксическим выделением тегов HTML. Два таких редактора мы уже упоминали во введении к нашей книге. Для ОС Linux это редактор Bluefish, доступный бесплатно по адресу по адресу http://bluefish.openoffice.nl, а для OC Microsoft Windows — средство разработки Web-приложений Allaire ColdFusion Studio (http://www.allaire.com). Существуют также редакторы, позволяющие создавать страницы HTML в режиме визуального проектирования. Это такие редакторы, как Microsoft FrontPage, Microsoft InterDev, Allaire HomeSite, Allaire ColdFusion Studio и другие. Использование таких редакторов — палка о двух концах. С одной стороны, визуальное проектирование облегчает и ускоряет процесс создания страниц HTML. С другой стороны, визуальные редакторы формируют HTML-код страниц автоматически, и делают это не всегда лучшим образом. В частности, визуальные редакторы могут вставлять избыточные теги или совершать ошибки при работе с текстом сценариев JavaScript, VBScript, ASP, PHP и т.п. Наши рекомендации таковы. Черновую подготовку страниц HTML можно выполнять с помощью визуальных редакторов HTML, особенно если таких страниц нужно подготовить много. В некоторых случаях для этой цели можно использовать даже текстовый процессор Microsoft Word, «умеющий» работать с документами HTML. Однако «доводку» страниц лучше выполнять в режиме редактирования кода HTML с использованием синтаксического выделения. Эту доводку можно делать любым подходящим редактором, или же визуальным редактором в режиме редактирования кода HTML. Создание программных расширений сервера Web Что же касается создания программных расширений Web-сервера, то тут тоже Вам едва ли удастся ограничиться только одним инструментальным средством. Особенно в том случае, если Web-приложения разрабатываются для разных платформ, например, для Linux и Microsoft Windows. Что касается Web-приложений для операционной системы Linux, то обычно для них приходится разрабатывать программы CGI, используя для этого такие языки программирования, как Perl или С. Кроме того, очень распространены так называемые PHP-приложения, создаваемые с использованием серверных сценариев, встроенных в страницы HTML. В то время как программы CGI, составленные на языке Perl или сценарии PHP можно разрабатывать при помощи обыкновенного текстового редактора, программы CGI, написанные на языке C, необходимо транслировать. Для трансляции программ C в среде операционной системы Linux можно использовать бесплатные пакетные трансляторы (такие, например, как GNU C), создавая исходный текст программ обычным текстовым редактором. Заметим, что эту технологию трудно назвать продвинутой. К счастью, на платформе Linux доступны и такие инструментальные средства, как, например C-Forge (http://www.codeforge.com) и Borland Kylix (http://www.borland.com), более или менее соответствующие современным стандартам на средства разработки программного обеспечения. Если же Вы создаете Web-приложения не только для Linux, но и для Microsoft Windows, то Вам придется столкнуться с необходимостью подготовки серверных сценариев ASP, расширений и фильтров ISAPI, а также серверных элементов управления ActiveX для Microsoft IIS. Эту работу лучше всего делать при помощи таких средств, как Microsoft Visual Studio, в составе которой есть все необходимые компоненты для редактирования исходного текста с синтаксическим выделением, трансляции и отладки программ. Это средство позволит Вам редактировать не только исходные тексты программ, но и документы HTML, а также администрировать базы данных, интегрированные с Web-приложениями. Что же касается редактирования исходных текстов программ CGI, составленных на языке Perl, страниц HTML со сценариями JavaScript, PHP и ASP, то на платформе Microsoft Windows для этой цели очень удобно упомянутое выше инструментальное средство Allaire ColdFusion Studio. К сожалению, когда мы работали над этой книгой, компания Allaire еще не выпустила версию Allaire ColdFusion Studio для Linux. У нас также нет сведений о том, что такая версия может появиться в обозримом будущем. Подготовка Web-приложений для Linux в среде Microsoft Windows Из сказанного выше следует, что если Вам нужно создавать Web-приложения для разных платформ, следует обзавестись различными инструментальными средствами, как для Linux, так и для Microsoft Windows. Проблему, однако, можно сильно упростить, если пользоваться платформой Microsoft Windows для создания приложений Web, предназначенных для работы на платформе Linux. При этом окончательную проверку работоспособности и отладку таких приложений необходимо выполнять в среде ОС Linux. Если в Web-студии имеется только один компьютер, то перенос Web-приложений из среды разработки Microsoft Windows в рабочую среду Linux будет затруднен. Фактически Вы будете вынуждены создать на дисках компьютера один раздел с файловой системой FAT, которую можно смонтировать как в Microsoft Windows, так и в Linux. Этот диск играть роль транзитного пространства для переноса файлов приложений. Каждый такой перенос будет связан с перезагрузкой операционной системы. Если Вам действительно необходимо создавать Web-приложения для различных операционных систем, мы рекомендуем обзавестись еще одним компьютером. Ниже мы рассмотрим конфигурацию стенда, состоящего из двух компьютеров. Добавив к стенду еще один компьютер, можно значительно ускорить создание и отладку Web-приложений как для одной, так и для разных платформ. Заметим, что в качестве второго компьютера можно использовать не такой мощный компьютер, как тот, что применяется для разработки приложений. Возможно, Вы сумеете использовать здесь даже старый компьютер, не пригодный для запуска современных операционных систем и программ, «жадных» до аппаратных ресурсов. Одна из возможных схем такого стенда показана на рис. 1-2.
Рис. 1-2. Стенд из двух компьютеров Центральную часть стенда занимает мощный компьютер. Он предназначен для предварительной обработки материалов, размещаемых на Web-узлах, а также собственно, для разработки Web-приложений. Здесь Вы можете установить отладочный Web-сервер, инструментальные средства разработки страниц HTML и программных расширений сервера Web, средства предварительной обработки текстовых, графических, звуковых и видео материалов. Главный компьютер может быть также использован для администрирования Ваших Web-серверов, установленных на площадке провайдера, а также для текущей работы (получение и отправка сообщений электронной почты, работа в сети ICQ и т. п.). Второй компьютер, объединенный с первым в локальную сеть, играет роль испытательного «полигона» для проверки и отладки Web-приложений в среде различных операционных систем, а также для отладки процедур развертывания и администрирования Webприложений. Здесь Вы можете установить несколько операционных систем и конфигураций программного обеспечения, необходимых для отладки разработанных Web-приложений. В зависимости от того, для какой платформы ведется разработка Web-приложений в настоящий момент, можно загружать ту или иную операционную систему в той или иной конфигурации. Конфигурация основного компьютера, применяемого для разработки Web-приложений, была описана выше в разделе «Простейший стенд». Ее нужно только дополнить средствами организации локальной сети. Что же касается конфигурации дополнительного компьютера, предназначенного для тестирования Web-приложений, то здесь требования к его конфигурации совпадают с требованиями используемых Вами операционных систем. Если Вы будете отлаживать на этом компьютере Web-приложения в среде Linux, то будет достаточно оснастить дополнительный компьютер процессором Pentium-166 или более быстрым, памятью не менее 64-128 Мбайт и жестким диском объемом в несколько Гбайт. Требования Microsoft Windows 2000 Server более серьезны, но и здесь Вам не нужно добиваться оптимальной производительности. Помните, что данный компьютер предназначен для отладки Web-приложений, а не для реальной работы в Интернете. Локальная сеть Web-студии Для объединения компьютеров стенда в локальную сеть нужно приобрести два сетевых адаптера типа Ethernet, рассчитанных на использование обычной витой пары. Скорость передачи данных адаптеров в данном случае не критична, однако для ускорения работы лучше использовать адаптеры со скоростью 100 Мбит/с. В крайнем случае, сгодятся и старые сетевые адаптеры Ethernet, предназначенные для подключения с применением коаксиального кабеля. При этом, однако, необходимо побеспокоиться о надежном заземлении обоих компьютеров и всего подключенного к ним периферийного оборудования (это, кстати, никогда не помешает сделать, даже если компьютеры соединены витой парой или не соединены вовсе). Если в локальной сети всего два компьютера, то Вы можете соединить их сетевые адаптеры специальным кабелем — так называемой перекрученной витой парой. Такой кабель можно приобрести в магазине, торгующим сетевым оборудованием, или изготовить самостоятельно. Рекомендации по изготовлению перекрученной витой пары можно найти в документации на адаптер локальной сети. Однако если в ближайшее время в сеть Web-студии будут добавлены еще несколько компьютеров, или если локальная сеть Web-студии подключена к Интернету по выделенной линии, лучше приобрести недорогой концентратор или хаб (hub). Именно эта конфигурация показана на рис. 1-2. На рис. 1-2 мы намеренно не показали, каким именно образом осуществляется подключение локальной сети Web-студии к Интернету. В соответствии с Вашими желаниями и возможностями можно использовать для этого модем или выделенную линию. Можно подключить к Интернету основной компьютер, который Вы используете для своей ежедневной работы, «передавая» трафик Интернета на вспомогательный компьютер по локальной сети. Но можно поступить и наоборот — подключить к Интернету вспомогательный компьютер, и через него «выходить» в Интернет с основного компьютера. Недостаток последнего способа заключается в том, что для нормальной работы Вам придется держать включенными оба компьютера, даже если вспомогательный компьютер в данный момент не используется. Подробнее о подключении локальной сети Web-студии к Интернету мы расскажем ниже в разделе «Стенд для разработки сложных Web-приложений». Соображения по выбору программных средств для компьютера, используемого при разработке Web-приложений, были высказаны ранее в разделе «Простейший стенд». Заметим только, что теперь, когда стенд дополнился вторым компьютером, у Вас нет необходимости держать на дисках основной рабочей станции сразу несколько операционных систем. Можно, например, установить на нее только Microsoft Windows 2000 Server, а на дополнительный компьютер — Linux, Microsoft Windows NT Server, Microsoft Windows 2000 Server и другие необходимые операционные системы. Для того чтобы оба компьютера Вашей сети имели доступ к Интернету, необходимо установить и настроить на компьютере, подключенным к Интернету, прокси-сервер. Вы можете использовать здесь практически любой прокси-сервер, но удобнее всего воспользоваться средством совместного использования соединения с Интернетом, встроенным в операционную систему Microsoft Windows 2000 Server. Об этом читайте ниже в разделе «Стенд для разработки сложных Web-приложений». Средства антивирусной защиты необходимо установить на оба компьютера, а брандмауэр — на компьютер, имеющий непосредственное соединение с Интернетом. Рекомендации по использованию средств защиты мы привели в разделе этой главы с названием «Защита от вирусов и атак хакеров». Что же касается инструментальных средств, то требования к ним были описаны нами ранее в разделе «Простейший стенд». Добавление второго компьютера в здесь ничего не меняет, хотя Вы можете установить некоторые инструментальные средства не только на основной компьютер, но и на дополнительный. Это позволит при необходимости выполнять «доводку» приложений по месту их отладки. Стенд для разработки сложных Web-приложений В то время как создание простейших узлов Web доступно одному разработчику, по-настоящему сложные Web-проекты реализуют команды разработчиков, состоящие, по крайней мере, из нескольких человек. На рис. 1-3 мы показали один из возможных вариантов стенда, предназначенного для разработки сложных Web-проектов. Рис. 1-3. Стенд для разработки сложных Web-приложений Стенд представляет собой локальную сеть, подключенную к Интернету выделенным каналом связи через брандмауэр. Помимо рабочих станций Web-дизайнеров и Web-программистов в этой сети есть несколько серверов, предназначенных для разработки, отладки и окончательного макетирования Web-приложений. Возможно, к общей локальной сети будут также подключены рабочие станции сотрудников, ответственных за подготовку исходных материалов, за рекламу и продвижение проектов в Интернете, рабочие станции системного администратора, руководителя проектов и другие (на рис. 1-3 не показаны). В действительности локальная сеть крупной компании, занимающейся разработкой Web-проектов, может быть достаточно сложной и разветвленной. В нашей книге мы рассмотрим только простейший случай. Коллективная реализация проектов, как правило, предполагает разделение труда. Поэтому конфигурация аппаратных и программных средств рабочих станций, а также серверов сети определяется их назначением. Рабочая станция Web-дизайнера На Web-дизайнера обычно возлагается вся работа, связанная с подготовкой графических иллюстраций, звуковых и видео фрагментов и макетированием страниц HTML. Дополнительно Web-дизайнер зачастую выполняет и работу художника, хотя этим может заниматься отдельный сотрудник. Web-дизайнер может рисовать иллюстрации непосредственно на компьютере, а может использовать обычный карандаш и бумагу. В последнем случае после сканирования выполняется дополнительная обработка рисунков в графических редакторах. Заметим, что Web-дизайнер не занимается программированием, хотя и работает в тесном взаимодействии с Web-программистами. Какие предъявляются требования к рабочей станции Web-дизайнера? Эти требования полностью определяются требованиями графических программ редактирования и сканирования изображений. Так как обработка изображений отнимает немало процессорного времени, мы рекомендуем оснастить компьютер Web-дизайнера мощным процессором с тактовой частотой не ниже 900-1500 Мгц. Отсканированные изображения могут занимать много памяти, поэтому оснастите компьютер оперативным запоминающим устройством (ОЗУ) размером 128-256 Мбайт или больше. Не следует также экономить и на жестком диске, так как объем исходных и обработанных графических иллюстраций, а также библиотек иллюстраций может занимать очень много места. Обработка видеофрагментов также требует значительных ресурсов компьютера. Если Вы будете выполнять работы с видеофрагментами, оснастите компьютер мощным процессором и жестким диском объемом несколько десятков Гбайт. Кроме того, для оцифровки видео Вам потребуется приобрести специальный адаптер, выполняющий сжатие видео данных на аппаратном уровне. Хотя наиболее мощные и удобные программы редактирования иллюстраций и видео созданы для операционной системы Microsoft Windows, среди дизайнеров (особенно занятых подготовкой печатных изданий) популярны компьютеры Macintosh и операционная система MacOS. Если в Вашей Web-студии есть такие специалисты, необходимо предусмотреть подключение к локальной сети студии хотя бы одного компьютера Macintosh. Рабочая станция Web-программиста К этой станции также предъявляются довольно высокие требования, особенно если Web-программисты работают со сложными инструментальными средствами, такими как Microsoft Visual Studio. Фактически эти требования были изложены в разделе «Простейший стенд» и к этому особенно нечего добавить. Заметим только, что при наличии нескольких рабочих станций Web-программистов можно установить на них различные операционные системы и, соответственно, различный инструментарий. Каждый программист может пользоваться тем инструментальными средствами, которые лучше соответствуют решаемой им задаче, более привычны или удобны для него. На рабочей станции Web-программиста может быть установлен отладочный сервер Web, такой как IIS или Apache. Но можно обойтись и без него, если воспользоваться сервером разработки Web-приложений. Сервер разработки Web-приложений Сервер разработки Web-приложений, показанный на рис. 1-3, это тот плацдарм, на котором Web-программисты могут проверять свои идеи, отлаживать только что созданные программы, изобилующие ошибками, и предпринимать другие рискованные действия. Так как плохо отлаженное Web-приложение может нарушить работоспособность Web-сервера, сервер разработки Web-приложений будет часто «зависать». Возможно, его даже придется время от времени переустанавливать, частично или полностью. Конфигурация данного сервера определяется, главным образом, требованиями установленной на нем операционной системы, почтовых серверов, серверов СУБД и других программных средств. Если Web-студия разрабатывает приложения для различных операционных систем, или ведет одновременно несколько проектов, нужно подключить к локальной сети студии несколько серверов разработки. При этом группы разработчиков, задействованные в реализации разных проектов, не будут мешать друг другу. Сервер отладки Web-приложений Когда этап проверки идей и выбора программных решений реализации Web-проекта пройден, можно приступать собственно к созданию и отладке Web-приложений. Приложения, готовящиеся к развертыванию в Интернете, но еще недостаточно хорошо отлаженные, доводятся до «кондиции» на сервере отладки Web-приложений. Здесь они работают в той конфигурации программных средств, которая будет на рабочем сервере, подключенном к Интернету через локальную сеть провайдера. Опять же, если Web-студия разрабатывает приложения для различных операционных систем, или ведет одновременно несколько проектов, нужно предусмотреть в Web-студии несколько серверов отладки. Возможно, на них будут установлены разные операционные системы, разные Web-серверы, почтовые серверы и серверы СУБД. Сервер макетов Web-приложений Сервер макетов Web-приложений — это последнее «чистилище» для Web-приложений перед испытанием работой в реальном Интернете. В идеальном случае конфигурация аппаратных и программных средств сервера макетов должна быть в точности идентична конфигурации этих средств на рабочем сервере, установленном у провайдера (за исключением, может быть, лишь адресов IP). На практике в сервер макетов можно установить процессор меньшей мощности, а ОЗУ и диски — меньшей емкости. На сервере макетов необходимо проверить жизнеспособность и устойчивость примененных технологических решений, отработать методики развертывания и сопровождения создаваемого Web-приложения, а также отладить все вспомогательные и обслуживающие процессы (такие, например, как резервное копирование, очистка баз данных от «мусора», автоматическая рассылка почтовых сообщений, проверка адресов электронной почты клиентов и т.п.). Хотя теоретически описанную выше локальную сеть Web-студии можно подключить к Интернету при помощи модема и средств совместного использования соединения, для нормальной работы необходимо использовать выделенную линию. Какова должна быть скорость передачи данных в такой линии? Практически выделенная линия будет использовать только сотрудниками Web-студии, поэтому можно ограничится недорогим каналом со скоростью передачи 32-128 Кбит/с. Здесь подойдет практически любое решение, доступное с точки зрения стоимости — радиомодем, линии ADSL или ISDN, кабельные модемы и т.п. Для защиты локальной сети от вирусов и атак хакеров следует использовать специальные средства — антивирусы и сетевые экраны (брандмауэры). Ниже в разделе «Защита от вирусов и атак хакеров» мы привели некоторые рекомендации по их использованию. Защита от вирусов и атак хакеров Ни в коем случае не пренебрегайте средствами защиты от компьютерных вирусов и атак хакеров. Даже подключившись к Интернету через медленный модемный канал передачи данных, и получив временный адрес IP от провайдера, Вы становитесь объектом для таких атак. Установка антивирусных программ В результате атаки или вредоносного действия компьютерных вирусов злоумышленник может получить полный контроль над Вашим компьютером, похитив либо уничтожив важную или конфиденциальную информацию (пароли доступа к различным ресурсам Интернета, содержимое адресной книги почтовой программы, исходные тексты проектов и т. п.). В нашей книге нет достаточно места, чтобы охватить все аспекты антивирусной защиты. Тем не менее, мы приведем несколько простых правил, следование которым окажет Вам существенную помощь в борьбе с компьютерными вирусами: · устанавливайте антивирусные программы на все рабочие станции и серверы локальной сети; · настраивая антивирусные программы, включите так называемый режим монитора, в котором антивирусной проверке подвергается каждый файл, открываемый пользователем, программой или операционной системой; · раз в месяц (а лучше раз в неделю) обновляйте антивирусную базу данных на всех компьютерах сети. Только так Вы сможете защититься от новых вирусов, появляющихся ежедневно. Учтите, что современные антивирусы после соответствующей настройке смогут сами обновлять антивирусные базы данных через Интернет, загружая их с сервера антивирусной компании; · своевременно обновляете версии антивирусных программ, установленных на рабочих станциях и сервере сети; · следите за сообщениями о появлении новых вирусах, публикуемых на Web-узлах антивирусных компаний и в периодической литературе; · периодически посещайте Web-узлы компаний-разработчиков операционных систем и устанавливайте обновления, выпускаемые такими компаниями. Как разработчик Web-приложений, Вы, так или иначе, запускаете на своем компьютере программное обеспечение Web-сервера. Между тем, если не принимать специальных мер безопасности, Web-серверы любых типов могут быть уязвимы к атакам хакеров. Это происходит из-за ошибок в самих Web-серверах, в операционных системах или в Web-приложениях. При подключении к Интернету локальной сети необходимо уделить особое внимание защите от хакерских атак, а также от вредоносного действия компьютерных вирусов. В противном случае злоумышленник может получить полный доступ ко всем узлам Вашей Web-студии, что совершенно недопустимо. Чтобы снизить вероятность получения такого доступа, локальная сеть должна быть подключена к Интернету через брандмауэр. Воспользуйтесь хотя бы простейшими персональными брандмауэрами, таких, например, как AtGuard или Norton Security. Настраивая брандмауэр, мы рекомендуем задействовать так называемую систему трансляции сетевых адресов Network Address Translation (NAT). Что это за система и зачем она нужна? Как известно, все узлы Интернета имеют свои собственные адреса IP (у каждого такого узла может быть один или несколько адресов IP). Определив тем или иным способом адрес IP узла-жертвы, хакер начинает атаку, сканируя открытые порты с целью обнаружения бреши в защите операционной системы, Web-сервера или прикладных программ. Соответствующей настройкой фильтров брандмауэра можно запретить доступ к определенным адресам IP или портам, что исключит доступ хакеров к защищаемым компьютерам. Система NAT позволяет назначать компьютерам локальной сети адреса из диапазонов, не предназначенных для использования в Интернете. Такие адреса неизвестны хакерам, поэтому узлы локальной сети будут им недоступны. Но как при этом организовать доступ рабочих станций локальной сети к Интернету? Чтобы такой доступ стал возможен, система NAT заменяет адреса узлов локальной сети на адрес узла, где она установлена, т. е. на адрес брандмауэра, принадлежащий к диапазону адресов Интернета. При этом все пакеты, отправляемые с рабочих станций локальной сети, будут отправлены в Интернет «от имени» брандмауэра. Принимаемые из Интернета пакеты данных сначала попадают на брандмауэр, а потом перенаправляются тому узлу локальной сети, которому они предназначены. Таким образом, вся локальная сеть видна из Интернета как один узел, имеющий единственный адрес IP. Если же нужно, чтобы некоторые серверы локальной сети были видны из Интернета, то для них можно устроить отдельную замену адресов. Насколько надежна такая защита? Она надежна настолько, насколько надежен брандмауэр. Брандмауэр — это обычный сервер, на который установлена операционная система (общего применения, такая как Microsoft Windows или Linux, либо специализированная), сетевые протоколы и специальное ПО брандмауэра. Как и всякий сервер, брандмауэр может быть атакован хакером и взломан, после чего вся локальная сеть станет беззащитной. Вы должны ответственно подойти к выбору и настройке брандмауэра. Если брандмауэр создан на базе операционной системы общего применения, проследите за тем, чтобы на нем не было никаких сервисов или программ, не имеющих непосредственного отношения к фильтрации сетевого трафика и выполнению других защитных функций. Каждый такой сервис или программа — потенциальная брешь в защите, которой не преминет воспользоваться хакер. Детальное описание процедур настройки брандмауэров выходит за рамки нашей книги. Более подробную информацию по данному вопросу Вы найдете в [10] и [11]. |