Здесь я расскажу как организовать хостинг сайта на своем компьютере. Для примера — сайт под управлением WordPress. В качестве операционной системы будет использоваться Windows Server 2008 R2. (о организации хостинга в Windows 8 можно прочитать здесь). Кто-то начнет сразу кричать о легкости и бесплатности Linux, и я не буду спорить, но мне нравится эта ОС. Она надежная и легкая в администрировании. На мой субъективный взгляд у нее один недостаток — цена. Кроме того, я не утверждаю, что представленная ниже конфигурация сервера для хостинга является самой лучшей и удобной. Я просто опишу последовательность действий, который я предпринял, чтобы мой сайт заработал. Итак:
0. Оглавление
1. Что потребуется
- Подключенный к сети Интернет, постоянно работающий компьютер, под управлением Windows Server 2008 R2 (О том как установить Windows Server 2008 я писал здесь).
- Выделенный IP-адрес на текущем подключении.
- Зарегистрированное доменное имя (О том как это сделать можно прочитать здесь).
- Доменное имя должно быть привязано к текущему выделенному 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)» вводим имя нашего домена. Нажимаем «Сохранить изменения» и….
Все, наш сайт готов. Можно пользоваться. Для проверки вводим в строке браузера имя сайта и, если все сделано правильно, попадаем на начальную страничку.
а про хостинг на своем БЕСПЛАТНОМ сервере можете рассказать?
Это хорошо. а как теперь на сайт зайти из вне??????
Когда всё сделаешь, а про днс ниче не сказал? как сделать чтобы сайт для всех работал?
Как я уже писал, чтобы сайт работал «для всех» надо выполнить пункты 2-4 раздела «0. Что потребуется», а именно:
2. Купить выделенный IP-адрес на текущем подключении.
3. Зарегистрированное доменное имя (О том как это сделать можно прочитать здесь).
4. Доменное имя должно быть привязано к текущему выделенному IP (И об этом я тоже писал здесь)
Добрый день. Перехожу по ссылке скачать MySQL и там 3 варианта и все только zip-архивами. Скачиваю подходящий и после скачки распаковываю архив, но там не инсталятор а уже распакованная версия. Вопрос как ее применить ? Как запустить настройку или как вообще ее запустить ? Ткните носом пожалуйста.
Нашел инсталятор по этой сслыке: http://www.mysql.com/downloads/installer/
спасибки очень помогло
Добрый день!! Не могу понять как сделать так чтобы сайт был виден пользователям из вне,как на обычном хостинге,все перепробовал что-то не получается по данной статье сделать сайт видимым для других. выделенный ip есть привязан у регистратора к имени.
Для того чтобы сайт был виден из вне необходимо:
1. Белый IP на текущем соединении.
2. Создать запись DNS: Ваш домен — Ваш IP.
3. Дождаться, пока запись DNS начнет действовать. Может пройти до 2 суток. Чтобы проверить добавлена ли запись DNS попробуйте «пропинговать» свой домен, обмен пакетами должен начаться с вашим IP адресом.
4. На вашем WEB-сервере должен быть открыт 80 порт.
5. Если есть маршрутизатор, то на нем необходимо пробросить 80 порт на WEB-сервер.
было бы полезно указать это в самой статье
и добавить информацию про исключения брендмауэра (у меня только после этого начал работать)
А если несколько сайтов и несколь доменных имен, а айпи один, то как настраивать?
Настраиваете все точно также как в инструкции, только для каждого сайта добавляете новый WEB-сайт в IIS (Пункт 6) забив адрес сайта в имя узла привязки. Соответственно для каждого сайта привязка к имени должна быть своя. Далее устанавливаете файлы сайта в новую директорию, и создаете для него новую базу данных.
Есть возможность реализации не на mysql а на mssql 2005 ?
Да, конечно, можете выбирать любую систему управления баз данных, лишь бы ее поддерживала CRM Ваших сайтов.
Хотел бы спросить .. перебросил свой сайт с денвера на Windows Server 2008 R2 всё получилось работает …
но есть ошибка движок просит открыть Внимание!
Отсутствует доступ для записи в папки engine/cache/ и engine/cache/system/. Установите для этих папок CHMOD 777, а для всех файлов внутри них CHMOD 666!
пробовал установить движок заново при проверке CHMOD в установке тоже ошибка нет доступа к папкам
как исрпавить или настроить … заранее спс
Проверьте, что у пользователя IIS_IUSRS есть доступ к данными папкам. Если не поможет, попробуйте дать группе Все полный доступ к этим директориям.
О настройке доступа в Windows можете прочитать в статье Настройка прав доступа к общим папкам в ОС Windows
Здравствуйте, Установил все как сказали, даже прикрутил к серверу домен, но проблема в том что вылезает ошибка 500. в интернете искал так не чего и не нашел, подскажите.
Расскажите по больше про доступ.
Для какого сайта у вас вылезает ошибка 500? Стартовую страницу IIS для Defaul Web Site вы видите?
Однозначно хорошая статья, только автор забыл прописать в файле hоsts свой сайт. Пример
127.0.0.1 mysite.ru, либо
lоcalhst mysite.ru
Зачем это делать? Ведь по адресу mysite.ru он и так попадет на данный сервер, если настроена привязка IP-адреса к имени.
Все доступно изложено. Спасибо
Подскажите, пожалуйста, с web-сервером все получилось, не работают короткие имена SEF URL
Подскажите, если поставить Windows Server второй виндой, а на него Web-сервер, будет ли работать?
Windows Server ставится второй виндой также как и любая другая версия Windows. Все поднятые службы будут работать только при условии запуска данной версии Windows. Если Вы хотите, что одновременно работали и Десктопная и Серверная Windows, смотрите в сторону виртуальных машин.
Здравствуйте! А как тоже самое, но с joomla, объясните пожалуйста! Спасибо!
Да все тоже самое в общем то, за тем лишь исключением, что на 4-ом шаге вы вместо WordPress скачиваете и устанавливаете Joomla. 🙂
а как попасть на страницу установки joomla? Я до этого ее ставила только на денвер ((
Если Вы скачали этот пакет https://github.com/joomla/joomla-cms/releases/download/3.3.6/Joomla_3.3.6-Stable-Full_Package.zip, и распаковали его в каталог содержимого сайта, то открыть его можно по адресу http://localhost/index.php. Конечно, откроется он, если настройка IIS прошла верно.
о! спасибо )
все прошла, все перенесла, а при входе в админку джумла выдает ошибку 404 ((
Здравствуйте! у меня такая вот проблема, установка IIS дело в том, что у меня отсутствует следующие параметры: я не могу найти на своем компьютере win7 — Диспетчер сервера тем самым не могу выбрать мастер добавления ролей в диспетчере служб IIS отсутствует Default Web Server прошу помочь мне.
Доброго времени суток.
Действительно, в Windows 7 отсутствует диспетчер сервера. Процесс добавления ролей (в частности роли IIS) аналогичен добавлению ролей в Windows 8, о чем можно прочитать на нашем сайте здесь.
Здраствуйте! Есть локальный сайт на win сервере 2008, нужно сделать одну из страниц доступной с внешней. Подскажите как можно это сделать?
Доброго времени суток.
Для решения вашей задачи необходимо сделать следующее:
1. Приобрести у провайдера статический IP-адрес.
2. Зарегистрировать домен и настроить привязку домена к вашему IP-адресу (этого можно и не делать, в этом случае к веб-сайте необходимо будет обращаться по IP-адресу). Подробнее об этом я писал Привязка доменного имени к выделенному IP.
3. На маршрутизаторе пробросить 80-ый порт из внешней сети на ваш веб-сервер.
4. На веб-сайте настроить привязку необходимого сайта к приобретенному доменному имени (либо настроить привязку всех запросов к данному сайту, если обращение осуществляется по IP-адресу).
Но в таком случае будет доступен весь сайт, а как сделать доступной только 1 страницу?
Плюс по этому ip на другом сервере расположен хостинг другого сайта
Доброго дня всем!
у меня localhost не стартует( с ошибкой
Пути все нормальные, имена, пароли, явки то же имеется предположение, что проблема в файле wp-config.php
C:\Windows\System32\inetsrv\config\applicationHost.config строка 163
Вопрос: у меня сеть из нескольких компьютеров и есть сервер. Заявку на статический IP отправил. На сервер залит сайт на wordpress, все работает, установилось. Спасибо автору. Вопрос, как мне с обычного компьютера в сети подключиться к серверу и править сайт, потому что домен еще не купил, а стоять в серверной и работать через localhost неудобно. Спасибо.
Уже разобрался
Здравствуйте, на сайте php только зип и в гугле найти не могу, не подскажите как из архивов все это установит и настроить?
Здравствуйте. Обновленная подробная инструкция по установке php в Windows есть здесь. Для Windows Server 2008 все точно также.
Перед покупкой домена, решил проверить работу сайта через сеть (по ip адресу отдельного сервера) и при попытке загрузить медиафайлы, получил сообщение — Временная папка не найдена.
Можно ли сделать так, что бы сайт заработал через локальную сеть или надо еще дошаманить чего нибудь?))
Разрешите изменение папки Temp на диске где установлена система. Если у вас свой сервер, то проблем не должно возникнуть. Да, перед этим убедитесь что в файле php.ini путь правильно прописан. Например: upload_tmp_dir = «C:\Windows\Temp» Если вы используете сторонний хостинг — пишите в службу поддержки, чтобы они дали права на изменение этой папки. У самого была такая проблема, потому в курсе что это.
Спасибо! Ждите поток посетителей — перерыл половину интернета, видел аналогичные вопросы от пользователей (именно про работу в локальной сети), но никто внятно ответить на них не мог!! Теперь найдут панацею здесь! Еще раз благодарствую!!))
Рад был помочь.
Здравствуйте! такая проблема сделал все как вы написали статический ip проброс через роутер, из вне пользователи могут просматривать сайт, а вот компьютеры которые находятся в локалке в том числе сервер не открывают, что может быть за причина, все пингуется
В настройках вордпресса стоит домен или IP?
У меня такая проблема все сделал как вы написали выше статический ip, проброс через роутер, сайт пингуется из вне заходится но с самого сервера и компьютеров локально сети не могут зайти пишет веб страница не доступна. в чем проблема?
Здравствуйте, ув.автор. Спасибо за подробные инструкции. Много нового узнал благодаря вам. Но у меня вопрос возник следующий: как развернуть два сайта. Добавление нового сайта в службу IIS я произвел, здесь нет ничего трудного. Использую сервер, две сетевые карты. На каждом порту свой сайт прописан. А именно: 192.168.1.10:80 и http:192.168.1.11:80 Сейчас успешно работает один сайт, все нормально. На другой домен не покупался еще. Скажите, проблема лишь в том что нет другого домена на другой сайт, или нужны еще какие-то настройки? Спасибо.
Разобрался. Кто не будет знать ответ — пишите «Ответить» объясню.
подскажи пожалуйста,
все поставил, хочу обновить спрашивает доступ к фтп
т.е. обновить плагин или сам вордпресс не получается запрос ftp сервера и логин пароль, пытался создать фтп в корневую папку вордперса не помогло. winserver2008
отбой, разобрался.
Добрый день, делала по вашей инструкции. Но по адресу http://localhost/ выходит Ошибка HTTP 500.0 — Internal Server Error
C:\Program Files (x86)\php\php-cgi.exe — Непредвиденное завершение процесса FastCGI
Подскажите, пожалуйста, в чем проблема в Интернете указания не помогают устранить проблему.
Здравствуйте.
Попробуйте выполнить установку PHP снова, по этой статье.
Также попробуйте перезагрузить компьютер.
Спасибо. Почти получилось. Сейчас PHP не работает, попробую переустановить, но доступ к файлам есть. А какие данные нужны, чтобы через filezilla залить к себе на сервер???
Попробуйте выполнить установку PHP по этой статье.
Для того, чтобы можно было загружать файлы по протоколу FTP, необходимо поднять сервер FTP. Подробности здесь.
Спасибо Вам, Виталий, за помощь! Получилось установить по вашей ссылке (Попробуйте выполнить установку PHP по этой статье.)
Добрый день, Виталий. Разместила сайт на локальном хостинге. Сайт на Джумле. Вот только материалы имеют ссылку ip и поэтому не открываются, а по имени нет. То есть все статьи сайты имею адрес ip.
Вы купили домен и настроили DNS-сервера на ваш IP-адрес?
Если да, то проверьте адрес сайта в настройках самого сайта (в настройках Джумлы).
Здравствуйте. Есть Windows Server 2012 R2, на котором в основном происходит работа с базами 1С, оперативки 16Гб, диск на 2Тб
Будет ли целесообразно следовать Вашей инструкции или же стоит попробовать внутри сервера поднять виртуалку на виртуалбоксе с линуксом на борту?
Здравствуйте.
Смотря для каких целей вам нужен веб-сервер:
Здравствуйте!
Не могу победить проблему:
Установил WP, на самом сервере главная страница отображается как положено (дальше пока не сдвинулся), а при входе на сайт с другого компьютера у страницы нет графического оформления, только текст.
Вы правильно указали адрес сайта при настройках? Все настройки, необходимые для парковки домена выполнили?
Добрый день, Виталий. Сделала как по инструкции, но сайт на wordpress запускается только локально. У нас стоит интернет шлюз и выход в инет через. На сервере ip 192.168.12.14, проброс виртуальных портов на роутере сделала, на сервере тоже с помощью обратного прокси. Может что-то еще пропустила и поэтому сайт из Интернета не виден?
А стартовая страница IIS из внешней сети видна? Проверить можно по ссылке http:// < Ваш_внешний_IP >
Используете ли вы доменное имя? Если да, то выполнили ли вы привязку домена к IP-адресу?
Сделала все как в статье, локально все нормально работает, а через http:// нет((. Проброс портов сделан. Где еще нужно сделать настройки?
Здравствуйте.
А приведите пожалуйста полный путь неработающей ссылки и полный путь работающей.
Спасибо большое! Статья очень помогла (учитывая отсутствие опыта в данном деле).
Доброго времени суток!
Извиняюсь за свою недалекость, но скачав кучу архивов по ссылке: http://windows.php.net/download/, так и не нашел экзэшника — как его устанавливать?
Здравствуйте.
Статья немного устарела. Более подробная инструкция по установке PHP на IIS есть здесь: http://tavalik.ru/ustanovka-php-na-veb-server-iis/
Доброго времени суток, у меня вопрос имеется локальная сеть более 100 компов, на сервере установлена винда сервер 2008, выхода из сети в интернет нет, возможно ли создать на сервере сайт для своей локальной сети?
Да, конечно же. В данной статье как раз инструкция, как это сделать.
Обращение к такому локальному сайту будет по IP-адресу или сетевому имени компьютера.
Например, http://192.168.0.85.
Если сайтов несколько, можно разделить их по портам.
Например, http://192.168.0.85:81 и http://192.168.0.85:82
Не могу добавить сайт в диспетчере служб IIS. Нет возможности выбрать привязку, соответсвенно, кнопка ОК не активна. в какой стороне искать проблему?
Странно, я с такой проблемой не сталкивался. А сайт по внутреннему адресу работает? Другие кнопки активны?
Интересно как же ты без CGI PHP подцепил?
Долго мучился с ошибкой 500, пока не открыл «localhost» яндекс браузером, и тот мне написал что WP одной версии и PHP версия не поддерживается. поставьте PHP более свежую. и помогло!