Інститут повільного і болісного з'ясування напрочуд очевидних речей

Сам себе хостер, Или как настроить 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 и другие необходимые компоненты Установщик не только загрузит, но и установит, а главное правильно настроит, прописав где надо все необходимые привязки.

  • 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-доступ к нашему сайту.

16 коментарів

  • vik

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

  • vik

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

  • Oregu

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

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

      У меня была подобная проблема с WordPress, никак не мог настроить php.ini

      установил phpmyadmin, пока глюков незаметно.

      Советую попробовать утилиту от Oracle/Sun под названием MySQLAdministrator, очень сильно помогает во время тестирования делать бэкапы и отслеживать нагрузку на СУБД в реальном времени.

      возник такой вопрос: настройка iss будет сильно отличаться при работе с одним или с несколькими сайтами?

      Установка проходит аналогично, web installer сам находит что php и MySQL уже установлены, и доставляет/прописывает только необходимые компоненты.

  • Oregu

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

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

      У меня была подобная проблема с WordPress, никак не мог настроить php.ini

      установил phpmyadmin, пока глюков незаметно.

      Советую попробовать утилиту от Oracle/Sun под названием MySQLAdministrator, очень сильно помогает во время тестирования делать бэкапы и отслеживать нагрузку на СУБД в реальном времени.

      возник такой вопрос: настройка iss будет сильно отличаться при работе с одним или с несколькими сайтами?

      Установка проходит аналогично, web installer сам находит что php и MySQL уже установлены, и доставляет/прописывает только необходимые компоненты.

  • Oregu

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

  • 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/ – например для жестко заданых лого и графических элементов дизайна…

  • Mike

    ДЕЗИНФОРМАЦИЯ !!!
    … Вега (нет статического IP)…
    у меня бесплатный постоянный(с 2006г)статический IP, ADSL 8/2 Mb/s

    • Вега как бы большая компания. Но большая не от того что выросла, а от того что скупила кучу маленьких. Так вот такие слияния и поглощения обычно приводят к тому, что под одним брендом Вега, разные компании (которые теперь как бы одна большая) оказывают услуги разного качества и по разным тарифам. Конечно со временем пройдет централизация, но на момент написания статьи статический IP не предоставляли, максимум обещали что менять его будут стараться “крайне редко”.
      Сегодня возможно ситуация другая, а в Вашем городе коммунизм мог настать еще в 2006-м году.
      Конечно опорочивать такую “уважаемую” компанию в масштабах страны неправильно, но думаю Вега не обиделась.

  • Mike

    ДЕЗИНФОРМАЦИЯ !!!
    … Вега (нет статического IP)…
    у меня бесплатный постоянный(с 2006г)статический IP, ADSL 8/2 Mb/s

    • Вега как бы большая компания. Но большая не от того что выросла, а от того что скупила кучу маленьких. Так вот такие слияния и поглощения обычно приводят к тому, что под одним брендом Вега, разные компании (которые теперь как бы одна большая) оказывают услуги разного качества и по разным тарифам. Конечно со временем пройдет централизация, но на момент написания статьи статический IP не предоставляли, максимум обещали что менять его будут стараться “крайне редко”.
      Сегодня возможно ситуация другая, а в Вашем городе коммунизм мог настать еще в 2006-м году.
      Конечно опорочивать такую “уважаемую” компанию в масштабах страны неправильно, но думаю Вега не обиделась.

Залишити коментар до Oregu Скасувати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.