Сам себе хостер, Или как настроить Windows веб-сервер своими руками

Третьего дня получил письмо от своего хостера о том, что мой блог создает непомерную нагрузку на сервер, но беспокоиться о сервере не стоит, так как сайт уже отключили. Вывеска на главной странице «У нас работает WordPress» наверно относиться к каким-то другим вордпрессам. Самое смешное в этой истории то, что у меня была установлена последняя официальная сборка WordPress’a (без плагинов), со стандартной темой. Ребята явно переволновались, подсчитывая что если люди начнут на сайт ходить, то нагрузка явно превысит 3.5 % (от Xeon 3.4 гГц) указанные в тарифах 🙂 Как такое может быть, ума на приложу.

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

Что для этого потребуется.

  1. Персональный компьютер, который теперь мы гордо будем именовать «сервером». Процессор нашего сервера должен быть 64-х разрядным. Почему? Дело в том, что последняя серверная ОС от Microsoft Windows Web Server 2008 R2 выпускается только 64-х разрядной редакции. В отличии от Windows Web Server 2008 Service Pack 2 которая бывает и 32-х разрядной.

    Web Server 2008 R2
    Web Server 2008 Service Pack 2

  2. Собственно ОС Microsoft Windows Web Server 2008 R2. Где ее взять? Как вариант, купить :). Сам Windows Server стоит больших денег, но для наших целей достаточно его самой скромной “Web” редакции. А если вы студент/преподаватель, то на вас распространяются всевозможные скидки. Например, мне такая веб-редакция операционной системы обошлась менее $100. Правда существуют определенные подводные камни. Майкрософт – гениальная компания, и взяв пример с сети магазинов Metro, не продает это операционную систему поштучно. Только 5-ть лицензий. Мне пришлось прикупить Office Mobile 6.1 за $7 (дешевле ничего не нашел) для своего смартфона, чтобы выполнить план закупок.
  3. Интернет. Тестовым путем было установлено, что для работы одиночно сайта достаточно полосы в 2-а мегабита. Было проведено тестирование. Скорость подключения увеличивалась 512 Кбит/сек до 6144 Кбит/сек. После 2048 Кбит/сек скорость доступа стала «на глаз не различима», и вполне комфортна. Следует так же учесть что нам необходимо полноценное синхронное подключение 2048/2048 Кбит/сек. Поэтому aDSL подключение нам не подойдет. Параллельно тестировал скорость доступа на ADSL канале 10Мбит/1,5Мбит, и она была ниже. Так как для хостинга нам важнее отдача, чем прием.
    У провайдер необходимо будет заказать услугу «статический IP адрес». У разных провайдеров она стоит от $1 до $7. Некоторые провайдеры такую услугу не предоставляют. Привет Вега/Оптима/Фарлеп и другие «крупнейшие альтернативные операторы». Альтернативные, и другие не традиционные нам не подходят.
    Некоторые «альтернативные» такую услугу предоставляют, но пока не перезнакомишься с тех. поддержкой (мне пришлось узнать мобильный самого главного админа), пинговаться IP нормально не начнет. Поэтому минимум за месяц начинаем работу с любимым провайдером.
    Давать рекомендации не буду, но Укртелеком (только aDSL), Вега (нет статического IP) и другие «специалисты», менеджмент которых лучше нас с вами знает, что надо пользователю, нам не подходит.

Вроде пока все. То что нам необходимо обзавестись ИБП, обеспечить качественную вентиляцию и охлаждение нашему серверу мы и так знаем, поэтому останавливаться на этом подробно не будем. Единственная проблема, которая у меня возникла это пароль. В Майкрософт посчитали, что если вы не шизофреник, это еще не значит что за вами не следят. Поэтому стандартный пароль вида «password» не подойдет. Требуется, чтобы в пароле были не только символы верхнего и нижнего регистра, но и еще цифры. Поэтому пробуем пароль вида «Password1» и продолжаем работу.

Устанавливаем Microsoft Windows Web Server 2008 R2. Никаких сложностей возникнуть не должно. После установки ОС, запускаем Windows Update, которая, скорее всего, найдет все драйвера на наше оборудование. Ставим заплатки и переходим собственно к настройке.

  1. Отключение компонентов поддержки протокола IPv6.
    Выполнив команду ping localhost, вместо ответа привычного нам адреса 127.0.0.1, мы увидим непонятные нам адреса присвоенные сетевым интерфейсам согласно 6-ой версии протокола TCP/IP.
    Пока что сайты в Интернете доступны по IP4, поддержка 6-ой версии этого протокола будет только создавать неудобства связанные с взаимной конвертацией адресов.
    Приведения адресации в порядок выполним рад действий.
    Пуск – Сеть и Интернет – Просмотр состояния Сети и задач – Изменение параметров адаптеров – Свойства – убираем отметку напротив пункта Протокол Интернета версии 6.
    Но этого мало. Не забываем, что мы имеет дело с Майкрософт, поэтому, несмотря на отключение поддержки протокола, нашим сетевым адаптерам присваивается адрес согласно IP6.
    Придется «тщательно доработать все напильником», то есть руками править реестр. Вы думали что в 2010 году уже можно все делать выбирая пункты меню? Нет, от настоящего администратора все еще требуется знание массы недокументированных параметров системы.
    Пуск-RegEdit
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters

    Создаем новый параметр «DWORD (32-bit) Value», который называем «DisabledComponents», и присваеваем ему значение «FF».
  2. Добавление роли веб-сервер — Internet Information Services 7.5. Установка сайта.
    Пуск – Администрирование — Диспетчер сервера – Роли – Добавить роли. Ролей на выбор только две (если вы используете именно Web редакцию 2008 Server’a). Мы выбираем Веб-сервер. На этапе установки компонент веб-сервера обязательно надо выбрать CGI.
    Если у нас будет хоститься только один сайт, мы можем разместить его в разделе «сайты» под кодовым именем Default Web Site. Тогда в разделе «Действия», выбираем пункт «Основные настройки», и изменяем параметр «Физический путь» указав директорию в которой будут лежать файлы нашего сайта.

    Теперь по логике, мы должны с вами установить PHP и MySQL. К счастью нет. В теории мы можем скачать скачать PHP, и назначить *.php файлам необходимый обработчик. Но Майкрософт уже подумал за нас, и создал «Установщик веб-платформы 2.0» (WebPlatformInstaller_amd64_ru-RU.msi).
    Инсталлировав веб-установщик, мы получаем доступ к базе уже подготовленных для нас, и оптимизированных под IIS веб-платформ. В наличии WordPress, Drupal, Joomla и многое другое.
    Вам только надо выбрать движок для своего сайта — например WordPress. PHP, MySQL и другие необходимые компоненты Установщик не только загрузит, но и установит, а главное правильно настроит, прописав где надо все необходимые привязки.

  3. PHP.
    Джумлы и Вордпрессы это хорошо, но многим надо только чистый HTML + PHP. Тогда советую поставить PHP «руками», это тоже не сложно. Заходим на сайт php.net в раздел downloads и ищем PHP version (номер версии) Non-thread-safe zip package. После загрузки распаковываем архив в удобное для нас место. Например c:\PHP\, выполнив в командной строке команду c:\php\php.exe –info, если мы увидим перечень каких-то заданных параметров, то значит что-то как-то работает.
    Осталось установить в IIS ассоциацию *.php файлов с обработчиком из нашей директории с php.

Осталось организовать FTP-доступ к нашему сайту. Но об этом уже завтра…

Статья пишется on-line, так что продолжение в течении дня

комментариев 5

  1. vik написал(а):

    Интересная затея, тоже об этом думал, судя по провайдерам вы из Украины?Жду продолжения.

  2. admin написал(а):

    Да, живу в Украине. Насчет продолжения — постараюсь

  3. Oregu написал(а):

    Спасибо за интересную информацию. Давно дома лежал не очень нужный слабенький комп, от Microsoft в подарок давно получил Win Server 2008 web edition, но т.к. эксперименты с сайтостроением провожу на друпале, то долгое время все это было не востребовано потому как увязать iis, php и mysql мне не представлялось возможным, а друпал достаточно требователен к их правильным настройкам (и у многих знакомых такая связка не работала). и только сейчас понял прелести web installer, спасибо. Собственно сервер я уже установил, роль web server добавил, проинсталлил через web installer acquia-drupal, вроде нужные зависимости и настройки сложились правильно. установил phpmyadmin, пока глюков незаметно. возник такой вопрос: настройка iss будет сильно отличаться при работе с одним или с несколькими сайтами?

  4. Oregu написал(а):

    Спасибо. А подскажите плиз ссылки на информацию о том, как правильно настроить параметры сайтов в IIS менеджере. Методом тыка у меня работает только один сайт, при установки других первый перестает работать. порылся в инете — нашел массу полезностей, но подробные настройки сайтов не обнаружил. Собственно почему нужны подробные — перенес на iis с сервера под linux работающий сайт, подкорректировал базу, добился работы чистых ссылок, только вот часть картинок стала недоступна. Пути к картинкам были прописаны от корня сайта (к примеру в линух было /home/user123/public_html/), сами картинки располагались /home/user123/public_html/files/images/, относительный путь к картинкам был /files/images/. Теперь реальный путь к сайту c:\inetpub\wwwroot\site1\, соответственно картинки располагаются в c:\inetpub\wwwroot\site1\files\images\.НО!!! отрисовываются они только если указать к ним путь /site1/files/images/, т.е. не от корня сайта, а от c:\inetpub\wwwroot\. Причем в некоторых случаях друпал сам подставляет /sites1/ — например для жестко заданых лого и графических элементов дизайна…

  5. admin написал(а):

    Попробуйте задать абсолютные пути вида site1.ru/images/picture.jpg

Оставить комментарий