Многие годы на моем ноутбуке стоял Linux, и я всегда на нем держал веб сервер, чтобы тестировать сайты, допиливать шаблоны и так далее. Но время идет вперед, сегодня моя основная система Windows 10, так как линукс хоть и лучше, но в нем нельзя запустить многие нужные программы. И вот сегодня я встал перед вопросом: как установить локальный сервер на Windows?


Потребность возникла после того, как я обнаружил (с ужасом), что на этом блоге в каждой статье более семи H1 - это КОШМАР! Два H1 на одной странице - это уже плохо, а тут столько!

Как видно, все заголовки в сайдбаре у меня в шаблоне сделаны через H1 - оторвать бы руки этому программисту, который писал шаблон, с основами SEO он явно не знаком.

Но при чем тут заголовки и web сервер? А связь такая: у меня все сайты кэшируются за пределами сервера, на сервере и еще . Я меняю что-то на сайте, а результат не вижу, или вижу лишь спустя время. Как понимаете, это очень неудобно!

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

Как установить сервер apache на windows?

В Linux все делалось просто, как установить там веб сервер LAMP я описывал в ЭТОЙ статье. Тут же для меня чужеродная среда, я только слышал про Denwer, но толком никогда с ним не работал. Но как оказалось, не только при помощи него можно установить сервер apache в Windows, есть еще и XAMPP .

Не буду описывать, как это расшифровывается и как там все работает внутри, для меня главное, чтобы это ВООБЩЕ все работало. Все пока на русском языке, что радует. Так же все доступно для основных платформ, что радует еще больше, так как последняя версия Apache в Linux принесла мне много хлопот, замучился настраивать. Качаем нужный нам пакет и устанавливаем.

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

И тут же разработчики предупреждают (машинный перевод), что с седьмой версией PHP работать много чего не будут - это то, о чем я говорил, как чувствовал. Качаю дополнение WordPress, только оно мне пока нужно и устанавливаю его. И вот тут смотрите:

Программа предлагает нам установить кучу ненужного мусора, который будет тормозить мой компьютер: мне нужно только Apache, MySQL, phpMyAdmin и PHP. Все остальное мне просто не нужно, поэтому я снял лишние галочки.

Ставить веб сервер apache для windows советую на диск D, а не С, если потом переустановите систему, то все файлы сохранятся. Теперь ставлю дополнение WordPress. При установке указываем русский язык. Далее получаем такое окно - нужно настроить сам веб сервер.

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

Я запустил вручную сервер (кнопки strat) и подумал: как хорошо, что сервер на запускается при старте компьютера, как это было в Linux - память же не резиновая, и лишние процессы не нужны, ведь сервером я не буду пользоваться каждый день!

Ну что же, дело сделано, теперь нужно загрузить на него свою тему, все плагины и начинать доводить его до совершенства. Вот так я установил за 10 минут (не считая написания статьи) apache веб сервер для windows. Все проще, чем я думал.

Да, что еще важно, сам WordPress встал сюда - D:\ПАПКА С СЕРВЕРОМ\apps\wordpress\htdocs - найти было не так и просто, поэтому упрощаю вам задачу 😉

О всех нюансах работы с ним буду писать в комментариях, что не получится - спрашивайте, постараюсь помочь!

Не нашли ответ? Воспользуйтесь поиском по сайту

Установка веб-сервера на Linux:

  • Если у вас Ubuntu, то вам подойдёт статья "Как установить веб-сервер Apache с PHP 7, MariaDB/MySQL и phpMyAdmin (LAMP) на Ubuntu 16.10 ".
  • Если у вас Arch Linux, то вам подойдёт статья "Установка LAMP (Linux, Apache, MySQL/MariaDB, PHP7 и phpMyAdmin) в Arch Linux / BlackArch ".

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

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

Если вы будете в точности следовать инструкции, то у вас обязательно всё заработает! Кроме тех, у кого Windows XP - если лу вас эта операционная система, то для вас сделана специальная инструкция .

Я покажу пример установки на Windows 10, но если у вас другая версия Windows, то пусть вас это не смущает - процедура везде идентичная. Я буду скачивать последние (самые свежие) на момент написания версии программ. Если к тому времени, когда вы читаете, выйдут новые версии, то скачивайте именно их.

Этапы установки:

Вам также может пригодиться:

1. Подготовка (скачивание программ, входящих в сервер, создание структуры сервера)

Нам нужны:

  • Apache (непосредственно веб-сервер)
  • PHP - среда для работы PHP программ (требуется практически всеми веб-сайтами)
  • MySQL - система управления базами данных (требуется большинством веб-сайтов)
  • phpMyAdmin - очень удобный инструмент для управления базами данных

Официальный сайт разработчиков Apache это httpd.apache.org . Можно скачать Apache с этого сайта. Но официальная версия собирается с использованием старого компилятора, по этой причине она не работает с новыми версиями PHP. Авторы PHP рекомендуют Apache с сайта apachelounge.com/download . Поэтому для этой инструкции скачиваем Apache именно с сайта apachelounge.com/download .

Если у вас 64-битная версия Windows, то вы можете выбрать как 64-битную, так и 32-битную версию компонентов. Главное правило - все компоненты должны быть одной битности. Если у вас 32-битная версия Windows, то все компоненты должны быть 32-битными. Это не относится к phpMyAdmin, который написан на языке PHP. Для PHP программ понятие битности неприменимо.

Бесплатная версия MySQL называется MySQL Community Server . Её можно скачать на странице . На этой же странице есть установщик в виде исполнимого файла, но я рекомендую скачать ZIP-архив. На странице скачивания нам предлагают зарегистрироваться или войти в существующую учётную запись - но это делать необязательно. Достаточно нажать на ссылку «No thanks, just start my download ». Обратите внимание на битность.

Ещё нам нужен файл C++ Redistributable Visual Studio 2017, т.е. Распространяемый компонент Visual C++ для Visual Studio 2017 (или любой другой более поздний), скачать его можно на официальном сайте Microsoft по ссылке (прямая ссылка на скачивание 64-битной версии; прямая ссылка на скачивание 32-битной версии). Этот файл нужен для веб-сервера. А для MySQL необходим Распространяемые пакеты Visual C++ для Visual Studio 2015. Его можно скачать по .

Итак, у меня скачались следующие файлы:

  • httpd-2.4.29-Win64-VC15.zip
  • php-7.2.0-Win32-VC15-x64.zip
  • mysql-8.0.11-winx64.zip
  • phpMyAdmin-4.7.6-all-languages.zip
  • vc_redist.x64.exe
  • vcredist_x64.exe

Установите файлы vc_redist.x64.exe и vcredist_x64.exe .

2. Создание структуры веб-сервера

Создадим структуру каталогов нашего сервера. Главная идея - разделить исполнимые файлы и файлы сайтов с базами данных. Это удобно для обслуживания сервера, в том числе для резервного копирования.

В корне диска C:\ создайте каталог Server . В этом каталоге создайте 2 подкаталога: bin (для исполнимых файлов) и data .

Перейдите в каталог data и там создайте подпапки DB (для баз данных) и htdocs (для сайтов).

Перейдите в каталог C:\Server\data\DB\ и создайте там пустую папку data .

3. Установка Apache 2.4

Содержимое скаченного архива (точнее говоря, только каталог Apache24 ), распакуйте в C:\Server\bin\ .

Перейдите в каталог c:\Server\bin\Apache24\conf\ и откройте файл httpd.conf любым текстовым редактором.

В нём нам нужно заменить ряд строк.

Define SRVROOT "c:/Apache24"

Define SRVROOT "c:/Server/bin/Apache24"

#ServerName www.example.com:80

ServerName localhost

DocumentRoot "${SRVROOT}/htdocs"

DocumentRoot "c:/Server/data/htdocs/"

DirectoryIndex index.html

DirectoryIndex index.php index.html index.htm

# AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # AllowOverride None

# AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # AllowOverride All

#LoadModule rewrite_module modules/mod_rewrite.so

LoadModule rewrite_module modules/mod_rewrite.so

Сохраняем и закрываем файл. Всё, настройка Apache завершена! Описание каждой изменённой директивы вы найдёте на этой странице .

Откройте командную строку (это можно сделать нажав одновременно клавиши Win+X). Выберите там Windows PowerShell (администратор) и скопируйте туда:

C:\Server\bin\Apache24\bin\httpd.exe -k install

Если поступит запрос от файервола в отношение Apache, то нажмите Разрешить.

Теперь вводим в командную строку:

C:\Server\bin\Apache24\bin\httpd.exe -k start

И нажмите Enter.

В качестве имя пользователя вводим root. Поле пароля оставляем пустым. Если всё сделано правильно, то всё должно выглядеть так:

7. Использование сервера и бэкап данных

В каталоге c:\Server\data\htdocs\ создавайте папки и файлы, например:

c:\Server\data\htdocs\test\ajax.php - этот файл, соответственно, будет доступен по адресу http://localhost/test/ajax.php и т.д.

Для создания полного бэкапа всех сайтов и баз данных достаточно скопировать каталог C:\Server\data\ .

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

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

  • c:\Server\bin\Apache24\conf\httpd.conf
  • c:\Server\bin\mysql-8.0\my.ini
  • c:\Server\bin\PHP\php.ini
  • c:\Server\data\htdocs\phpMyAdmin\config.inc.php

В них и хранятся все настройки.

8. Дополнительная настройка PHP

PHP в настоящее время очень мощный, гибкий, удобный инструмент. На локальном компьютере с помощью него можно решать разнообразные задачи, совсем не обязательно связанные с генерацией Web-страниц. При решении неординарных задач можно упереться в ограничения, установленные в настройках. Эти настройки содержаться в файле php.ini (c:\Server\bin\PHP\php.ini) Рассмотрим некоторые из них:

Memory_limit = 128M

устанавливает максимальное количество памяти, которое может использовать скрипт

Post_max_size = 8M

устанавливает максимальное количество данных, которые будут приняты при отправке методом POST

;default_charset = "UTF-8"

устанавливает кодировку (по умолчанию, строка закомментирована)

Upload_max_filesize = 2M

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

Max_file_uploads = 20

максимальное количество файлов для загрузки за один раз

Max_execution_time = 30

максимальное время выполнения одного скрипта

Менять эти настройки совершенно необязательно, но полезно о них знать.

9. Дополнительная настройка phpMyAdmin

Мы уже настроили phpMyAdmin и большинству вполне достаточно базового функционала. Тем не менее, на стартовой странице phpMyAdmin есть надпись: «Дополнительные возможности phpMyAdmin не настроены в полной мере, некоторые функции были отключены».

Новыми возможностями являются:

  • показ связей между (связанными) таблицами;
  • добавление информации о таблицах (начиная с версии 2.3.0 вы можете описывать в специальной таблице ‘table_info’ какая колонка будет показана во всплывающей подсказке при движении курсором над связанным ключом);
  • создание PDF-схемы (начиная с версии 2.3.0 вы можете в phpMyAdmin создавать PDF страницы, показывающие связи между вашими таблицами);
  • отображать комментарии столбцов (начиная с версии 2.3.0 вы можете делать комментарий с описанием каждого столбца для каждой таблицы. И они будут видны в «предварительном просмотре для печати». Начиная с версии 2.5.0, комментарии используются на собственных страницах таблиц и в режиме просмотра, показываясь как всплывающие подсказки над колонками (таблицы свойств) или встроены в заголовок таблицы в режиме просмотра. Они также могут быть показаны в дампе таблицы);
  • создавать закладки (начиная с версии 2.2.0, phpMyAdmin позволяет пользователям делать закладки на запросы. Это может быть полезно для часто используемых запросов);
  • история SQL-запросов (начиная с версии 2.5.0 вы можете сохранять вашу историю всех SQL запросов, которые были сделаны через интерфейс phpMyAdmin);
  • дизайнер (начиная с версии 2.10.0, доступен инструмент Дизайнер; он позволяет визуально управлять связями между таблицами);
  • информация о недавно использованных таблицах;
  • настройка интерфейса часто используемых таблиц;
  • слежение (начиная с версии 3.3.x доступен механизм слежения. Он помогает вам проследить каждую SQL команду, которая была выполнена phpMyAdmin’ом. Поддерживается запись работы с данными и запись команд. После включения, вы сможете делать версии таблиц);
  • пользовательские настройки (начиная с версии 3.4.x, phpMyAdmin позволяет пользователям задавать большинство настроек и сохранять их в базе данных);
  • настраиваемые меню (начиная с версии 4.1.0 вы можете создавать группы пользователей, которым будут доступны только назначенные пункты меню. Пользователь может быть определён в группу и будет видеть только пункты меню, доступные для его группы);
  • спрятать/показать пункты навигации (начиная с версии 4.1.0 вы можете спрятать/показать пункты в навигационном дереве).
  • и другие

Сейчас мы настроим эти дополнительные возможности в полной мере. Перейдите по ссылке http://localhost/phpmyadmin/chk_rel.php и кликните "Создать базу данных". После этого все новые функции будут активированы.

Несколько скриншотов новых функций:

1) Дизайнер

2) Слежение

10. Установка почтовой заглушки

В каталоге C:\Server\bin\ создайте новый каталог с названием Sendmail. Теперь в этом каталоге создайте файл sendmail.php со следующим содержимым:

#!/usr/bin/env php

Откройте конфигурационный файл PHP, он размещён здесь C:\Server\bin\PHP\php.ini . И добавьте туда одну строчку:

Sendmail_path = "C:\Server\bin\PHP\php.exe C:\Server\bin\Sendmail\sendmail.php --dir C:\Server\bin\Sendmail\emails"

Сохраните файл и перезапустите сервер. Отлично, теперь все отправленные письма будут сохраняться в каталоге C:\Server\bin\Sendmail\emails\

Письма будут иметь расширение .eml и их можно открывать, например, программой Thunderbird . Либо обычным текстовым редактором.

11. Добавление PHP директории в PATH на Windows

Если этого не сделать, то могут быть проблемы с некоторыми модулями PHP, в том числе с php_curl.dll, php_intl.dll, php_ldap.dll, php_pdo_pgsql.dll и php_pgsql.dll. По крайней мере, при запуске сервера каждый раз в логах появляется следующее:

PHP Warning: PHP Startup: Unable to load dynamic library "C:\\Server\\bin\\PHP\\ext\\php_curl.dll" - \xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd.\r\n in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library "C:\\Server\\bin\\PHP\\ext\\php_intl.dll" - \xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd.\r\n in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library "C:\\Server\\bin\\PHP\\ext\\php_ldap.dll" - \xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd.\r\n in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library "C:\\Server\\bin\\PHP\\ext\\php_pdo_pgsql.dll" - \xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd.\r\n in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library "C:\\Server\\bin\\PHP\\ext\\php_pgsql.dll" - \xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd.\r\n in Unknown on line 0

Чтобы избежать этих предупреждений, нужно добавить в системные переменные среды путь до PHP.

Нажмите кнопку Пуск (или как там она называется на Windows 10?), начните набирать «Изменение системных переменных среды » и откройте соответствующее окно настроек.

Там нажмите «Переменные среды »:

В окне «Системные переменные » найдите и кликните на Path , потом нажмите «Изменить »:

Поднимите запись в самый вверх:

Закройте все окна с сохранением сделанных изменений.

Перезапустите сервер.

12. Зависание, замедление трафика и/или ошибка сервера Asynchronous AcceptEx failed

Если ваш сервер даже без нагрузки «зависает» - не показывает веб-страницы до перезапуска, а в логах сервера ошибки Asynchronous AcceptEx failed:

AH00455: Apache/2.4.9 (Win64) PHP/5.5.13 configured -- resuming normal operations AH00456: Apache Lounge VC11 Server built: Mar 16 2014 12:42:59 AH00094: Command line: "c:\\Server\\bin\\Apache24\\bin\\httpd.exe -d C:/Server/bin/Apache24" AH00418: Parent: Created child process 4952 AH00354: Child: Starting 64 worker threads. (OS 64)Указанное сетевое имя более недоступно. : AH00341: winnt_accept: Asynchronous AcceptEx failed. (OS 64)Указанное сетевое имя более недоступно. : AH00341: winnt_accept: Asynchronous AcceptEx failed. (OS 64)Указанное сетевое имя более недоступно. : AH00341: winnt_accept: Asynchronous AcceptEx failed. (OS 64)Указанное сетевое имя более недоступно. : AH00341: winnt_accept: Asynchronous AcceptEx failed. (OS 64)Указанное сетевое имя более недоступно. : AH00341: winnt_accept: Asynchronous AcceptEx failed. (OS 64)Указанное сетевое имя более недоступно. : AH00341: winnt_accept: Asynchronous AcceptEx failed.

То в конфигурационный файл Apache добавьте:

AcceptFilter http none AcceptFilter https none EnableSendfile off EnableMMAP off

13. Настройка cURL в веб-сервере Apache на Windows

Если вы не знаете, что такое cURL, значит это вам не нужно. Т.е. смело пропускайте этот шаг.

cURL - это консольная утилита, которая позволяет обмениваться данными с удалёнными серверами, используя очень большое количество протоколов. cURL может использовать кукиз и поддерживает аутентификацию. Если для веб-приложения требуется cURL, то это должно быть указано в зависимостях. Для многих популярных приложений cURL не требуется, например, для phpMyAdmin и WordPress нет необходимости настраивать cURL.

Если cURL настроена неправильно, то вы будете получать ошибки:

Fatal error: Call to undefined function curl_multi_init() in …

Ошибка curl: SSL certificate problem: unable to get local issuer certificate

Чтобы cURL работала в Apache на Windows вам нужно:

1) Обязательно добавить PHP директорию в PATH (системные переменные среды). Как это сделать сказано чуть выше:

2) В файле C:\Server\bin\PHP\php.ini должна быть раскомментирована строка extension=curl

Обычно это не требуется, но при желании вы можете сделать резервную копию бинарных (исполнимых) файлов сервера. Все эти файлы находятся в папке C:\Server\bin\ . Это Apache, MySQL и PHP - т.е. программы, которые отвечают за работу сервера, но которые мы в любой момент можем скачать с официальных сайтов и вновь настроить.

Если вы хотите сделать их резервную копию (например, перед обновлением сервера), то остановите службы:

C:\Server\bin\Apache24\bin\httpd.exe -k stop net stop mysql

И скопируйте в безопасное место папку C:\Server\bin\ .

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

Когда копирование завершено, вновь запустите службы:

C:\Server\bin\Apache24\bin\httpd.exe -k start net start mysql

15. Обновление сервера

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

Удаление сервера

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

C:\Server\bin\Apache24\bin\httpd.exe -k stop c:\Server\bin\Apache24\bin\httpd.exe -k uninstall net stop mysql c:\Server\bin\mysql-8.0\bin\mysqld --remove

Удалите файлы сервера, для этого удалите папку C:\Server\ . Внимание, это удалит все базы данных и ваши сайты.

Как защитить веб-сервер Apache от взлома в Windows

С PHP (с выбором версий), с MySQL и phpMyAdmin. Данный сайт размещён именно на нём: отзывчивая и квалифицированная техническая поддержка, установка WordPress и других веб-приложений в одни клик,

Обычно, когда говорят о web-сервере, подразумевают решения на базе платформы Linux. Но если ваша инфраструктура развернута на основе Windows Server то логично будет использовать веб-сервер IIS. Вопреки распространенному мнению, это весьма популярная платформа, которая позволяет работать как с большинством популярных CMS, так и имеет широкий спектр систем, предназначенных для работы именно на Windows и IIS.

Несомненным достоинством IIS является его тесная интеграция с другими технологиями и средствами разработки Microsoft. В частности веб-решения для IIS могут использовать богатые возможности.NET и легко взаимодействовать с настольными приложениями на этой платформе. Если же вас это пока не интересует, то к вашим услугам богатый выбор готовых CMS, в том числе написанных специально для IIS. Сегодня мы рассмотрим как установить и настроить IIS для работы с веб-решениями на базе ASP.NET и установим одну из популярных CMS для этой платформы.

Для установки веб-сервера на платформе Windows перейдем в оснастку Роли в Диспетчере сервера и выберем установку ролей Веб-сервер (IIS) и Сервер приложений .

Но не спешите нажимать Далее, слева, под названием каждой роли, доступна опция Службы ролей , перейдем на нее и установим для Сервера приложений следующие опции: Поддержка веб-сервера (IIS), Общий доступ к TCP-портам и Активация через HTTP.

А для веб-сервера установите службу FTP-сервер.

После чего установите выбранные роли. Для проверки работоспособности IIS наберите в браузере IP-адрес вашего сервера, вы должны будете увидеть стандартную страницу-заглушку веб-сервера.

Теперь перейдем в к настройке сервера, для этого откроем Диспетчер служб IIS (находится в Пуск - Администрирование).

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

В открывшемся окне укажите имя сайта, путь к корневой папке (по умолчанию сайты пользователей располагаются в C:\inetpub\wwwroot ), которую следует предварительно создать и укажите имя узла (доменное имя сайта), в нашем случае iissite.local

Не забудьте добавить A-запись с именем вашего сайта на DNS-сервер или пропишите необходимые строки в файлы hosts тех рабочих станций, откуда будете обращаться к сайту

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

Далее укажите привязку FTP-cлужбы к сетевым интерфейсам и портам, а также настройте параметры безопасности. Если вы собираетесь использовать SSL, то учтите что вам потребуется сертификат, хотя если вы будете использовать FTP-доступ только для собственных нужд, то можно обойтись самоподписанным сертификатом. Не забудьте поставить галочку для автоматического запуска FTP-сайта.

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

Веб-сервер настроен и вы можете использовать его для размещения HTML-страниц, однако современные сайты используют для хранения своих данных СУБД, поэтому следующим шагом установим MS SQL Express 2012 , возможностей которого с лихвой хватит для наших задач. Установка производится со значениями по умолчанию, кроме Режима проверки подлинности , который следует переключить в Смешанный режим и задать пароль суперпользователю SQL-сервера sa .

Теперь попробуем установить какую либо популярную CMS созданную на базе технологии ASP.NET, обширный выбор таких решений представлен в галерее web-приложений Microsoft. Обратите внимание, что по кнопке скачать вы получите пакет для установки через Web PI, для установки на IIS вам потребуется перейти на сайт разработчика и скачать полный пакет с CMS

Мы будем устанавливать Orchard CMS , для получения пакета пройдите по ссылке и выберите Загрузить как zip , распакуйте полученный архив и закачайте в корень сайта содержимое папки Orchard.

Данная CMS создана на базе ASP.NET 4, поэтому настроим наш сайт на использование необходимых технологий. Для этого щелкните правой кнопкой на имени сайта в боковом меню и выберите Управление веб-сайтом - Дополнительные параметры

В открывшемся окне измените параметр Пул приложений , указав там ASP.NET v.4

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

Также не забудьте создать базу данных для сайта, для этого зайдите в SQL Server Management Studio и, щелкнув правой кнопкой на пункте Базы данных в боковом меню, создайте новую базу.

Для установки CMS наберите в браузере адрес сайта и следуйте указаниям скрипта установки. Никаких сложностей там нет, единственное затруднение может вызвать правильное указание параметров подключения к SQL-серверу. Укажите что вы используете SQL Server (или SQL Express)

В строке подключения ниже укажите следующее:

server=SERVERNAME\SQLEXPRESS;database=iissite;user=sa;password=sapasswd;
  • server=SERVERNAME\SQLEXPRESS - имя сервера, на котором установлен SQL-сервер, и экземпляра SQL-сервера.
  • database=iissite - имя базы данных (в нашем случае iissite)
  • user=sa - пользователь СУБД (в нашем случае sa)
  • password=sapasswd - пароль пользователя sa.

По определению вебсервер – это программа, имитирующая среду Большого Интернета внутри домашнего компьютера. Название, состоящее из двух частей «веб» и «сервер» скорее сбивает с толку, так как более понятным является второе наименование – программа локальный сервер . Тогда становится понятно, что применяют эту программу на компьютере пользователя (локально) и, не важно - подключен он к Интернету или нет. Еще более точное наименование - программа домашний сервер .

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

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

В отличие от настоящих серверных программ локальный сервер на компьютере – это вспомогательная программа для создания веб сайтов .

Часто спрашивают – может ли работать веб сервер в интернете ? Конечно, подразумевается сайт на веб сервере , которые некоторые умельцы пытаются создать на своем старом компьютере, подключив его постоянно к сети интернета.

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

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

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

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

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

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

Ниже пойдет теория для любознательных, а для практиков я советую сразу перейти к одной из статей: или Сервер DENWER .

Так для чего же нужны серверные программы?

Новички должны понимать принцип работы Интернета. Пользователь Интернета имеет на своем компьютере программу браузера, которую он заставляет «пойти» на сайт, лежащий на жестком диске физического сервера (специального компьютера за тысячи верст от посетителя). Там браузер «пробуждает» серверные программы, работающие уже на стороне физического сервера. Они начинают взаимодействовать с браузером - подсовывая (указывать) ему нужные элементы для закачки на компьютер посетителя. Если браузер и серверные программы имеют одинаковые установки, то браузер нарисует на экране монитора дома у пользователя страницу сайта так, как её задумал автор.

Серверные программы – создают не сайт, а среду , в которой могут работать много сайтов. Сайт создается при помощи другой программы, которая называется CMS - система управления сайтом или просто – движок сайта. Для одного сайта движок является его внутренним «механизмом».

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

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

Так как в последнее время многие сайты пишутся на языке PHP , то имеется компонент – компилятор языка PHP , который позволяет браузеру прочитать коды сайта и собрать страницу. Такой компилятор языка позволяет браузерам понимать срипты, написанные на языке PHP и правильно отображать всё на экране монитора у посетителя сайта. Некоторые сборки дополнительно содержат интерпретаторы других языков, например, PERL в XAMPP . Наличие компиляторов других языков, кроме PHP , для новичков скорее проблема, потому что такие компоненты придется отключать по причине неиспользуемости.

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

Обычно компоненты сервера его разработчики перебирают с целью уменьшения размера их туториала. Для соединения отдельных программ вместе используют управляющую утилиту (программу) phpMyAdmin .

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

Владелец сервера обладает самыми высокими правами администратора, что позволяет ему входить во все сайты для проверки. Так появляется иерархия пользователей: администратор сервера, следом владелец сайта – администратор только своего сайта (root или admin ), зарегистрированные посетители – комментаторы (комюзер или user ), которым позволено написать комментарий, простые посетители, которые могут только смотреть.

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

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

Тут сразу можно пояснить для мнительных инициаторов сайта. Веб сервер – программа теневая, работает невидимо для сидящего перед компьютером. Один раз установили – и все. Её лишь включают (кликнув по одному ярлыку) перед началом работы с домашним сайтом и выключают после (кликнув по второму). Чего-либо читать вам не придется. Для этой программы совершенно не нужна локализация – наличие поясняющих надписей на русском языке. Поэтому при выборе программы локального сервера не следует обращать внимания на русификацию.

Это замечание для тех, кто выбирает отечественный Денвер (чаще Denwer , чем Denver ). Ничего особенного кроме русификации и малого размера в нем нет. Хотя уровень последней версии №3 веб сервера Денвер позволяет разрабатывать сайты любой сложности. Об установке локального сервера Denwer , популярного среди русскоязычных пользователей Интернета, вы можете почитать в отдельной статье Установка DENWER .

Обычно сборки локальных серверов кроме серверных программ содержат программы для облегчения труда разработчика сайтов. Чаще всего разработчики в комплект включают какой-нибудь FTP -клиент для закачки файлов на сервер. Программы, подобные FileZilla , легки в усвоении и применяются для закачки файлов на реальный сервер. Для домашнего сайта заливать файлы на сайт как-то смешно, когда можно просто перетащить мышью. Применяются они редко, поэтому ради активации одного FTP -клиент включать весь локальный сервер не стоит. Проще установить FileZilla отдельно, а в комплекте веб сервера ftp -клиент даже не активировать.

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

Кроме веб серверов XAMPP и DENWER среди русскоговорящих пользователей распространены следующие бесплатные серверы: AppServ , TopServer , VertigoServ , Zend Server Community Edition . Почти все веб серверы могут устанавливаться на флешку, не нуждаясь ни в каких драйверах, что позволяет носить прототип вашего сайта с собой. Обычно веб серверы являются кроссплатформенными программами – то есть они могут работать в любых операционных системах, но для операционок из семейства Linux все же лучше использовать специализированный LAMP . Недавно появился веб сервер Open Server , построенный на основе сервера Nginx .

Особой разницы между локальными серверами нет, поэтому устанавливайте любой. Я рекомендую не капризный XAMPP , который из всех домашних серверов имеет самую серьезную поддержку.

Например, я при установке Денвера постоянно спотыкался на всяких мелочах, наверно потому, что он по происхождению "русский", а вот установка XAMPP прошла гладко - с первого раза.

Страница создана для пояснения положений в рубриках , и . Статья имеет постоянную ссылку: http://сайт/page/veb-server-na-svoem-kompjutere

Установка веб-сервера IIS

Открываем Панель управления -> Программы -> Включение или отключение компонентов Windows. Находим в списке раздел Службы IIS. Раскрываем его и выбираем нужные компоненты:

Базовый набор:

  • Безопасность. Выбираем все компоненты кроме «Проверка подлинности с сопоставлением сертификата …».
  • Компоненты разработки приложений. Мне нужна только компонента CGI, для последующей установки PHP.
  • Общие функции HTTP. Отмечаем все пункты.
  • Проверка работоспособности и диагностика. Выбираем «Ведение журнала HTTP» и «Монитор запросов».
  • Функции повышения быстродействия. Отмечаем все пункты.
  • Средства управления веб-сайтом. Отмечаем только «Консоль управления IIS».

Когда все пункты выбраны, нажимаем Ок. После завершения установки обязательно перезагружаемся!

Теперь переходим к созданию веб-сайта. Открываем Панель управления -> Система и безопасность -> Администрирование -> Управление компьютером (можно быстрее: меню Пуск -> правый клик на Компьютер -> в меню выбрать пункт Управление). В открывшемся окне раскрываем группу «Службы и приложения» и открываем «Диспетчер служб IIS». В окне Подключения выбираем папку Сайты, затем в правом окне Действия нажимаем на ссылку «Добавить веб-сайт».

Нажимаем OK. На этом базовая настройка завершена. Нужно проверить работоспособность только что созданного сайта. Открываем браузер и в адресной строке вводим: http://localhost. Если все работает правильно, вы увидите похожую страницу:

Последний штрих. Чтобы сайт был доступен из вне, необходимо открыть 80-й порт для входящих соединений. Как это сделать на примере штатного брандмауэра Windows 7:
Откройте Панель управления -> Система и безопасность -> Брандмауэр Windows -> Дополнительные параметры. В списке необходимо найти и включить правило Службы Интернета (входящий трафик HTTP) :

В этом режиме базовой установки веб-сервер способен отображать только статические страницы (обычный HTML + JavaScript). Чтобы расширить его возможности, можно установить поддержку ASP, ASP.NET или PHP. Сам я занимаюсь программированием пока только на PHP, поэтому далее расскажу только об установке PHP на IIS в режиме FastCGI.

Установка PHP (FastCGI)

Конечно, оптимальный веб-сервер для PHP — это Apache, но все же бывают случаи когда требуется установить PHP на IIS. Тем более, в последнее время разработчиками была проделана большая работа, чтобы производительность PHP на IIS улучшилась.

Перед началом установки необходимо скачать релиз PHP с сайта http://windows.php.net/download/ . Там предлагается несколько вариантов. Нам необходим релиз VC9 x86 Non Thread Safe . Для работы в режиме FastCGI это наиболее быстрый и стабильный вариант. Я рекомендую скачивать релиз с установщиком (installer), а не zip-архив (это для любителей ручной установки).

Теперь запускаем установщик. После нескольких не особо информативных окон нам предложат выбрать веб-сервер и режим работы PHP:

IISFastCGI — да, сейчас это единственный стабильный вариант установки PHP на IIS.

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

Пользователи Windows 7 64-бит, внимание! Вам необходимо произвести одно дополнительное действие. Откройте раздел «Пулы приложений». Выделите DefaultAppPool и откройте «Дополнительные параметры» (через правый клик или в крайней правой колонке). В разделе Общие необходимо найти опцию «Разрешить выполнение 32-битных приложений» (Enable 32-bit Applications) и установить в положение True. Если уже созданы дополнительные пулы для уже существующих сайтов, то для каждого из них нужно проделать ту же операцию.

Теперь необходимо провести тестирование PHP. В корневую папку веб-сайта (c:\inetpub\wwwroot) необходимо поместить файл index.php со следующим содержанием:

Открываем сайт в браузере (http://localhost). Если все работает правильно, вы увидите страницу с информацией об установке PHP:

Установка MySQL

Вынесена в отдельную статью.

  • При запуске сайта возникает ошибка: «Процесс не может получить доступ к файлу, так как он используется другим процессом. (Исключение из HRESULT: 0×80070020) ».
    Эта ошибка говорит о том, что порт, к которму осуществлена привязка сайта (по умолчанию 80-й), уже занят другим приложением. Очень часто такая ошибка возникает, если установлен другой веб-сервер (например Apache).
    Чтобы выяснить какой процесс занимает 80-й порт, в командной строке введите: netstat -ano -p tcp
    В колонке «Локальный адрес» ищем запись вида 0.0.0.0:80, далее смотрим какой «PID» соответствует этой записи. В «Диспетчере задач» открываем вкладку Процессы (опцию «Отображать процессы всех пользователей» должна быть отмечена). Далее переходим в меню Вид -> «Выбрать столбцы» отметь «ИД проесса (PID)». Теперь с помощью PID можно выяснить какой процесс занимает порт.
    Еще одним из решений этой проблемы является привязка сайта к альтернативному порту (например 8080).
  • При запуске php-скрипта появляется ошибка: Warning: fopen(путь_к_файлу): failed to open stream: Permission denied in путь_к_файлу .
    Проблема в том, что группа пользователей IIS_IUSRS имеет права только на чтение. Открыть свойства папки, в которой распологаются файлы веб-сайта (по умолчанию wwwroot), закладка Безопасность. В списке находим группу IIS_IUSRS и даем ей права полного доступа.
  • Как установить кодировку сайта .
    Откройте «Диспетчер служб IIS», выберите нужный веб-сайт.В настройках сайта откройте раздел «Заголовки ответов HTTP». Нажмите ссылку Добавить. В открывшемся окне в поле Имя введите: Content-type, в поле Значение введите: text-html; charset=windows-1251 (см. скриншот). Вместо windows-1251 можно прописать любую другую кодировку.