Установка веб-сервера в Windows Server 2008 R2 или хостинг на своем сервере (IIS + PHP + MySQL)

Здесь я расскажу как организовать хостинг сайта на своем компьютере. Для примера — сайт под управлением WordPress.  В качестве операционной системы будет использоваться Windows Server 2008 R2. (о организации хостинга в Windows 8 можно прочитать здесь). Кто-то начнет сразу кричать о легкости и бесплатности Linux, и я не буду спорить, но мне нравится эта ОС. Она надежная и легкая в администрировании. На мой субъективный взгляд у нее один недостаток — цена. Кроме того, я не утверждаю, что представленная ниже конфигурация сервера для хостинга является самой лучшей и удобной. Я просто опишу последовательность действий, который я предпринял, чтобы мой сайт заработал. Итак:

 

0. Оглавление

  1. Что потребуется
  2. Запуск веб-сервера IIS
  3. Установка PHP
  4. Установка MySQL
  5. Установка WordPress

1. Что потребуется

  1. Подключенный к сети Интернет, постоянно работающий компьютер, под управлением Windows Server 2008 R2 (О том как установить Windows Server 2008 я писал здесь).
  2. Выделенный IP-адрес на текущем подключении.
  3. Зарегистрированное доменное имя (О том как это сделать можно прочитать здесь).
  4. Доменное имя должно быть привязано к текущему выделенному IP (И об этом я тоже писал здесь)

2. Запуск веб-сервера IIS

Для начала нашему серверу необходимо добавить роль Web-сервера. В Windows Server 2008 эта роль называется Internet Information Services или IIS. Для добавления заходим в «Пуск» — «Администрирование» — «Диспетчер сервера». Раскрываем вкладку «Роли» и нажимаем «Добавить роли» .

Запустится «Мастер добавления ролей», нажимаем «Далее» и в списке выбираем «Веб-сервер (IIS)» .

Нажимаем 2 раза «Далее» и попадаем на страницу выбора служб ролей. Помимо уже отмеченных служб, отмечаем «ASP.NET», «Расширяемость .NET», «CGL», «Расширения ISAPI», «Фильтры ISAPI», нажимаем «Далее» и «Установить» .

После завершения установки в Ролях появилась вкладка «Веб-сервер (IIS)», в которой содержится «Диспетчер служб IIS» (Также он доступен через «Пуск» — «Администрирование» — «Диспетчер служб IIS»)

В диспетчере мы видим наш сервер, и вкладку «сайты», по умолчанию содержащую «Default Web Site». Этот сайт состоит из приветственной страницы IIS. Мы можем просмотреть ее открыв Internet Explorer и в строке адрес введя http://localhost

Можно сразу удалить эту страницу, кликнув в «Диспетчере служб IIS» по ней правой кнопкой и выбрав «Удалить» .

На этом подготовка операционной системы закончена. Далее надо установить PHP и MySQL.

3. Установка PHP

Нам необходимо реализовать поддержку языка PHP. Для этого нужно установить и запустить соответствующую службу. Скачиваем с http://windows.php.net/download/установщик php-сервера. На момент написания статьи актуальной была версия 5.3.6. После скачивания устанавливаем PHP-сервер, следуя инструкциям инсталлятора не меняя настроек и выбрав режим «IISFastCGI» . Более подробно об установки PHP можно прочитать в статье «Установка и настройка компоненты PHP для веб-сервера IIS».

Теперь нужен плагин PHP Manager for IIS для управления PHP из из диспетчера IIS. Скачиваем его здесь: http://phpmanager.codeplex.com/releases/view/69115. После загрузки также устанавливаем его следуя инструкциям инсталятора. Если все сделано правильно в Диспетчере служб IIS должна появиться оснастка «Администратор PHP»

Запускаем ее, и нажимаем на «Зарегистрировать новую версию PHP», указываем путь к исполняемому файлу php и нажимаем «ОК»

Все, на этом регистрация PHP завершена.

4. Установка MySQL

Для хранения базы данных будем использовать бесплатный MySQL. Скачиваем установщик на официальной странице http://www.mysql.com/downloads/installer/. Последняя версия на момент написания статьи 5.5.13. После загрузки запускаем установку, соглашаемся с лицензионным соглашением, выбираем режим «Typical» и нажимаем «Install». После завершения установки, оставляем галочку «Launch the MySQL Instance Configuration Wizard» и нажимаем «Finish».

Запустится вышеназванный мастер. Нажимаем «Next» и выбираем режим «Standart Configuration».

Нажимаем «Next», ничего не меняя еще раз «Next» и вводим пароль на учетную запись «root». Советую сразу записать пароль на листок. Как говорится, тупой карандаш лучше острой памяти. А лучше всего использовать специальные менеджеры паролей. Еще раз жмем «Next» и «Execute». Если все прошло хорошо, то мы должны увидеть следующее:

Жмем «Finish». Установка завершена.
Для управления MySQL я использую простую бесплатную утилиту HeidiSQL, которую можно скачать с http://www.heidisql.com/download.php. На момент написания статьи последней была версия 6.0. Установив программу, следуя инструкциям инсталлятора и запустив ее, мы увидим окно «Session manager», где нужно добавить подключение к нашему MySQL серверу.

Нажимаем «New» и оставляем все поля нетронутыми, введя лишь тот самый пароль, который мы записали на предыдущем шаге.

Жмем «Open» и соглашаемся с сохранением настроек. Теперь нам надо создать новую базу, для нашего сайта. Для этого в окне слева с наименованием баз кликаем правой кнопкой, выбираем «Create new Database».

Заполняем параметры следующим образом:

  • Name: Любое имя нашей базы (может совпадать с именем домена)
  • Character set: utf8
  • Collation: utf8_unicode_ci

и жмем «ОК», после чего наша база должна появиться в списке:

После чего настройка MySQL тоже закончена. Более подробно про установку и настройку MySQL можно прочитать в статье «Установка и настройка MySQL + HeidiSQL».

5. Установка WordPress

Ну вот,  можно приступать и к самому сайту. Мой сайт сделан на движке WordPress. На дату статьи последней бала версия 3.1.3. Создадим на диске С папку WEB. С официального сайта http://ru.wordpress.org/ скачиваем архив, который нужно извлечь с созданную папку. В папке WEB появится каталог wordpress, который переименуем в соответствии с нашем доменным именем.

Теперь в корне этого каталога найдем файл «wp-config-sample.php» и откроем его любым текстовым редактором, например блокнотом. Найдем и изменим в нем только следующие параметры:
В строке

  • define(‘DB_NAME’, ‘database_name_here’); — вместо database_name_here пишем имя созданной нами базы данных. (В моем случае должно получиться define(‘DB_NAME’, ‘tavalik);
  • define(‘DB_USER’, ‘username_here’); — вместо username_here пишем имя пользователя root.
  • define(‘DB_PASSWORD’, ‘password_here’); — вместо password_here пишем сохраненный нами пароль.

и сохраняем под именем wp-config.php.
Теперь опять заходим в «Диспетчер служб IIS», находим вкладку «Сайты», кликаем по ней правой кнопкой и выбираем «Добавить веб-сайт»

Вводим имя нашего сайта, указываем физический путь к сайту (в моем примере это C:\WEB\tavalik) и нажимаем «ОК».

После этого открываем Internet Explorer, в строке адреса вводим http://localhost и попадаем на страницу установки WordPress. Вводим заголовок сайта, имя пользователя и пароль для входа на сайт, адрес электронной почты и нажимаем «Установить WordPress».

После сообщения об успешной установке нажимаем на «Войти», вводим только что придуманные логин и пароль и попадаем на консоль управления сайтом. Находим в нижнем левом углу «Параметры» .

Вводим краткое описание сайта, и в поля «Адрес WordPress (URL)»и «Адрес сайта (URL)» вводим имя нашего домена. Нажимаем «Сохранить изменения» и….

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

Помогла ли вам данная статья?
Да, спасибо, помогла.
Немного помогла.
Нет, совсем не помогла.
Не то, что я искал(а).
Смотреть результаты
Запись опубликована в рубрике Windows Server 2008 R2, WordPress, Хостинг на своем компьютере с метками , , , , . Добавьте в закладки постоянную ссылку.


77 Responses to Установка веб-сервера в Windows Server 2008 R2 или хостинг на своем сервере (IIS + PHP + MySQL)

  1. Нищеброд говорит:

    а про хостинг на своем БЕСПЛАТНОМ сервере можете рассказать?

  2. я говорит:

    Это хорошо. а как теперь на сайт зайти из вне??????

  3. Вася говорит:

    Когда всё сделаешь, а про днс ниче не сказал? как сделать чтобы сайт для всех работал?

    • Виталий Онянов говорит:

      Как я уже писал, чтобы сайт работал «для всех» надо выполнить пункты 2-4 раздела «0. Что потребуется», а именно:
      2. Купить выделенный IP-адрес на текущем подключении.
      3. Зарегистрированное доменное имя (О том как это сделать можно прочитать здесь).
      4. Доменное имя должно быть привязано к текущему выделенному IP (И об этом я тоже писал здесь)

  4. Михаил говорит:

    Добрый день. Перехожу по ссылке скачать MySQL и там 3 варианта и все только zip-архивами. Скачиваю подходящий и после скачки распаковываю архив, но там не инсталятор а уже распакованная версия. Вопрос как ее применить ? Как запустить настройку или как вообще ее запустить ? Ткните носом пожалуйста.

  5. konstantin говорит:

    спасибки очень помогло

  6. Вадим говорит:

    Добрый день!! Не могу понять как сделать так чтобы сайт был виден пользователям из вне,как на обычном хостинге,все перепробовал что-то не получается по данной статье сделать сайт видимым для других. выделенный ip есть привязан у регистратора к имени.

    • Виталий Онянов говорит:

      Для того чтобы сайт был виден из вне необходимо:
      1. Белый IP на текущем соединении.
      2. Создать запись DNS: Ваш домен — Ваш IP.
      3. Дождаться, пока запись DNS начнет действовать. Может пройти до 2 суток. Чтобы проверить добавлена ли запись DNS попробуйте «пропинговать» свой домен, обмен пакетами должен начаться с вашим IP адресом.
      07/IIS_101
      4. На вашем WEB-сервере должен быть открыт 80 порт.
      5. Если есть маршрутизатор, то на нем необходимо пробросить 80 порт на WEB-сервер.

  7. Andrey говорит:

    А если несколько сайтов и несколь доменных имен, а айпи один, то как настраивать?

    • Виталий Онянов говорит:

      Настраиваете все точно также как в инструкции, только для каждого сайта добавляете новый WEB-сайт в IIS (Пункт 6) забив адрес сайта в имя узла привязки. Соответственно для каждого сайта привязка к имени должна быть своя. Далее устанавливаете файлы сайта в новую директорию, и создаете для него новую базу данных.

  8. !!! говорит:

    Есть возможность реализации не на mysql а на mssql 2005 ?

    • Виталий Онянов говорит:

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

  9. Константин говорит:

    Хотел бы спросить .. перебросил свой сайт с денвера на Windows Server 2008 R2 всё получилось работает …

     но есть ошибка движок просит открыть Внимание!
    Отсутствует доступ для записи в папки engine/cache/ и engine/cache/system/. Установите для этих папок CHMOD 777, а для всех файлов внутри них CHMOD 666!
     
    пробовал установить движок заново при проверке CHMOD в установке тоже ошибка нет доступа к папкам
    как исрпавить или настроить … заранее спс

    • Виталий Онянов говорит:

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

      О настройке доступа в Windows можете прочитать в статье Настройка прав доступа к общим папкам в ОС Windows

      • Анатолий говорит:

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

        Расскажите по больше про доступ.

        • Виталий Онянов говорит:

          Для какого сайта у вас вылезает ошибка 500? Стартовую страницу IIS для Defaul Web Site вы видите?

  10. Олег говорит:

    Однозначно хорошая статья, только автор забыл прописать в файле hоsts свой сайт. Пример
    127.0.0.1  mysite.ru, либо
    lоcalhst     mysite.ru

    • Виталий Онянов говорит:

      Зачем это делать? Ведь по адресу mysite.ru он и так попадет на данный сервер, если настроена привязка IP-адреса к имени.

  11. Равиль говорит:

    Все доступно изложено. Спасибо

  12. Александр говорит:

    Подскажите, пожалуйста, с web-сервером все получилось, не работают короткие имена SEF URL

  13. Алексей говорит:

    Подскажите, если поставить Windows Server второй виндой, а на него Web-сервер, будет ли работать?

    • Виталий Онянов говорит:

      Windows Server ставится второй виндой также как и любая другая версия Windows. Все поднятые службы будут работать только при условии запуска данной версии Windows. Если Вы хотите, что одновременно работали и Десктопная и Серверная Windows, смотрите в сторону виртуальных машин.

  14. Арина говорит:

    Здравствуйте! А как тоже самое, но с joomla, объясните пожалуйста! Спасибо!

  15. Денис говорит:

    Здравствуйте! у меня такая вот проблема, установка IIS дело в том, что у меня отсутствует следующие параметры: я не могу найти на своем компьютере win7 — Диспетчер сервера тем самым не могу выбрать мастер добавления ролей в диспетчере служб IIS отсутствует Default Web Server прошу помочь мне.

    • Виталий Онянов говорит:

      Доброго времени суток.
      Действительно, в Windows 7 отсутствует диспетчер сервера. Процесс добавления ролей (в частности роли IIS) аналогичен добавлению ролей в Windows 8, о чем можно прочитать на нашем сайте здесь.

  16. Александр говорит:

    Здраствуйте! Есть локальный сайт на win сервере 2008, нужно сделать одну из страниц доступной с внешней. Подскажите как можно это сделать?

    • Виталий Онянов говорит:

      Доброго времени суток.
      Для решения вашей задачи необходимо сделать следующее:
      1. Приобрести у провайдера статический IP-адрес.
      2. Зарегистрировать домен и настроить привязку домена к вашему IP-адресу (этого можно и не делать, в этом случае к веб-сайте необходимо будет обращаться по IP-адресу). Подробнее об этом я писал Привязка доменного имени к выделенному IP.
      3. На маршрутизаторе пробросить 80-ый порт из внешней сети на ваш веб-сервер.
      4. На веб-сайте настроить привязку необходимого сайта к приобретенному доменному имени (либо настроить привязку всех запросов к данному сайту, если обращение осуществляется по IP-адресу).

      • Александр говорит:

        Но в таком случае будет доступен весь сайт, а как сделать доступной только 1 страницу?

      • Александр говорит:

        Плюс по этому ip на другом сервере расположен хостинг другого сайта

  17. Павел говорит:

    Доброго дня всем!

    у меня localhost не стартует( с ошибкой
    Пути все нормальные, имена, пароли, явки то же имеется предположение, что проблема в файле wp-config.php

    C:\Windows\System32\inetsrv\config\applicationHost.config строка 163

  18. Алексей говорит:

    Вопрос: у меня сеть из нескольких компьютеров и есть сервер. Заявку на статический IP отправил. На сервер залит сайт на wordpress, все работает, установилось. Спасибо автору. Вопрос, как мне с обычного компьютера в сети подключиться к серверу и править сайт, потому что домен еще не купил, а стоять в серверной и работать через localhost неудобно. Спасибо.

  19. Intel говорит:

    Здравствуйте, на сайте php только зип и в гугле найти не могу, не подскажите как из архивов все это установит и настроить?

    • Виталий Онянов говорит:

      Здравствуйте. Обновленная подробная инструкция по установке php в Windows есть здесь. Для Windows Server 2008 все точно также.

  20. Юрий говорит:

    Перед покупкой домена, решил проверить работу сайта через сеть (по ip адресу отдельного сервера) и при попытке загрузить медиафайлы, получил сообщение — Временная папка не найдена.
    Можно ли сделать так, что бы сайт заработал через локальную сеть или надо еще дошаманить чего нибудь?))

    • Алексей говорит:

      Разрешите изменение папки Temp на диске где установлена система. Если у вас свой сервер, то проблем не должно возникнуть. Да, перед этим убедитесь что в файле php.ini путь правильно прописан. Например: upload_tmp_dir = «C:\Windows\Temp» Если вы используете сторонний хостинг — пишите в службу поддержки, чтобы они дали права на изменение этой папки. У самого была такая проблема, потому в курсе что это.

      • Юрий говорит:

        Спасибо! Ждите поток посетителей — перерыл половину интернета, видел аналогичные вопросы от пользователей (именно про работу в локальной сети), но никто внятно ответить на них не мог!! Теперь найдут панацею здесь! Еще раз благодарствую!!))

  21. Кирилл говорит:

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

  22. Кирилл говорит:

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

  23. Алексей говорит:

    Здравствуйте, ув.автор. Спасибо за подробные инструкции. Много нового узнал благодаря вам. Но у меня вопрос возник следующий: как развернуть два сайта. Добавление нового сайта в службу IIS я произвел, здесь нет ничего трудного. Использую сервер, две сетевые карты. На каждом порту свой сайт прописан. А именно: 192.168.1.10:80 и http:192.168.1.11:80 Сейчас успешно работает один сайт, все нормально. На другой домен не покупался еще. Скажите, проблема лишь в том что нет другого домена на другой сайт, или нужны еще какие-то настройки? Спасибо.

    • Алексей говорит:

      Разобрался. Кто не будет знать ответ — пишите «Ответить» объясню.

      • Дмитрий говорит:

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

  24. Эля говорит:

    Добрый день, делала по вашей инструкции. Но по адресу http://localhost/ выходит Ошибка HTTP 500.0 — Internal Server Error
    C:\Program Files (x86)\php\php-cgi.exe — Непредвиденное завершение процесса FastCGI
    Подскажите, пожалуйста, в чем проблема в Интернете указания не помогают устранить проблему.

    • Виталий Онянов говорит:

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

  25. Иван говорит:

    Спасибо. Почти получилось. Сейчас PHP не работает, попробую переустановить, но доступ к файлам есть. А какие данные нужны, чтобы через filezilla залить к себе на сервер???

    • Виталий Онянов говорит:

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

  26. Эля говорит:

    Спасибо Вам, Виталий, за помощь! Получилось установить по вашей ссылке (Попробуйте выполнить установку PHP по этой статье.)

  27. Инна говорит:

    Добрый день, Виталий. Разместила сайт на локальном хостинге. Сайт на Джумле. Вот только материалы имеют ссылку ip и поэтому не открываются, а по имени нет. То есть все статьи сайты имею адрес ip.

    • Виталий Онянов говорит:

      Вы купили домен и настроили DNS-сервера на ваш IP-адрес?
      Если да, то проверьте адрес сайта в настройках самого сайта (в настройках Джумлы).

  28. flex0r говорит:

    Здравствуйте. Есть Windows Server 2012 R2, на котором в основном происходит работа с базами 1С, оперативки 16Гб, диск на 2Тб
    Будет ли целесообразно следовать Вашей инструкции или же стоит попробовать внутри сервера поднять виртуалку на виртуалбоксе с линуксом на борту?

    • Виталий Онянов говорит:

      Здравствуйте.
      Смотря для каких целей вам нужен веб-сервер:

      1. Если, например, только для организации веб-доступа к базам 1С или для какого-нибудь корпоративного портала, то поднимать виртуальную машину на этом же сервере не вижу смысла. Только поставьте доменную авторизацию на веб-сервере.
      2. Ну а если вы планируете размещать на веб-сервере различные сайты, использовать его для разработки приложений и т.д, и боитесь, что злоумышленники могут получить доступ к серверу, dвот тогда есть смысл перенести веб-сервер в отдельную виртуальную машину.
  29. Александр говорит:

    Здравствуйте!
    Не могу победить проблему:
    Установил WP, на самом сервере главная страница отображается как положено (дальше пока не сдвинулся), а при входе на сайт с другого компьютера у страницы нет графического оформления, только текст.

    • Виталий Онянов говорит:

      Вы правильно указали адрес сайта при настройках? Все настройки, необходимые для парковки домена выполнили?

  30. Катя говорит:

    Добрый день, Виталий. Сделала как по инструкции, но сайт на wordpress запускается только локально. У нас стоит интернет шлюз и выход в инет через. На сервере ip 192.168.12.14, проброс виртуальных портов на роутере сделала, на сервере тоже с помощью обратного прокси. Может что-то еще пропустила и поэтому сайт из Интернета не виден?

    • Виталий Онянов говорит:

      А стартовая страница IIS из внешней сети видна? Проверить можно по ссылке http:// < Ваш_внешний_IP >
      Используете ли вы доменное имя? Если да, то выполнили ли вы привязку домена к IP-адресу?

      • Nina говорит:

        Сделала все как в статье, локально все нормально работает, а через http:// нет((. Проброс портов сделан. Где еще нужно сделать настройки?

        • Виталий Онянов говорит:

          Здравствуйте.
          А приведите пожалуйста полный путь неработающей ссылки и полный путь работающей.

  31. Александр говорит:

    Спасибо большое! Статья очень помогла (учитывая отсутствие опыта в данном деле).

  32. Дмитрий говорит:

    Доброго времени суток!
    Извиняюсь за свою недалекость, но скачав кучу архивов по ссылке: http://windows.php.net/download/, так и не нашел экзэшника — как его устанавливать?

  33. YariC говорит:

    Доброго времени суток, у меня вопрос имеется локальная сеть более 100 компов, на сервере установлена винда сервер 2008, выхода из сети в интернет нет, возможно ли создать на сервере сайт для своей локальной сети?

    • Виталий Онянов говорит:

      Да, конечно же. В данной статье как раз инструкция, как это сделать.

      Обращение к такому локальному сайту будет по IP-адресу или сетевому имени компьютера.
      Например, http://192.168.0.85.

      Если сайтов несколько, можно разделить их по портам.
      Например, http://192.168.0.85:81 и http://192.168.0.85:82

  34. Степан говорит:

    Не могу добавить сайт в диспетчере служб IIS. Нет возможности выбрать привязку, соответсвенно, кнопка ОК не активна. в какой стороне искать проблему?

    • Виталий Онянов говорит:

      Странно, я с такой проблемой не сталкивался. А сайт по внутреннему адресу работает? Другие кнопки активны?

  35. Павел говорит:

    Интересно как же ты без CGI PHP подцепил?

  36. Аноним говорит:

    Долго мучился с ошибкой 500, пока не открыл «localhost» яндекс браузером, и тот мне написал что WP одной версии и PHP версия не поддерживается. поставьте PHP более свежую. и помогло!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *