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
Если снаружи (из-за настроек файрволла) до вас не удаётся достучаться, но ICQ у вас работает - имеет смысл пробовать нестандартный номер порта:
tiny.exe C:\WWW\SITE\ 5190 вашIP и соответственно урл:
http://вашIP:5190/
Покладание этого веб-сервера - убиение tiny.exe из списка задач (Task Manager`ом)
Недостатки:
- Не поддерживается докачка
- Не стоит строить что-то сложнее простенького сайта с лежащими на нём файлами.
- Минимум настройки и необходимых файлов
- Практическое отсутствие опасности взлома из-за малой функциональности программы и простоты её кода.
- Ламеры, не знающие, что такое командная строка - не могут понять, "как это работает" - тут я не доктор. :-)
Я хочу больше... Я хочу, чтобы ко мне могли залить файлы.
Ставьте более полноценные программы - FTP server. Если Вы хотите большего от Веб-сервера - ставьте Apache. Данная же программа решает УЗКУЮ задачу. © 2002 Sergej Qkowlew. Разрешается использование текста, используемых в нём графических файлов, яваскриптов, файлов с табличными данными и элементов оформления полностью или частично в любых целях, КРОМЕ как для дезинформации кого-либо относительно материалов, произведений искусства, проектов, лиц, организаций, событий. Ссылку на источник давать разрешается.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. Менюконфигурации сервера можно было сделатьнемного приличнее, хотя это мелочь, и вселучше чем настраивать сервер редактируяконфигурационный файл.
Трудности которые могутвозникнуть
У меня возникли некоторыетрудности, решением которых я хочуподелиться с вами.
-
Если у вас компьютер неподключен ни к интернету ни к локальнойсети — сервер не запускается, выдаетошибку сокета. Решение простое —установите драйвера на сетевую карточку,если таковая имеется. Если же сетевойкарты нет, подумайте как обойти этупроблему…
-
Еще одна трудность у менявозникла с 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 — на ваш роутер, вводим логин и пароль и попадаем в административную панель роутера.
- Расширенные настройки.
- Перенаправление портов.
- Дальше чуть ниже будут правила, на самом первом ставим галочку и приступаем к заполнению остальных полей.
- Имя – любое имя на свой вкус.
- 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.
- Добавить меры безопасности/безопасности, такие как обнаружение неполных запросов, ограничение максимального количества клиентов и т.д.
- Сократите ваш код и с открытым исходным кодом:)
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
- Для загрузки модуля mod_rewrite найдите и раскомментируйте (уберите в начале строки символ "#") данную строку:LoadModule rewrite_module modules/mod_rewrite.so
- Для загрузки PHP интерпретатора, в конец блока загрузки модулей необходимо добавить строку:LoadModule php5_module "C:/php/php5apache2_2.dll"
- Определите каталог содержащий конфигурационный файл PHP, добавив ниже следующую строку:PHPIniDir "C:/php"
- Найдите и раскомментируйте строку:ServerName www.example.com:80Отредактируйте ее следующим образом установив изначальное имя сервера:ServerName localhost:80
- Найдите строку:DocumentRoot "c:/Apache2/htdocs"Назначьте корневую директорию управления сайтами (немного позже мы ее создадим):DocumentRoot "C:/apache"
- Найдите данный блок:<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all</Directory>И замените его на нижеследующий:<Directory /> Options Includes Indexes FollowSymLinks AllowOverride All Allow from all</Directory>
- Удалите или закомментируйте первоначальный блок управления директориями (он нам не понадобится), который без комментариев выглядит примерно так:<Directory "c:/Apache2/htdocs"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all</Directory>
- Найдите блок:<IfModule dir_module> DirectoryIndex index.html</IfModule>Замените его на:<IfModule dir_module> DirectoryIndex index.html index.htm index.shtml index.php</IfModule>
- Найдите строку:ErrorLog "logs/error.log"Замените на нижеследующую (в этом случае просматривать глобальный файл ошибок сервера будет удобнее):ErrorLog "C:/apache/error.log"
- Найдите строку:CustomLog "logs/access.log" commonЗамените на:CustomLog "C:/apache/access.log" common
- Для работы SSI (включения на стороне сервера) следующие строки, находящийся в блоке <IfModule mime_module>, необходимо найти и раскомментировать:AddType text/html .shtmlAddOutputFilter INCLUDES .shtml
- Добавьте ниже, в тот же блок <IfModule mime_module>, две строки:AddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps
- И, наконец, найдите и раскомментируйте строки: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
Теперь откройте файл "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