Статьи

Как запустить Apache и IIS одновременно: часть 2

В первой части этой статьи мы обсудили, как Apache и IIS могут быть установлены на отдельных реальных или виртуальных машинах. Однако, это может быть непрактично, если вы являетесь ведущим разработчиком в команде из одного человека. В этом посте мы обсудим, как вы можете установить оба сервера на одном компьютере.

Одновременные серверы

Вы можете установить Apache и IIS на одном ПК с Windows одновременно. Несмотря на то, что приложения будут работать, они оба будут прослушивать веб-запросы на TCP-порту 80 — будут конфликты, поэтому потребуется небольшая настройка.

Самое простое решение — изменить порт по умолчанию для одного из серверов на 81 (или любой другой запасной номер). В Apache вы можете изменить директиву Listen в файле конфигурации httpd.conf:


Listen *:81

В IIS вы меняете настройку привязок в диспетчере IIS:

Привязки портов IIS TCP

Microsoft предоставляет полезную страницу с инструкциями по TCP-порту для всех версий IIS .

Поэтому URL-адрес браузера будет http: // localhost / для сервера, использующего порт 80, и http: // localhost: 81 / для сервера, использующего порт 81.

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

Это отличное решение, но я им не пользуюсь. Основные причины: я часто забываю сменить порт при тестировании, альтернативный номер порта может вызвать сложности при разработке, редко мне нужны оба сервера одновременно, и мне не нравятся фоновые программы, работающие, когда я не использую их. К счастью, есть альтернатива …

Переключение серверов

Мое предпочтительное решение — запускать любой сервер, который мне нужен, когда он мне нужен. Apache и IIS запускаются как служба Windows — откройте Администрирование > Службы . Найдите Apache и IIS (W3SVC — World Wide Web Publishing Service) и установите для обоих типов запуска значение Вручную:

Привязки портов IIS TCP

(Запишите имя службы Apache — на скриншоте выше это «Apache2.2».)

Ни один из серверов не будет работать при загрузке вашего ПК. Чтобы запустить и остановить службы, мы собираемся создать 4 пакетных (.bat) файла в одной папке. Пакетные файлы представляют собой список команд командной строки, которые существовали со времен MS-DOS:

старт-apache.bat
Это остановит IIS и запустит / перезапустит Apache. (Обратите внимание, что «Apache» считается именем службы в третьей строке, но ваша установка может отличаться.)

 
@call stop-iis.bat
@call stop-apache.bat
@net start Apache

стоп-apache.bat
Это остановит Apache (при необходимости измените имя службы).

 
@net stop Apache

старт-iis.bat
Это остановит Apache и запустит / перезапустит IIS.

 
@call stop-apache.bat
@call stop-iis.bat
@net start W3SVC

стоп-iis.bat
Это остановит IIS в Windows Vista или 7.

 
@net stop was /y

стоп-iis.bat
Это остановит IIS в Windows XP или более ранней версии.

 
@net stop iisadmin /y

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

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