XviD.Ru ПРОСТЕЙШИЙ Веб-сервер под Windows. Windows простой http сервер


Как быстро поднять HTTP сервер

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

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

Мы задались другой задачей — как можно быстрее и легче развернуть HTTP сервер, который будет достаточно производителен, стабилен и защищен при доступе из интернета. Но для начала краткая характеристика имеющихся серверных решений.

Обзор HTTP рынка серверов

Итак, все HTTP сервера можно разделить на продуктивные и локальные. Первые можно и нужно использовать для публикации web контента в интернет или публикации web-приложений. К таким серверам относятся мировые лидеры, занимающие основную долю рынка - Apache, Microsoft IIS  и nginx. Первый — мировый лидер для публикации веб сайтов на хостингах в мире. IIS чаще всего используется для публикации web-приложений, написанных для Windows или на языках платформы .NET, с использованием VBScript и JScript, Sharepoint сайтов и для публикации корпоративных порталов, например онлайн-банков. Для остальных дачах применение IIS неоправдено. nginx — отечественная разработка, которую все чаще применяют на web-хостингах, потому что этот сервер отличается от Apache большей масштабируемостью и производительностью. Зачастую, их можно применять вместе.

Но все эти решения — это долго, сложно для развертывания и требует полноценного сервера на Linux или Windows Server. Нас в данном случае это не интересует.

Также существует группа локальных серверов: Denwer, XAMPP, VertigoServ, Open Server, WAMP и другие. Что такое локальный сервер? Это не одна программа (не один конкретный веб сервер), а специальный сборник, куда входят облегченные варианты сложных серверных программ. Обычно в сборку входят: сам сервер (в основном Apache, но могут быть и другие), компилятор PHP (с его помощью браузер может прочитать коды и собрать страницу), компоненты для работы с базами данных, различные установщики и многие другие программы. Все это нужно разработчикам веб-приложений для тестирования их разработок на локальных машинах. Действительно, удобно и быстро можно развернуть пакет «все в одном», но это совершенно незащищенные решения, не предназначенные для публикации сайтов в интернет. К слову говоря, из локальных серверов я предпочитаю Vertigo (простой и производительный) и Open Server (отличный портативный отечественный продукт, достойная замена Denwer-у ).

Не могу не рассказать о еще одном отечественном полнофункциональном сервере для предприятий - Eserv. Это мощный почтовый, HTTP сервер FTP-сервер, DNS-сервер, статистика, SNMP-agent и SNMP-монитор, видеомониторинг в одном. Возможности почтового сервера просто безграничны: Поддержка групповой работы — WIKI, форумы, общие IMAP-папки, блоги, чат, NNTP-сервер, сервер календарей и задач, общая адресная книга (LDAP-сервер), поддержка Exchange ActiveSync (EAS) для синхронизации мобильных клиентов. Поддерживаются любые способы авторизации (ActiveDirectory, WinNT local, ODBC, текстовые списки, встроенная БД, X.509-сертификаты и т.д.), SSL/TLS. И это платный коммерческий продукт. Но мы рассматриваем HTTP в этой статье, поэтому... HTTP Сервер, входящий в комплект - acWEB — совершенно бесплатное Open Source решение. Это достойная замена IIS под Windows, которая поддерживает:

  • HTTP server with SSL/TLS
  • Built-in Forth translator
  • CGI support
  • ISAPI support
  • FastCGI support

Все домены, A-записи в DNS которых указывают на веб-сервер под управлением Eserv, автоматически получают готовую к использованию систему групповой работы, включающую и управление содержимым сайта (см. следующий раздел), основой которой являются wiki и общие папки. Но можно продолжать использовать Eserv и для обычных сайтов (статические страницы, различные CMS, форумы, магазины на PHP и Perl, и т.д.), если того требуют обстоятельства. Поддержка FastCGI включена в Eserv по умолчанию, и режим работы PHP (CGI, ISAPI или FastCGI) под acWEB задается опцией настройки.

Надо сказать, что сервер это очень малотребователен к ресурсам.

Но это было лирическое отступление.

Легкие HTTP сервера

Долгое время я считал самым легким и быстрым в развертывании еще один бесплатный отечественный продукт Макса Феоктистова - Small HTTP server, который на самом деле был больше, чем веб сервер. Web, почтовый сервер, DNS сервер, FTP сервер, Proxy сервер... Все в одном! И все это весит 146 Кбайт и не требует установки. С точки зрения HTTP, это полноценный веб сервер, поддерживающий:

  • Server Side Includes (включения на стороне сервера), регулярные выражения в SSI.
  • CGI интерфейс для скриптов (Запуск исполняемых файлов; Perl, PHP, и других внешних интерпретаторов)
  • ISAPI интерфейс.
  • Виртуальные хосты и каталоги.

К сожалению, для исполнения скриптов требуются внешние интерпретаторы для Perl и PHP соответственно, но это и понятно при таком размере сервера. Обработка phtml-страниц через запуск внешнего PHP-интерпретатора. Сервер может поддерживать несколько виртуальных хостов. Каждый хост имеет собственный корневой каталог и также может включать виртуальные каталоги общие для всех. 

Все это звучит круто, но... требует достаточно хорошего понимания того, как работает сервер и умения конфигурировать файл php.ini, если вам требуется исполнение PHP. Хотя кому это нужно для Sql!? Строго говоря, настроек миллион, а интерфейс очень неудобный, отсталый, написанный много лет назад. Чтобы запустить сервер вам потребуется минут 5, а чтобы его настроить под себя — не один день. Ну а самое главное, что с 2012 года сервер не обновлялся, документация тоже оставляет желать лучшего.

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

Самый легкий и простой HTTP сервер

То, на чем я остановился и пользуюсь до сих пор - HTTP File Server. Как следует из названия, этот HTTP сервер предназначен, в первую очередь для расшаривания файлов по интернет. Но точно также легко, можно и выкладывать HTML сайт у себя на сервере.

Строго говоря, почти ничего делать не нужно, кроме как указать папку, в которой находится контент сайта («bind root to real-folder») и первый файл сайта, если он отличается от index.htm. Да, исполнение серверных скриптов, таких как PHP и ASP, не поддерживается в HFS. Если для вас это главное — можете дальше не читать, а выбрать что-то из серверов выше. Если же вам требуется публиковать статические страницы или файлы для скачивания и загрузки, то HFS — удобное решение.

HFS поддерживает концепцию виртуальной файловой системы, но сервер может работать и с реальными папками на диске. В виртуальную структуру можно включать реальные папки с их содержимым. Очень удобно. 

Преимущества HFS:

  • не требует установки, состоит из одного маленького исполняемого файла.
  • почти не требует ресурсов, нет утечки памяти.
  • вся конфигурация хранится или в реестре или в одном ini-файле, на выбор.
  • Можно запустить сервере как службу Windows.
  • Вся настройка производится через достаточно простой GUI интерфейс. Чтоб запустить сайт, требуется 2 минуты. Вся первичная настройка описана здесь.
  • Вывод можно настроить через кастомизированные шаблоны (файлы .tpl), которые полностью доступны для редактирования, как и весь код, впрочем. Можно написать шаблон, в котором добавлены любые произвольные кнопки и меню. Это при условии, если вы не хотите публиковать готовый сайт.Стандартный шаблон достаточен в большинстве случаев: в нем есть возможность логина, поиска по файлам и папкам сервера, групповой работы с файлами. Подробнее здесь.
  • Начиная с версии 2.3 поддерживаются макросы, которые заменяют серверные скрипты, которые используются совместно с шаблонами (templates). Больше о HFS макросах в wiki.
  • Поддерживается полноценное скачивание и закачка файлов на сервер. Вам только требуется указать папки для этого в вашей виртуальной файловой системе и настроить на них права.
  • Сервер поддерживает настройку прав доступа для пользователей и групп. На каждую папку можно настроить права отдельно или унаследовать их.
  • Поддерживается тонкая настройка ограничения пропускной способности для групп и пользователей на скачивания и закачку.
  • Сервер постоянно мониторит доступные IP адреса. Вы можете указать порт и IP, на котором вы хотите, чтобы сервер отвечал.
  • Естественно поддерживается ограничение на количество различных подключений и скачиваний для групп и пользователей.
  • Продвинутые могут настроить свои MIME типы.
  • Поддерживается сжатая отдача контента.
  • Доступа подробная система логирования любых событий на севере. Из текущего лога в окне можно прямо забанить пользователей по IP или другим критериям.
  • Поддерживается работа с Dynamic DNS
  • Поддержка HTTPS с помощью внешнего модуля Stunnel

Из недостатков по сути — только отсутствие возможности работы с внешними интерпретаторами и SQL. На сайте разработчика представлена очень подробная документация в wiki. С её помощью вы сможете быстро начать.

Пример работающего сайта со стандартным шаблоном  - http://localserv.ru

(Посещений: 432, из них сегодня: 6)

Понравилась публикация? Почему нет? Оставь коммент ниже или подпишись на feed и получай список новых статей автоматически через feeder.

hww.ru

XviD.Ru ПРОСТЕЙШИЙ Веб-сервер под Windows

Зачем это нужно? Разве Осёл не удобнее?

Далеко не всегда Вам нужно отдать файл сразу "всему миру". Может потребоваться просто отдать кому-то файлы, лежащие у вас на винте (в папке C:\WWW\SITE\ например), и у вас на машине стоит светящийся наружу IP адрес. Причём отдать одному-пяти людям, и НЕ отдавать всему интернету...

TINYWEB на мой взгляд для этого - одно из простейших решений.

Правильная последовательность действий

Скачать вот отсюда: https://www.ritlabs.com/en/products/tinyweb/ программу tinyweb (или отсюда один файл размером 58880, если предыдущая ссылка не работает)
  • распаковать архив (нужен только файл tiny.exe)
  • зайти в каталог C:\WWW\SITE
  • создать в нём index.html (если ещё не создали)
  • положить в него файлы, которые Вам следует отдать
  • выйти на уровень вверх
  • создать подкаталог LOGS
  • зайти в него cd LOGS
  • запустить:tiny.exe C:\WWW\SITE\ 80 вашIP
  • Для проверки открыть в любимом броусере урл: http://вашIP/ - вы должны увидеть содержимое файла index.html
  • Для проверки, видно ли вас снаружи - попросите кого-нибудь из ваших друзей в интернете открыть в любимом броусере тот же урл: http://вашIP/ - они также должны увидеть содержимое файла index.html
Теперь все файлы, лежащие в C:\WWW\SITE\ - доступны через урл вида: http://вашIP/file - это C:\WWW\SITE\file

Если снаружи (из-за настроек файрволла) до вас не удаётся достучаться, но ICQ у вас работает - имеет смысл пробовать нестандартный номер порта:

tiny.exe C:\WWW\SITE\ 5190 вашIP и соответственно урл:

http://вашIP:5190/

Покладание этого веб-сервера - убиение tiny.exe из списка задач (Task Manager`ом)

Недостатки:

  • Не поддерживается докачка
  • Не стоит строить что-то сложнее простенького сайта с лежащими на нём файлами.
Плюсы:
  • Минимум настройки и необходимых файлов
  • Практическое отсутствие опасности взлома из-за малой функциональности программы и простоты её кода.
  • Ламеры, не знающие, что такое командная строка - не могут понять, "как это работает" - тут я не доктор. :-)
Вот иллюстрация для особенно туго соображающих (213.134.196.35 - это IP машины, на которой это делается. Его следует заменить на Ваш IP; слово Empty - это содержимое файла C:\WWW\SITE\index.html, которое я туда внёс для иллюстрации):

Я хочу больше... Я хочу, чтобы ко мне могли залить файлы.

Ставьте более полноценные программы - FTP server. Если Вы хотите большего от Веб-сервера - ставьте Apache. Данная же программа решает УЗКУЮ задачу. © 2002 Sergej Qkowlew. Разрешается использование текста, используемых в нём графических файлов, яваскриптов, файлов с табличными данными и элементов оформления полностью или частично в любых целях, КРОМЕ как для дезинформации кого-либо относительно материалов, произведений искусства, проектов, лиц, организаций, событий. Ссылку на источник давать разрешается.

xvid.ru

Small HTTP Server: маленький, но очень гордый

Пару дней назад, в интернете, яслучайно наткнулся на маленькую (поразмерам, а не по возможностям) утилиту SmallHTTP Server… и был буквально поражен! Сейчасобъясню почему …

Прежде всего скачать программуможно на сайте http://www.wplus.net/pp/mrdoors/srv/.Ее автор Макс Феоктистов.

Small HTTP Server — эта очень маленькаяпрограмма делает из вашего компьютерамногофункциональный веб-сервер. Размердистрибутива 97 Кб! и 103 Кб русифицированныйвариант (это против 6-ти "метрового" Apache).Существует вариант под Windows и Unix. Я поставилна 98-е винды.

Но преимущества этой программы нетолько в размере! Small HTTP Server — требуетминимум настроек, все они располагаются вменю, тогда как в том же апаче нужнонастраивать конфигурационный файл, вкотором без помощи знатоков или документациине так-то просто разобраться.

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

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

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

  • Запуск CGI — скриптов:

    • PE *.exe Windows формат.

    • MZ *.exe DOS формат.

    • *.com DOS формат.

    • Запуск perl-скриптов череззапуск внешнего Perl-интерпретатора.

    • Обработка phtml-страниц череззапуск внешнего PHP-интерпретатора.

    • Запуск приложенийассоциированных с типами файлов Windows.

  • SSI.

  • Контроль запросов, защита вашейинформации.

  • Простота установки.

  • Виртуальный хостинг.

  • HTTP Proxy сервер.

  • Простой DNS сервер.

  • FTP сервер.

  • POP3 сервер.

  • SMTP сервер.

  • Подробная статистика иадминистрирование.

Small HTTP Server  занимает воперативной памяти около 20 Кб — что,согласитесь, совсем ничего по сравнению снынешними размерами оперативной памяти,тем более это должно обрадовать владельцевне шибко мощных компьютеров.

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

Трудности которые могутвозникнуть

У меня возникли некоторыетрудности, решением которых я хочуподелиться с вами.

  1. Если у вас компьютер неподключен ни к интернету ни к локальнойсети — сервер не запускается, выдаетошибку сокета. Решение простое —установите драйвера на сетевую карточку,если таковая имеется. Если же сетевойкарты нет, подумайте как обойти этупроблему…

  2. Еще одна трудность у менявозникла с PHP-файлами, они не хотели "понимать"параметры (напр.: index.php?var=x). Решение:откройте файл PHP.ini, который находиться впапке Windows, найдите строку — register_globals, ипоставьте ее значение в On (- register_globals = On ).Если строка закомментирована — уберитекомментарий :-).

Если у вас возникнут еще какие-нибудьтрудности — почитайте раздел FAQ на сайтепрограммы, или напишите письмо автору.

Мое мнение: программа простоотличная и заслуживает внимания. Лично я непроменяю ее ни на какие Apache :-).

xakep.ru

Домашний http сервер - настройка

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

Есть множество способов передачи файлов другим пользователям. Хорошо, если файл нужно передать одному пользователю, а если их много… Представим, что вам нужно передать файл сразу двадцати пользователям, и после этого сразу закрыть доступ к этому файлу,  если у вас есть «Яндекс диск», то это не проблема, а если нет… Сегодня я вам расскажу о замечательной программе «smallsrv», с помощью которой можно с легкостью поднять http server для передачи данных.

Установка small http server

Сначала нам понадобится сама программа, её качаем здесь.

Внимание:

Антивирус может ругнуться на неё, не обращаем внимание, вредоносного кода там нет.

После того, как вы скачали файл «shttp3.exe», запускаем его, появится окно:

Ставим галочку, что вы согласны с лицензионным соглашением, эта программа распространяется бесплатно, если её использовать дома, а если хотите её использовать в коммерческих целях, то нужно заплатить, хотя кто вам может запретить =)

Оставляем путь по умолчанию, ставить программу будем в корень диска «С» в папку «shttps».

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

Нажимаем кнопку «Install». Все, на этом процесс установки окончен.

Настройка small hhtp server

Заходим на диск «С» ищем там папку «shttps», заходим в неё и запускаем исполняющий файл «http.exe».

В появившемся окне будет показываться информация, работает ли домашний http сервер и кто к нему подключен.  Там, где часики появилась иконка, нажимаем на неё правой кнопкой мыши, и появится контекстное меню, в котором нажимаем на пункт «settings…».

В появившемся окне нужно нажать на кнопку «HTTP».

Порт, по которому будет разрешен доступ на ваш сервер – я указываю обычно другой порт, для того, чтобы себя обезопасить, и избежать недоразумений, по умолчанию стоит порт 80, меняем его на порт «7777». В правом верхнем углу окна, есть две кнопки «Оk» и «Cancel», нажимаем «Ок», окно закроется после этого. Теперь давайте проверим, работает ли ваш сервер. Открываем браузер и пишем в вдресной строке: http//127.0.0.1:7777 нажимаем Enter, должно открыться такое вот окно.

После чего, нужно проверить, доступен ли наш сервер из интернета, для этого заходим на сайт http://2ip.ru и узнаем ваш внешний ip адрес.

Там будет написано: Ваш IP адрес: х.х.х.х, копируем его и вставляем в адресную строку вашего браузера, либо просто набираем и на конце добавляем после двоеточия порт, к примеру: «http://128.74.25.136:7777».

Проброс порта на d-link dir-300

У меня дома интернет раздает роутер dir -300, поэтому если я укажу восьмидесятый порт, то пользователи при заходе на мой сервер, попадут в админку моего роутера, поэтому я меняю порт на 7777, чтобы этого избежать.

Если у вас тоже стоит роутер, вам нужно пробросить этот порт, иначе ваш сервер из интернета не будет доступен.

Заходим по адресу http://192.168.0.1 — на ваш роутер, вводим логин и пароль и попадаем в административную панель роутера.

  1. Расширенные настройки.
  2. Перенаправление портов.
  3. Дальше чуть ниже будут правила, на самом первом ставим галочку и приступаем к заполнению остальных полей.
  4. Имя – любое имя на свой вкус.
  5. IP – адрес – нужно ввести ип адрес вашего компьютер, его можно посмотреть следующим образом.

Нажимаем сочетание клавиш Win+R, в появившемся окне вводим «cmd», жмем кнопку «Ок».

У вас откроется командная строка, набираем там команду: «ipconfig», и нажимаем интер.

Вы можете наблюдать ваш ip адрес.

6. Внешний порт – указываем 7777

7. Внешний порт – указываем 7777

8. Внутренний порт – указываем 7777

9. Тип трафика – выбираем «любой»

10. Жмем кнопку «Сохранить настройки»

На этом проброс порта на роутере d-link dir-300 окончен. Теперь ваш сервер доступен из интернета.

Выкладываем файл для скачивания

Зайти пользователи на ваш сервер могут, но как мы можем наблюдать там пусто.

Для того, чтобы выложить какой-либо файл, нужно зайди на диск «С» в папку «shttps», и там будет папка «www», в неё то и надо положить файл, который вы хотите раздать сразу большому количеству людей.

В итоге вот, что получится.

Закрываем доступ

Чтобы закрыть доступ на те файлы, которые вы выложили на всеобщее обозрение, нужно просто там, где часики есть иконка с названием «Small server», нажимаем на неё правой кнопкой мыши, появится контекстное меню, в котором нажимаем на пункт «Exit».

27sysday.ru

c - Создайте простой HTTP-сервер в C

Я бы рекомендовал вам взглянуть на: Практическое руководство по написанию клиентов и серверов

То, что вам нужно реализовать с помощью дополнительных шагов, это:

  • Получите ваш базовый уровень сокетов TCP (прослушивайте порт/порты, принимайте соединения с клиентом и отправляйте/получайте данные).
  • Внедрение буферизованного считывателя, чтобы вы могли читать запросы по одной строке (ограничиваясь CRLF) за раз.
  • Прочитайте первую строку. Разберите метод, версию запроса и путь.
  • Внедрить синтаксис заголовка для синтаксиса "Заголовок: значение". Не забывайте разворачивать сложенные заголовки.
  • Проверьте способ запроса, тип контента и размер содержимого, чтобы определить, как/если тело будет считано.
  • Внедрить декодирование содержимого на основе типа содержимого.
  • Если вы собираетесь поддерживать HTTP 1.1, реализуйте такие вещи, как "100 Continue", keep-alive, chunked transfer.
  • Добавить меры безопасности/безопасности, такие как обнаружение неполных запросов, ограничение максимального количества клиентов и т.д.
  • Сократите ваш код и с открытым исходным кодом:)
ответ дан Ates Goral 07 окт. '08 в 1:35 источник поделиться

Mongoose (ранее простой HTTP-демон) довольно хорош. В частности, он встраивается и компилируется под Windows, Windows CE и UNIX.

ответ дан Bob Nadler 07 окт. '08 в 1:30 источник поделиться

HTTP-сервер концептуально прост:

  • Открытый порт 80 для прослушивания
  • Когда контакт сделан, собрать небольшую информацию (в основном - вы можете игнорировать остальные на данный момент)
  • Перевести запрос в файл
  • Откройте файл и верните его обратно на клиенте

Это становится сложнее в зависимости от того, сколько HTTP вы хотите поддерживать - POST немного сложнее, скрипты, обработка нескольких запросов и т.д.

Но база очень проста.

-Adam

ответ дан Adam Davis 07 окт. '08 в 1:15 источник поделиться

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

ответ дан Eclipse 07 окт. '08 в 1:12 источник поделиться

Я написал свое собственное, что вы можете использовать. Этот работает с sqlite, является потокобезопасным и находится в С++ для UNIX.

Вы должны быть в состоянии выделить его и использовать C-совместимый код.

http://code.google.com/p/mountain-cms/

источник поделиться

http://www.manning.com/hethmon/ - "Иллюстрированное руководство по HTTP от Paul S. Hethmon" от Manning - очень хорошая книга для изучения протокола HTTP и будет очень полезен для тех, кто его реализует/расширяет.

ответ дан anjanb 07 окт. '08 в 4:23 источник поделиться

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

ответ дан arul 07 окт. '08 в 1:13 источник поделиться

qaru.site

Установка Apache HTTP Server 2.2.22

Главная страница / Документация / Инструментарий веб-разработчика /

Статья описывает процесс установки и первоначальной настройки на локальном компьютере, работающим под операционной системой Windows XP, прекрасно зарекомендовавшей себя связки программ, используемых при создании, как крупных, так и средних веб-проектов: Apache, MySQL, PHP и phpMyAdmin.

Авторы: Виктор Волков, Иван Шумилов

Содержание:

Сайт разработчика: http://www.apache.org/Дистрибутив (Apache 2.2 Win32 Binary): http://www.apachelounge.com/download/Прямая ссылка: httpd-2.2.22-win32.zip

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

Начальная установка и настройка

Распакуйте архив дистрибутива в каталог C:\Apache2.

Откройте в текстовом редакторе файл "C:\Apache2\conf\httpd.conf", являющийся основным конфигурационным файлом сервера Apache.

Ну а теперь держитесь. Женщинам, старикам и детям просьба – дальше не читать. За психическое состояние людей, дочитавших статью до конца – авторы ответственности не несут. :)

Правка файла httpd.conf

  1. Для загрузки модуля mod_rewrite найдите и раскомментируйте (уберите в начале строки символ "#") данную строку:LoadModule rewrite_module modules/mod_rewrite.so
  2. Для загрузки PHP интерпретатора, в конец блока загрузки модулей необходимо добавить строку:LoadModule php5_module "C:/php/php5apache2_2.dll"
  3. Определите каталог содержащий конфигурационный файл PHP, добавив ниже следующую строку:PHPIniDir "C:/php"
  4. Найдите и раскомментируйте строку:ServerName www.example.com:80Отредактируйте ее следующим образом установив изначальное имя сервера:ServerName localhost:80
  5. Найдите строку:DocumentRoot "c:/Apache2/htdocs"Назначьте корневую директорию управления сайтами (немного позже мы ее создадим):DocumentRoot "C:/apache"
  6. Найдите данный блок:<Directory />   Options FollowSymLinks   AllowOverride None   Order deny,allow   Deny from all</Directory>И замените его на нижеследующий:<Directory />   Options Includes Indexes FollowSymLinks   AllowOverride All   Allow from all</Directory>
  7. Удалите или закомментируйте первоначальный блок управления директориями (он нам не понадобится), который без комментариев выглядит примерно так:<Directory "c:/Apache2/htdocs">   Options Indexes FollowSymLinks   AllowOverride None   Order allow,deny   Allow from all</Directory>
  8. Найдите блок:<IfModule dir_module>   DirectoryIndex index.html</IfModule>Замените его на:<IfModule dir_module>   DirectoryIndex index.html index.htm index.shtml index.php</IfModule>
  9. Найдите строку:ErrorLog "logs/error.log"Замените на нижеследующую (в этом случае просматривать глобальный файл ошибок сервера будет удобнее):ErrorLog "C:/apache/error.log"
  10. Найдите строку:CustomLog "logs/access.log" commonЗамените на:CustomLog "C:/apache/access.log" common
  11. Для работы SSI (включения на стороне сервера) следующие строки, находящийся в блоке <IfModule mime_module>, необходимо найти и раскомментировать:AddType text/html .shtmlAddOutputFilter INCLUDES .shtml
  12. Добавьте ниже, в тот же блок <IfModule mime_module>, две строки:AddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps
  13. И, наконец, найдите и раскомментируйте строки:Include conf/extra/httpd-mpm.confInclude conf/extra/httpd-autoindex.confInclude conf/extra/httpd-vhosts.confInclude conf/extra/httpd-manual.confInclude conf/extra/httpd-default.conf
Сохраните изменения и закройте файл "httpd.conf"

Теперь откройте файл "C:\Apache2\conf\extra\httpd-vhosts.conf" и произведите в нем следующие изменения.

Существующие блоки примеров виртуальных хостов необходимо удалить, и вставить только нижеследующее:NameVirtualHost *:80

<VirtualHost *:80>   DocumentRoot "C:/apache/localhost/www"   ServerName localhost   ErrorLog "C:/apache/localhost/error.log"   CustomLog "C:/apache/localhost/access.log" common</VirtualHost>

Сохраните изменения и закройте файл "httpd-vhosts.conf"

Настройка конфигурационныйх файлов завершена, теперь необходимо установить сервис Apache2.2.

Установка сервиса Apache2.2 в картинках

Запускаем командную строку и вводим в ней "C:\Apache2\bin\httpd.exe -k install" Вот что мы должны увидеть при успешной установке сервиса Apache2.2. Если все прошло успешно, движемся дальше - устанавливаем ручной запуск сервиса Apache2.2 для чего проходим путь: "Start" ("Пуск") → "Control Panel" ("Панель управления") → "Administrative Tools" ("Администрирование") → "Services" ("Службы"), в открывшемся окне управления служб выбираем строку "Apache2.2" и делаем на ней двойной щелчок, после чего во вкладке "General" ("Общие") выбираем ручной запуск сервиса - "Startup type: Manual" ("Тип запуска: вручную"). Это необходимо сделать для того, чтобы лишние службы не загружали систему. Учитывая, что домашний компьютер используется не только для веб-разработок, но и для многих других нужд, ручной запуск и остановка, непостоянно используемых сервисов, является наиболее приемлемым.

Создание структуры каталогов виртуальных хостов

В корне диска необходимо создать каталог "apache" - в нем будут лежать ваши виртуальные хосты (домены), глобальный файл журнала ошибок "error.log" (создается программой при первом запуске, автоматически), глобальный файл доступа "access.log" (создается автоматически). В каталоге "apache" создаем еще одну пустую папку - "localhost", в которой, в свою очередь, создаем папку "www", именно в последней и надо будет держать наше добро в виде локальных скриптов. Такая, казалось бы странная структура каталогов, продиктована схожей схемой построения каталогов в системах Unix, и призвана упростить в дальнейшем ее понимание и использование.

Пример создания виртуального хоста

При необходимости установки собственных виртуальных хостов сделайте следующее:

Откройте файл "httpd-vhosts.conf", и создайте в нём блок, примерно, следующего содержания:<VirtualHost *:80>   # Папка, в которой будет корень вашего хоста.   DocumentRoot "C:/apache/test.ru/www"   # Домен по которому вы сможете обращаться к виртуальному хосту.   ServerName test.ru   # Алиас (добавочное имя) домена.   ServerAlias www.test.ru   # Файл, в который будут записываться ошибки.   ErrorLog "C:/apache/test.ru/error.log"   # Файл журнала доступа к хосту.   CustomLog "C:/apache/test.ru/access.log" common</VirtualHost>

Затем в каталоге "apache", создайте папку "test.ru" (прямо так, с точкой), в которой, в свою очередь, создайте папку "www".

Следующий шаг создания виртуального хоста – это изменение файла C:\WINDOWS\system32\drivers\etc\hosts операционной системы. Откройте данный файл и добавьте в него две строки:127.0.0.1 test.ru127.0.0.1 www.test.ru

Теперь запустите сервер Apache выполнив в командной строке "C:\Apache2\bin\httpd.exe -k start", откройте браузер, введите в адресной строке "test.ru" или "www.test.ru" и вы окажетесь в своем виртуальном хосте. Только будьте внимательны, теперь вы сможете попасть на оригинальный сайт с именем виртуального хоста ("www.test.ru", если таковой существует), только закомментировав либо удалив строку: "127.0.0.1 www.test.ru", в вышеупомянутом файле "hosts".

Документация Apache, при запущенном сервере, доступна по адресу http://localhost/manual/

Остановить работу Apache можно выполнив в командной строке "C:\Apache2\bin\httpd.exe -k stop". При необходимости перезагрузить Apache, выполните в командной строке "C:\Apache2\bin\httpd.exe -k restart".

Установка и настройка веб-сервера Apache – завершена.

Создание пакетных файлов для запуска и остановки сервисов

Согласитесь, что вручную редактировать файл "hosts" при каждом запуске сервисов – это не удобно, поэтому для более удобного, одновременного запуска сервисов Apache, MySQL, и изменения файла "hosts" мы создадим два пакетных файла: на запуск и остановку, которые будут выполнять всю рутинную работу автоматически.

При использовании виртуальных хостов необходимо создать в директории C:\apache два файла: vhosts-off.txt – содержащий изначальное содержимое файла "hosts" и vhosts-on.txt – содержащий все виртуальные хосты. Обратите внимание, что при создании новых виртуальных хостов вам необходимо будет добавлять их в файл vhosts-on.txt, а не в C:\WINDOWS\system32\drivers\etc\hosts. Посмотрите на примеры ниже.

Файл vhosts-off.txt (может содержать одну единственную строку):127.0.0.1 localhost

Пример файла vhosts-on.txt с виртуальными хостами www.test.ru и test.ru:

127.0.0.1 localhost127.0.0.1 www.test.ru127.0.0.1 test.ru

В той же директории C:\apache, создайте два пакетных файла: start-webserver.bat – для запуска сервисов и подмены файла "hosts", и stop-webserver.bat – для остановки сервисов и очистки файла "hosts".

Файл запуска start-webserver.bat:

@echo offecho.if not exist C:\apache\vhosts-on.txt goto no_vhostsecho Create virtual hosts:copy /v /y C:\apache\vhosts-on.txt C:\WINDOWS\system32\drivers\etc\hostsecho.:no_vhostsNET start Apache2.2NET start MySQL

Файл остановки stop-webserver.bat:

@echo offecho.if not exist C:\apache\vhosts-off.txt goto no_vhostsecho Restore hosts file:copy /v /y C:\apache\vhosts-off.txt C:\WINDOWS\system32\drivers\etc\hostsecho.:no_vhostsNET stop Apache2.2NET stop MySQL

В случае если вы не используете виртуальные хосты или хотите запустить сервисы без подмены файла "hosts", просто уберите из директории C:\apache файлы vhosts-on.txt и vhosts-off.txt.

Одновременно с сервисами удобно запускать программу Apache Monitor, отображающую в системном лотке состояние сервера Apache, для чего можно создать еще один пакетный файл "start-webserver-monitor.bat", содержание которого аналогично файлу "start-webserver.bat" с добавлением в самый конец следующей строки:

start "" "C:\Apache2\bin\ApacheMonitor.exe"

Теперь для запуска всего инструментария вам понадобится запустить файл "start-webserver-monitor.bat", или "start-webserver.bat", а для остановки "stop-webserver.bat". При желании вы можете переименовать эти файлы, переместить их в любое другое место из папки "C:\apache", либо создать на данные файлы ярлыки, например, на рабочий стол.

php-myadmin.ru