В последнее время с WAMP Server происходят всякие неприятности -- периодическая недоступность сайта, неудачные настройки по-умолчанию, поэтому мы решили перевести все наши учебные курсы на использование XAMPP. Про него написана новая инструкция, тоже с картинками, а эту инструкцию предлагается считать устаревшей (хотя снимать с публикации мы её не будем, оставим для истории, ну и может быть ещё кому-нибудь пригодится).

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

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

Конечно, платформ для разработки веб-приложений существует немало – ASP.Net, Ruby on Rails, Java EE и другие, для разработки используются самые разные языки программирования, и в одной инструкции совершенно невозможно охватить всё это разнообразие. Поэтому я решил ограничиться наиболее широкораспространённым случаем:

  • сервер предназначен для приложений, разработанных на PHP,
  • устанавливается на операционную систему Windows, как наиболее часто встречающуюся на рабочих станциях.

Типовая инфраструктура для развертывания современных веб-приложений включает в себя как минимум три составных элемента:

  • собственно платформа разработки, условно говоря -- интерпретатор языка программирования (PHP, Python, Ruby, .Net, Java, ...),
  • база данных, в которой приложение хранит данные (MySQL, Postgress, MS SQL Server, Oracle, ...),
  • веб-сервер, который принимает запросы от клиентов и перенаправляет их приложению (Apache, Nginx, IIS, ...)

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

Но есть исторически сложившиеся популярные связки, из которых особо можно выделить две комбинации: Apache + MySQL + PHP и Nginx + MySQL + PHP. Для них существуют готовые "инсталляционные пакеты", которые позволяют устанавливать компоненты не по отдельности, а все разом, что весьма удобно для "локального веб-сервера" -- быстро и просто.

Из множества подобных пакетов я выбрал WampServer, потому что он наиболее тесно интегрируется с операционной системой Windows -- "нативный" инсталлятор, компоненты устанавливаются как сервисы Windows, удобный механизм остановки, запуска и конфигурирования через меню в трее.

Часть 1: делай раз, делай два, делай три!

Итак, устанавливаем и запускаем WampServer.

1. Отправляемся на сайт http://www.wampserver.com/ , чтобы загрузить дистрибутив. Сайт неожиданно оказывается на французском языке, но к счастью имеется не только английская, но даже русская версия!

2. Выбираем, какой из дистрибутивов загрузить. Обратите внимание на битность (32 или 64) -- она должна совпадать с битностью вашей операционной системы.

3. На следующем шаге не пропустите важную информацию -- для работы WampServer нужно установить Visual C++ 2010 SP1 Redistributable Package, то есть набор дополнительных библиотек от компании Microsoft. Опять таки выбирайте ту версию, которая соответствует битности вашей системы.

В итоге вы должны загрузить два файла:

  • Visual C++ 2010 SP1 Redistributable Package нужной битности (32 или 64),
  • инсталлятор WampServer с именем типа такого: Wampserver2.4-x64.exe

4. Инсталлируем последовательно сначала Visual C++ 2010 SP1 Redistributable Package, затем WampServer.

Здесь никаких картинок не будет, потому что процедура инсталляции стандартная – достаточно просто всё время нажимать кнопку Next в визарде. Конечно, при желании вы можете изменить директорию, в которую будет проинсталлирован WAMP Server, но в дальнейшем будет предполагаться, что он установлен в директорию, предлагаемую по умолчанию, то есть C:\wamp

5. WampServer установлен, идём в меню Start (Пуск), ищем там папку WampServer, в ней пункт start WampServer, и запускаем его.

6. Вместе с самим сервером запускается WampManager, который сидит в трее (области уведомлений) и позволяет контролировать текущее состояние сервера, а также выполнять с ним различные манипуляции. Появившаяся в трее иконка WampManager поначалу имеет красный цвет, но постепенно становится оранжевой, а затем зелёной. Если это произошло -- значит, всё отлично, сервер успешно стартовал.

7. Осталось только зайти браузером по адресу http://localhost/ и убедиться, что сервер действительно работает!

Теперь можно туда устанавливать веб-приложения, но это уже другая история.

А мы не будем спешить, оглянемся назад и рассмотрим ситуации, когда не всё заработало с первой попытки. Вся оставшаяся часть статьи посвящена решению различных проблем с запуском и настройкой WampServer, если у вас всё запустилось и в браузере открылась приветственная страница WampServer -- дальше можно не читать :)

Часть 2. Что-то не получилось…

Что может помешать серверу нормально работать?

Вариантов всего три:
1. сервер неправильно установился
2. правильно установился, но не запускается какой-то из компонентов
3. всё запустилось, но сервер недоступен из браузера

Сейчас мы последовательно рассмотрим симптомы различных проблемных ситуаций, и для каждой из них будет указана причина проблемы и способ её устранения.

F1. WampServer не запускается, либо запускается, но любые действия с WampManager приводят к появлению системного сообщения об ошибке примерно такого вида:

Картинка - диалог ошибка (поискать в форуме)

Это означает, что вы невнимательно прочитали пункт 3 и забыли установить Visual C++ 2010 SP1 Redistributable Package, либо установили, но не той битности. Для надёжности на 64-битную систему можно установить оба (и 32-битный, и 64-битный).

После установки Visual C++ 2010 SP1 Redistributable Package проблема должна исчезнуть, но возможно потребуется перезапуск WampServer.

F2. WampServer вроде бы запустился, но иконка осталась красной, либо стала оранжевой, а зелёной не становится.

WampServer устанавливает в систему два сервиса -- wampapache и wampmysqld.

Зелёная иконка в трее означает, что они оба запущены, оранжевая -- работает только какой-то один из двух, красная -- оба сервиса остановлены.

Почему какой-то из этих сервисов может не стартовать? У этого явления может быть две причины

  • "неправильно установилось", либо
  • "что-то мешает запустить".

Против "неправильно установилось" есть только один способ борьбы -- установить заново. Но для этого не нужно снова прогонять весь визард-инсталлятор. Обычно просто при установке неудачно инсталлируются сервисы Windows. Поэтому WampManager (который сидит в трее) имеет специальные команды для удаления и повторной установки этих сервисов:

Более того, чаще всего неудачно устанавливается сервис apache, потому обычно достаточно обновить его. Сначала удаляем сервис, потом повторно его инсталлируем. После чего останавливаем все сервисы WampServer и вновь запускаем их:

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

Mysql использует порт 3306, веб-сервер Apache использует порт 80. Оба эти порта должны быть свободны, иначе соответствующий компонент не запустится.

Маловероятно, что какое-то приложение займёт порт 3306, если только на вашем компьютере не установлен ещё один экземпляр Mysql. А вот порт 80 запросто может быть занят.

Как узнать, какое приложение заняло нужный порт?

Способ первый -- через консоль с использованием утилиты netstat.

Запускаем консоль и в ней выполняем команду netstat -ao | find /i "listening"

Во второй колонке ищем 0.0.0.0:80 -- и в последней колонке той же строки будет указан идентификатор процесса, который занимает 80-й порт.

Затем запускаем менеджер процессов, в нём делаем видимой колонку, в которой показываются идентификаторы процессов, и ищем процесс с известным нам идентификатором.

Способ второй -- с использованием утилиты Sysinternals TCPView.

Это, в общем, то же самое, но в более удобной форме -- с использованием графического, а не консольного интерфейса.

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

Если порт 80 занял какой-то другой веб-сервер (IIS, другой ранее установленный apache) -- подумайте, нужен ли он вам, можно ли его остановить, и остановите.

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

Если вы не хотите или не можете перенастроить мешающее приложение -- не проблема, в этом случае можно изменить настройки WampServer.

Нажимаем в трее на иконку WampManager, идём в меню Apache и выбираем пункт httpd.conf -- конфигурационный файл веб-сервера открывается на редактирование в выбранном вами текстовом редакторе.

Находим в нём строчку Listen 80 и меняем номер порта на какой-нибудь другой, желательно достаточно большой (по крайней мере больше 1024, так как все порты с меньшими номерами имеют "стандартные" назначения) и никем не занятый (проверьте это, используя netstat или TCPView, как описано выше). Например, указываем номер порта 8080.

Сохраняем файл, перезапускаем WampServer -- и на этот раз он таки должен позеленеть!

Единственное неудобство в этом случае заключается в том, что нестандартный номер порта придётся всегда указывать в адресе -- теперь ваш веб-сервер будет доступен по адресу http://localhost:8080/

F3. Иконка WampServer зелёная, но сайт в браузере не открывается.

Возможные причины:

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

Чтобы исключить первую причину, попробуйте в адресе указать не сетевое имя, а IP-адрес: http://127.0.0.1/ (или http://127.0.0.1:8080/ при использовании порта, отличного от стандартного).

Если получилось открыть приветственную страницу WampServer -- значит, проблема в том, что в файле hosts не описано сетевое имя localhost. Открываем в любом текстовом редакторе файл C:\windows\system32\drivers\etc\hosts и добавляем туда строчку

127.0.0.1 localhost

После того, как это изменение внесено -- вновь пробуем использовать в адресе сетевое имя, то есть открываем в браузере адрес http://localhost/, теперь всё должно сработать правильно.

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

Браузеры Internet Explorer и Chrome используют системные настройки прокси, вот так они должны выглядеть (стоит галочка "Не использовать прокси-сервер для локальных адресов"):

Браузер Firefox может иметь свои собственные настройки, отличные от системных, тогда нужно вписать адрес 127.0.0.1 в список исключений:

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

Вот и всё, теперь уж точно сервер работает и можно переходить к установке приложений!

Go to top