У меня есть Windows 2003 Server, на котором запущен IIS (из-за необходимости размещения сайта ASP).
Я хотел добавить несколько сайтов без ASP (HTML, PHP и MySQL), поэтому я подумал, что могу просто запустить apache на 8080.
Что меня немного смущает, так это то, что если кто-то попадает на DomiainA.com, IIS перехватывает его и перенаправляет на DomainA.com:8080, где запущен apache. Я мог бы сделать это, поместив переадресацию javascript на стороне сервера в www-root IIS для домена.
Что еще я могу сделать более правильным?
Как уже упоминал кто-то другой, нет причин, по которым вы не можете запускать приложение PHP под IIS. Сказав это, вы можете настроить IIS для прослушивания только определенных IP-адресов (по умолчанию он будет занимать порт 80 на каждом IP-адресе на компьютере, независимо от того, настроен ли ваш сайт для использования этого IP-адреса или нет). Затем вы можете запустить Apache на IP-адресе (ах), которые не привязаны к IIS, и без каких-либо проблем иметь оба рядом друг с другом. Я бы просто запустил приложение PHP в IIS, если нет веской причины использовать Apache.
Обычно это решается с помощью правил переадресации, когда сервер сообщает клиенту правильное местоположение (прозрачно для пользователя, но он увидит правильный URL). В Apache правила перенаправления очень легко использовать: глобально в конфигурации или локально с использованием файлов .ht *.
Если это сложно сделать с IIS или IIS не предоставляет недорогого решения (например, производительности, задержки), возможно, вы захотите запустить Apache на порту 80 и IIS на 8080.
В противном случае я бы не хотел поддерживать сразу два веб-сервера, если мне это не нужно. (Примечание: Apache превосходит другие, поэтому наличие отдельного IIS для обслуживания ASP действительно имеет смысл)
PHP работает под управлением IIS. Вам нужно будет найти лучшую причину для запуска httpd ...
Я также рекомендую вариант PHP под IIS.
Купите, если вам действительно нужно 2 работающих сервера, вы можете использовать ISA Server:
http://www.microsoft.com/forefront/edgesecurity/isaserver/en/us/features.aspx?pf=true
Помимо прочего, он позволяет выполнять переадресацию портов.
Не выполняйте перенаправления с помощью JavaScript, это будет плохой дизайн.
Если вы хотите справиться с этим без запутанной настройки, просто запустите PHP через IIS и пропустите второй сервер.