30 декабря 2007
Обновлено 17.05.2023

Веб-сервер на дому

Веб-сервер на дому - изображение обложка

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

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

Во-вторых, свой сервер можно использовать для временной передачи больших объемов информации. Скажем, ваш друг попросил максимально быстро передать ему увесистый архив. У вас обоих быстрый интернет. Как поступить в данной ситуации? Разбить архив на несколько десятков или сотен мелких фрагментов и передать их товарищу по e-mail? Воспользоваться услугами платных хранилищ уровня Rapidshare , откуда «на халяву» файлы придется вытягивать несколько часов? А может быть, прибегнуть к P2P-сетям?

Можно, но ни один из перечисленных способов не является универсальным. Однако есть один очень интересный вариант решения этой проблемы. Развертываете домашний веб-сервер, открываете доступ к нужным файлам и передаете своему приятелю линк на скачку определенного файла со своей машины.

И, наконец, в-третьих, домашняя веб-станция — идеальный вариант для содержания огромного портала типа www.igromania.ru. Почему? Ну а какой хостинг-провайдер предоставит вам, скажем, 80, 100, а то и все 500 Гб для размещения модов, артов и 3D-моделей собственного производства, видеоматериалов и другой полезной информации? Можно арендовать выделенный сервер топ-конфигурации, но это лишь в том случае, если вы готовы ежемесячно отдавать за это от 1,5 до 15 тыс. рублей.

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

Самое необходимое

Для организации полноценного веб-сервера на домашнем компьютере нам понадобятся:

1. Выделенный IP-адрес. Уникальный статичный цифровой адрес вида 87.176.117.42 , который присваивается исключительно вашей машине при работе в интернете. Фактически именно он используется для доступа ко всем веб-серверам, однако зачастую для более удобного обращения к определенным порталам к нему привязывается короткое и легко запоминающееся доменное имя вида www.igromania.ru. Постоянный IP — платная услуга, подключается исключительно на стороне вашего интернет-провайдера.

2. Веб-сервер Apache для Windows/Linux. Один из самых надежных, популярных и, что немаловажно, бесплатных веб-серверов с открытым исходным кодом (Apache носит статус open source проекта). Именно этот сервер использует около 70% крупных интернет-станций. Главный и единственный недостаток серверного пакета — отсутствие удобного администраторского интерфейса.

3. PHP 4 или 5. Специальный интерпретатор для подключения к вашему серверу возможности обработки PHP-сценариев любой сложности.

4. MySQL. Удобная система управления базами данных ( СУБД ). Очень шустрая, практически безошибочная и предельно простая в использовании.

Привязка домена к IP-адресу — зачем и как?

Многие интернетчики задаются вопросом: зачем привязывать какой-то конкретный домен к IP-адресу, что за ересь такая, ведь домен — он и в Африке домен (то есть адрес сайта в Сети)? На самом деле такие пользователи не очень хорошо представляют себе схему работы большинства веб-серверов.

Любой человек, перейдя по определенному адресу, например www.igromania.ru, автоматически перенаправляется на длинный цифровой адрес (IP) конечного веб-сервера. Иными словами, файлы, сайты и другие компоненты проживают не по каким-то буквенным адресам. Располагаются они как раз на машине, которой присвоен уникальный IP, а к нему, в свою очередь, привязан какой-то конкретный домен.

Зачастую из-за описанного выше непонимания случаются следующие проблемы: « На сайте размещен нелегальный контент, надо связаться с администратором и удалить домен ». И вот тут-то пользователь будет в корне неправ: а что если этот самый домен был сдан в аренду и просто припаркован к определенному серверу со своим IP? В таком случае всю ответственность несет исключительно хостинг-провайдер, но ни в коем случае не администратор (владелец) домена.

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

А теперь давайте ответим на вопрос « как? », то есть поговорим о практической реализации привязки домена к конкретному IP-адресу. Первым делом зарегистрируйте на себя определенный домен. Сделать это лучше всего у тех регистраторов, которые позволяют пользователям самостоятельно изменять данные о зарегистрированных доменах сразу же после их делегирования, например, « Джино » (www.jino.ru) или WebNames.ru (www.webnames.ru). После этого зайдите в контрольную панель, перейдите в раздел управления доменами — управление DNS (в случае с «Джино») или DNS-сервера (в случае с WebNames) и переназначьте IP-адреса вида 217.107.217.17 на нужные вам — скажем, на IP собственного веб-сервера. Изменения вступят в силу по прошествии нескольких часов с момента окончания правки DNS-параметров.

Ручная сборка

Давайте рассмотрим создание сервера вручную с использованием всех вышеописанных компонентов. Первым делом подключите услугу «Анонсированный IP-адрес» у своего интернет-провайдера. Как правило, цена на нее составляет около 150 рублей в месяц. Далее загляните на официальный сайт проекта Apache (http://httpd.apache.org) и загрузите последнюю версию веб-сервера под Windows (мы будем организовывать сервер исключительно под управлением этой операционной системы). Запустите исполняемый файл и следуйте инструкциям по инсталляции. Не забудьте в ходе установки указать анонсированный IP-адрес вашей машины. Ведь именно он будет использоваться для подключения к вашему серверу через интернет.

После того как установили программу, приступаем к настройке сервера. Перейдите в каталог \conf с установленным Apache (как правило, это директория C:\Program Files\Apache Group\Apache\conf ). В данной директории содержится несколько конфигурационных файлов сервера. Нас интересует лишь один из них — httpd.conf. Он включает в себя базовые настройки серверной станции типа директорий хранения документов, блокировки заданного диапазона или отдельно взятых IP-адресов, название машины, блоки, которые отвечают за активацию независимых модулей.

Исправим основные характеристики сервера, заключенные в тело данного файла. Откройте « Блокнотом » файл httpd.conf. Задайте определенное имя своей веб-станции. Для этого отыщите в httpd.conf ключевое слово ServerName , впишите после него произвольное название сервера, удалите значок решетки ( # ) в начале строки перед директивой, чтобы данный атрибут (название сервера) не игнорировался компилятором. Затем модифицируйте путь, прописанный после директивы DocumentRoot , скажем, DocumentRoot «C:/Program Files/Apache Group/Apache/htdocs» на наиболее удобный для вас, например: « C:/www/docs». После выполнения данного действия не забудьте создать одноименный каталог на диске для хранения HTML-документов, в противном случае Apache наотрез откажется запускаться.

Следующий шаг — установка или настройка скриптовых псевдонимов. Отыщите строку ScriptAlias /cgi-bin/ «C:/Program Files/Apache Group/Apache/cgi-bin/» и поправьте указанный в ней путь на C:/www/cgi-bin/ (ведь основной-то путь мы изменили). Зачем это нужно? Для того чтобы при вводе в адресной строке интернет-браузера ссылки вида http://localhost/cgi-bin выполнялось обращение к реальной директории C:/www/cgi-bin/ , содержащей определенные CGI-файлы.

Выполним окончательную привязку ряда настроек для каталога C:\www. Найдите в файле конфигурации httpd.conf следующий блок параметров:

< Directory “G:/Program Files/Apache Group/Apache/cgi-bin”>

AllowOverride None

Options None

Order allow, deny

Allow from all

< /Directory>

И замените его следующей конструкцией:

< Directory “C:/www”>

Options Indexes Includes

AllowOverride All

Allow from all

< /Directory>

Далее отыщите строку:

#AddHandler cgi-script .cgi

И вместо нее впишите в тело документа следующую команду:

AddHandler cgi-script .cgi .bat .cgi

Данная опция позволит Apache идентифицировать исполняемые файлы с расширениями .cgi , .bat и .cgi как независимые исполняемые файлы сценариев или CGI-модули. Что еще?

Для обработки сервером shtml-файлов раскомментируйте (удалите значок #) строки:

#AddType text/html .shtml

#AddHandler server-parsed .shtml.

Вот, в принципе, и все — базовая настройка Apache произведена. Для тестирования созданной конфигурации сервера загляните в директорию \bin (бинарные файлы) с установленным Apache и запустите исполняемый файл httpd.exe. Затем в адресной строке любого браузера наберите свой локальный или внешний IP-адрес и нажмите кнопку перехода. Если вы все сделали правильно, то увидите на экране стандартную Apache-страницу.

Поддержка

Основной этап работы выполнен. Осталось лишь обеспечить поддержку MySQL-сервера и подключить к Apache специальный обработчик PHP-сценариев. Начнем с подключения обработчика. Скачайте с сайта www.php.net последнюю версию PHP и установите ее на свой компьютер. Сделали? Замечательно, теперь нужно обеспечить поддержку PHP Apache-сервером. Для этого нам в очередной раз придется покопаться в файле настроек станции httpd.conf из директории \conf. Подгрузите в «Блокнот» конфигурационный файл, найдите и раскомментируйте команду #AddType application/x-httpd-php php , которая позволит Apache-серверу воспринимать новый тип файлов — PHP-сценарии. Следом за ней добавьте в документ блок:

ScriptAlias /php/ “C:/Program Files/PHP5/”

Action application/x-httpd-php “/php/php.exe”

Поясним смысл данной конструкции. Сначала — первой строкой — мы создаем псевдоним php для директории, заключенной в кавычки, то есть C:/Program Files/PHP5/. После этого мы даем установку серверу Apache обрабатывать документы типа x-httpd-php интерпретатором php.exe из каталога /php/ (из директории C:/Program Files/PHP5/).

PHP подключен. Давайте теперь проверим, может ли наш веб-сервер обрабатывать php-сценарии или нет. Вновь запустите «Блокнот», создайте в нем файл с расширением .php в папке C:\www\docs , например igromania.php , и впишите в тело документа следующий программный код:

Сохраните изменения. Затем в адресной строке браузера вбейте ссылку вида: http://localhost/igromania.php. Если настройка сервера прошла успешно, то в окне браузера вы увидите тестовую страничку, на которой будет отображена информация об используемой версии PHP.

Что у нас дальше по плану? Инсталляция СУБД MySQL. Скачайте с официального сайта компании-разработчика сервера MySQL www.mysql.com бесплатную версию СУБД, запустите исполняемый файл и следуйте инструкциям по инсталляции.

Последние штрихи

Осталось создать два исполняемых файла — для запуска и остановки веб-сервера Apache и СУБД MySQL. Приступим. Создайте в «Блокноте» новый документ и сохраните его на жестком диске с расширением .bat (исполняемый dos-файл). Далее в тело документа впишите следующий код:

@echo off

start C:\Progra~1\MySQL\bin\mysqld-nt -standalone

C:\Progra~1\Apache~1\Apache\apache -k start

Сохраните изменения. Данный файл будет использоваться исключительно для запуска рабочего веб-сервера. Команда, начинающаяся со слова start , приведет к запуску Apache-сервера, а следующий за ней (новой строкой) оператор — к загрузке системы управления базами данных MySQL. Для быстрого выключения сервера необходимо создать еще один bat-файл, но на этот раз — вмонтировать в его тело следующий код:

@echo off

C:\Program Files\Apache~1\Apache\apache -k shutdown

start C:\Progra~1\MySQL\bin\mysqladmin -u root shutdown

Команды из данного блока отвечают за остановку Apache-сервера (вторая строка) и СУБД MySQL (третья). Важное замечание — при работе с Windows линейки 9x , необходимо вместо Progra~1 и Apache~1 ввести полные пути вида: Program Files и Apache Group.

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

А мы в это время приступаем к обзору готовых бесплатных серверных пакетов — « Денвер » (Denwer) и TopServer.

Денверский набор

При организации локального веб-сервера для тестирования и отладки различных скриптов, сайтов и веб-приложений отлично подходит набор веб-разработчика под названием «Денвер». Фактически он представляет собой связку компонентов Apache , SSI , mod_rewrite , mod_php , phpMyAdmin (система управления БД MySQL), настроенных для работы на одной-единственной станции.

Это означает, что вы не сможете заглянуть на данный сервер ни из другого компьютера в сети (за исключением своего собственного, разумеется), ни из интернета. Главное достоинство «Денвера» в том, что вам не придется устанавливать веб-сервер Apache, PHP-интерпретатор и СУБД MySQL, тратить время на правку файла конфигурации серверной станции httpd.conf, создание виртуальных дисков и другие настройки. Достаточно просто загрузить по ссылке www.denwer.ru/dis/Base/latest последнюю версию дистрибутива и проинсталлировать сервер.

Описывать процесс установки и настройки «Денвера» мы не будем — приведем исключительно ссылки на официальные руководства, написанные самими создателями серверного ПО, группу которых возглавляет Дмитрий Котеров — основатель проекта. Итак, знакомьтесь:

www.denwer.ru/base.html — по данному адресу в Сети вы найдете очень лаконичную и подробную инструкцию по инсталляции «Денвера». Здесь же приведены и рекомендации по настройке и управлению виртуальными хостами.

Узнать подробнее об основных возможностях пакета вы можете на страничке www.denwer.ru/about.html.

А всем желающим переделать локальный «Денвер» в «Денвер-онлайн», то есть превратить локальный сервер в полноценную интернет-станцию, рекомендуем почитать следующий документ: www.denwer.ru/other/shared.html. Написано в нем много и по существу — и про настройку «Денвера», и про безопасность, и даже про возможные хакерские атаки.

Простота — залог успеха

Если вы ищете максимально простой веб-сервер с графическим интерфейсом и минимальным набором основных функций, то крайне неплохим решением будет крохотная утилита Small HTTP Server , способная вмиг превратить ваш персональный компьютер в полноценный веб-сервер.

Отличительные особенности Small HTTP Server — низкая ресурсоемкость, удобный графический интерфейс, что для веб-серверов — редкость (у Apache, например, и вовсе нет графического интерфейса), возможность развертывания сервера даже при использовании диалап-соединения. Small HTTP Server включает в себя сервера HTTP, FTP, SMTP, POP3, прокси и DNS, а также модуль выдачи подробной статистики. Примечательно то, что Small HTTP Server можно использовать и для отладки скриптов на локальной машине, полностью запретив доступ к компьютеру из Сети.

Единственный недостаток мини-сервера заключается в том, что программа является бесплатной лишь отчасти — если использовать ее в коммерческих целях, вам придется пройти платную регистрацию на официальном сайте http://smallsrv.com/indexr.htm. С него же вы можете скачать самый свежий билд программы.

Немного о настройках Small HTTP Server. После запуска перед вами появится небольшая форма, на которой нет ни панелей инструментов, ни каскадных меню, ни даже строк состояния. Только техническая информация о разработке — версия, автор, тип лицензии (зарегистрированная версия/ознакомительный режим). Для настройки веб-сервера вам необходимо проделать следующие манипуляции. Щелкните по кнопке в левом верхнем углу приложения. В выпавшем меню выберите пункт Server\Настройки. Откроется специальное окно настройки серверных характеристик, на поверхности которого размещена шапка главного меню, а также ряд полей характеристик Small HTTP Server. Ну а дальше все совсем просто — выбираете определенную категорию параметров в главном меню, щелкаете по ней левой кнопкой мышки и настраиваете нужные атрибуты в основном рабочем поле утилиты.

TopServer — сервер на все случаи жизни

Ручная сборка веб-сервера и отладка скриптов на локальной машине — это, конечно, хорошо, но что делать, если нужен шустрый, полностью неуязвимый, крайне удобный, да к тому же еще и абсолютно бесплатный веб-сервер для хостинга локальных и интернет-сайтов, но времени на развертывание рабочей станции мало? Тут на помощь и приходит TopServer. По сути, это сервер приложений, в состав которого по умолчанию входят следующие компоненты: веб-сервер Apache, PHP5-интерпретатор, интерпретатор языка PERL, СУБД MySQL пятой версии, сервер баз данных SQLite2 , компактный FTP-сервер SlimFTPd , а также целый комплекс утилит для администрирования рабочей станции — phpMyAdmin , SQLiteManager , PHPsFTPd , PHPFM. Иными словами, все самое нужное в одном флаконе.

Примечательно, что TopServer — не просто сборник приложений, а полноценный механизм, в котором каждый из компонентов связан с другими элементами. Модуль изначально настроен как под работу из локальной сети, так и из интернета. Никаких специальных знаний для установки, настройки и работы с сервером приложений не требуется. Вам необходимо всего лишь заглянуть на официальный сайт разработчиков (http://topserver.ru), на панели навигации в левой части портала щелкнуть по кнопке Скачать и загрузить последнюю версию серверного набора, после чего проинсталлировать его на компьютер.

Важный момент: перед установкой веб-сервера убедитесь, что на вашей машине не проинсталлированы никакие из серверных компонентов, входящих в состав TopServer. Речь идет о таких элементах, как MySQL, Apache, интерпретаторе PHP. Если какие-то компоненты из состава TopServer уже установлены на вашей станции, рекомендуем удалить их с компьютера, дабы избежать конфликтов с TopServer и его составляющими. Затем запустите исполняемый файл и следуйте инструкциям по инсталляции сервера приложений. После установки TopServer появится новый виртуальный диск — T:.

Если вы заглянете в корневой каталог HDD T: , то увидите, что в нем расположены лишь файлы сервера и ничего больше. Для запуска, перезагрузки и остановки TopServer используются исполняемые файлы start.exe , restart.exe и stop.exe соответственно. Все веб-документы (PHP-сценарии, HTML-страницы и другие файлы) размещаются исключительно в директории T:\home\localhost. Для вызова стартовой страницы TopServer запустите любой браузер, впишите в адресной строке линк вида http://localhost и нажмите Enter.

На форме появившейся страницы вы обнаружите несколько кнопочек для тестирования серверных составляющих TopServer, а также кнопку Панель администрирования для перехода в панель управления станцией. Для настройки сервера вам необходимо всего лишь зайти в администраторский раздел (доступ к нему осуществляется только с машины, на которой установлен TopServer), выбрать нужный параметр для правки и щелкнуть по кнопке с его названием.

Если у вас все же возникнут какие-либо вопросы, связанные с установкой, настройкой или работой TopServer, загляните в раздел Описание пакета на официальном сайте www.topserver.ru — там вы найдете исчерпывающую информацию по использованию сервера приложений.

* * *

Время подводить итоги. Сегодня мы научились развертывать свои собственные веб-серверы с использованием связки Apache + PHP + MySQL , а также рассмотрели два наиболее популярных серверных пакета — «Денвер» и TopServer. Самое время ответить на главный вопрос: так что же лучше — собирать сервер вручную или воспользоваться одним из готовых серверных пакетов? Однозначного ответа нет и быть не может.

Если есть свободное время, лучше заняться самостоятельной сборкой веб-сервера. В данном случае и надежность, и функциональность рабочей станции будут зависеть исключительно от вас. Если времени нет совсем, а сервер нужно запустить в работу буквально за несколько часов, то советуем вам обратить пристальное внимание на TopServer. По функционалу и защищенности он даст фору даже некоторым профессиональным платным серверным пакетам. Ну и, наконец, в том случае, если сервер вам нужен лишь как средство для отладки и тестирования своих собственных проектов, выбирайте «Денвер».

Комментарии
Чтобы оставить комментарий,Войдите или Зарегистрируйтесь