Iis настройка приложений cgi


Содержание

Как настроить сервер IIS для запуска ISAPI приложения?

Этот пост для тех, кто хочет узнать как настраивать IIS для работы ISAPI приложений и как их потом запускать. Предполагается, что ISAPI приложение уже создано и нам нужно только настроить IIS и запустить наше приложение на localhost

IISInternet Information Server – программа-сервер, от компании Microsoft (у меня на борту Windows 8.1 стояла версия IIS 8.5, единственное, нужно было её активировать).

Как настроить сервер IIS для запуска ISAPI приложения?

Теперь одна из самых важных вещей – настройка сервера IIS. Об этом я уже много и подробно писал в длинной и подробной статье “Delphi+UniGui. Пишем первый “Hello World” под WEB. Легко и просто”, поэтому в принципе, материал той статьи подойдет в большинстве своем и для этой статьи. Пэтому, часть того материала, я просто копирую.

Основные шаги по настройке IIS

Добавляем новый пул приложений

Назовем его, скажем, MyWebApps, версия среды – без управляемого кода, режим конвейера – встроенный. Делаем все как на картинке ниже

Заходим в настройки…

Включаем поддержку 32-разрядных приложений

Далее, настраиваем параметры перезапуска

Жмем Ок, выходим из этого окна.

Далее идем в сайты и добавляем новое приложение

Выбираем псевдоним, пул приложений, физический путь. Внимание, в этом месте вместо псевдонима MyWebApplication – поставьте myapp, чтобы пример выше из этого поста заработал.

Выбираем физический путь, например C:\WebAps

Далее, 2 раза кликаем на MyWebApplication на дереве слева

Далее, убеждаемся что ISAPI-dll находится в группе Enabled (Включен), если в группе Disabled (Выключен), то…

Включаем, если отключен

Далее
Далее, добавляем приложение в число разрешенных…

Выбираем физический путь

В итоге должно получиться так…

Как обратиться к ISAPI приложению в браузере?

Первый вариант – напрямую

Далее, можно попробовать открыть браузер и набрать в адресной строке

Настройка веб-сервера IIS, часть 1

Internet Information Services (IIS) это набор интернет-серверов от компании Microsoft. Основным компонентом IIS является веб-сервер, хотя этим дело не ограничивается. Последняя восьмая версия IIS поставляется со всеми редакциями Windows Server 2012 R2.

Несмотря на проприетарность IIS, доля этого набора сервисов на рынке постепенно увеличивается. В интернете можно отыскать множество сакральных споров, что же всё таки лучше — IIS, Apache или, скажем, Nginx. Не будем им уподобляться, просто скажем в каких случаях в основном используется IIS.

Самый удобный вариант использования IIS — когда всё ваше рабочее окружение (и серверная его часть тоже) работает на Windows. В таком случае Вы можете получить от IIS ряд удобных «плюшек» для работы в домене. В конце концов, ведь IIS это еще и FTP-сервер, и почтовый сервер. Интерфейс IIS довольно нагляден, что вообще свойственно Windows-среде. Ну и, конечно, IIS пригодится вам, если вы используете MS SQL.

Для включения IIS в Windows Server 2012 R2 зайдите в Диспетчер серверов.

В Диспетчере серверов найдите пункт «Добавить роли и компоненты».

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

Убедитесь, что у Вас включен CGI.

После этого в разделе Администрирование у Вас появится Диспетчер служб IIS.

Вы можете так же включить IIS в Windows 7 Профессиональная и Максимальная, а также в Windows 8. Для этого перейдите в Панель управления → Программы → Включение или отключение компонентов Windows.

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

Справа перечислены сервера и сайты. По умолчанию на системном разделе создается папка inetpub, в которой находятся папки ftproot и wwwroot для FTP-серверов и веб-сайтов соответственно.

Установка PHP на IIS

Для установки PHP перейдите по ссылке и скачайте ZIP-архив с версией Non Thread Safe. Обозначение VC11 возле версии обозначает, что для её компиляции необходим Visual C++ Redistributable for Visual Studio 2012. Для старых версий, маркированных как VC9, требуется Visual C++ Redistributable for Visual Studio 2008 SP1.

Директорию для распаковки ZIP-архива можно выбрать по своему усмотрению. После извлечения архива создайте копию файла php.ini-production под именем php.ini в той же папке.

Файл php.ini содержит правила исполнения PHP и работы с окружением, в котором он исполняется. Есть ряд обязательных параметров, которые должны быть прописаны. Ниже список этих параметров.

extension_dir = [путь к директории расширений] — этот параметр отвечает за расположение расширений PHP. Например, C:\php\ext.

extension = xxxxx.dll — для каждого подключаемого расширения необходимо прописать такую директиву. Такие расширения будут подгружаться при старте PHP.

log_errors = On — включение лога ошибок.

error_log = [путь к файлу лога ошибок] — собственно, тут всё понятно.

cgi.force_redirect = 0 — отключение механизма защиты директорий, под IIS данный параметр должен принимать именно такое значение во избежание ошибок ядра PHP в Windows.

cgi.fix_pathinfo = 1 — включение поддержки PATH_INFO согласно спецификации CGI. IIS FastCGI использует эту настройку.

fastcgi.impersonate = 1 — включение идентификации маркеров безопасности вызывающего клиента.

fastcgi.logging = 0 — логи FastCGI в IIS необходимо отключить.

Далее в свойствах системы необходимо откорректировать переменные среды. В Windows Server 2012 R2 необходимо зайти в Панель управления, выбрать пункт Система, там Дополнительные параметры системы. На вкладке Дополнительно внизу находится кнопка Переменные среды.

Среди системных переменных находим переменную Path и в поле Значение переменной дописываем путь к каталогу PHP. В моем примере это C:\php.

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

На панели действия щелкните по пункту Добавить сопоставление модуля и заполните в соответствии с тем, что видите на рисунке.

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

Проверим работу PHP. Для этого создаем файл index.php со следующим содержимым:

Если всё сделано правильно, то, набрав в адресной строке браузера http://localhost/index.php, Вы увидите следующую милую картинку:

Во второй части статьи поговорим о MySQL и phpMyAdmin.

Проблемы при настройке веб-приложения «Форсайт. Аналитическая платформа» на ASP.NET

При возникновении проблем в работе веб-приложения «Форсайт. Аналитическая платформа» в первую очередь проверьте следующие настройки:

Откройте «Диспетчер служб IIS» и выберите корневой элемент дерева «Подключения», дважды кликните «Ограничения ISAPI и CGI»:

Для строк «ASP.NET v4.0.30319» и «Axis2 v9.2 x64» в столбце «Ограничение» должно отображаться «Разрешено»:

Если это не так, то для каждой строки откройте диалог редактирования и установите флажок «Разрешить выполнение пути расширения».

Если отсутствуют строки «ASP.NET v4.0.30319», то выполните настройку Microsoft .NET Framework 4.5.2.

Если нет строки «Axis2 v9.2 x64», значит не зарегистрировалась библиотека продукта «Форсайт. Аналитическая платформа», добавьте ее вручную:

Откройте «Диспетчер служб IIS» и для виртуального каталога BI-сервера дважды кликните «Сопоставления обработчиков»:

В открывшемся списке должна быть строка:

Если ее нет, то создайте ее вручную, как показано ниже:

Проверьте, установлен ли флажок « Для всех пользователей на компьютере » в настройках подключения к серверному репозиторию в настольном приложении «Форсайт. Аналитическая платформа».

Возможные проблемы и решения при настройке приложений под IIS

Установите поддержку статического содержания в IIS.

Для этого откройте «Диспетчер сервера», перейдите в раздел «Роли — Веб-сервер (IIS)» и нажмите на ссылку «Добавить службы роли». В открывшемся окне установите флажок «Статическое содержимое»:

Нажмите кнопку «Установить».

Установите дополнительные опции в IIS.

Для этого откройте «Диспетчер сервера», перейдите в раздел «Веб-сервер (IIS)» и нажмите на ссылку «Добавить роли и компоненты». На странице «Роли сервера» установите флажки на компонентах как указано на скриншоте:

После отметки необходимых компонентов в конце мастера установки нажмите кнопку «Установить» и дождитесь окончания установки компонентов.

При открытии веб-приложения ответ содержит «Значение не может быть пустым» при условии, что BI-сервер работает корректно.

в настройках подключения к серверному репозиторию установите переключатель « Для всех пользователей на компьютере »:

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

если первые два варианта не помогают, то проверьте, прописаны ли настройки в ветке реестра: [HKEY_LOCAL_MACHINE\SOFTWARE\Foresight\Foresight Analytics Platform\9.0 \Metabases] .

В процессе авторизации в веб-приложении возникает ошибка: HTTP 500.21 — Internal Server Error IIS 7 и WCF. Обработчик «ppService» содержит поврежденный модуль «ManagedPipelineHandler» в списке модулей.

Если работа с веб-приложением ведется на удаленном от BI-сервера компьютере, то вместо текста ошибки BI-сервера в веб-приложении может отображаться ошибка «The page cannot be displayed because an internal server error has occurred». Чтобы вместо этого текста отображался текст ошибки BI-сервера, выполните следующие настройки IIS:

Запустите диспетчер служб IIS и перейдите в раздел «Страницы ошибок».

Для строки с кодом ошибки 500 выполните команду контекстного меню «Изменить параметры».

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

В процессе авторизации в веб-приложении возвращается сообщение об ошибке « Доступ запрещен », при этом авторизация в настольном приложении проходит без ошибок.

Решение: при использовании парольной авторизации необходимо в конфигурационном файле SQLNET.ORA, расположенном по пути S\oracle\ora92\network\admin\, где S — путь до места установки Oracle, заменить SQLNET.AUTHENTICATION_SERVICES = (NTS) на SQLNET.AUTHENTICATION_SERVICES = (NONE).

Если BI-сервер и серверная часть конструктора бизнес-приложений расположены в одном домене, а обращение к серверной части осуществляется из другого домена, то может возникнуть ошибка: « Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. »

Илон Маск рекомендует:  Что такое код cookies

Для исправления ошибки на веб-сервере IIS выполните следующие действия:

Откройте «Диспетчер служб IIS» и в дереве подключений выберите приложение, соответствующее BI-серверу — fp BI_App_v9.2×64.

Среди доступных функций выберите «Заголовки ответов HTTP».

Добавьте следующие заголовки:

« Access-Control-Allow-Headers » со значением « content-type, accept-language, get-ppbi-time, cache-control, soapaction »;

« Access-Control-Allow-Origin » со значением « * ». Для предоставления доступа только из определённых доменов вместо «*» можно указать наименования необходимых доменов: «http://www.a.com http://www.b.com».

Перезагрузите веб-сервер IIS.

Возможные проблемы и решения при настройке приложений под Apache

Если BI-сервер и серверная часть конструктора бизнес-приложений расположены в одном домене, а обращение к серверной части осуществляется из другого домена, то может возникнуть ошибка: « Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. »

Для исправления ошибки на веб-сервере Apache выполните следующие действия:

Откройте на редактирование файл httpd.conf.

Раскомментируйте следующие строки:

LoadModule rewrite_module modules/mod_rewrite.so

LoadModule headers_module modules/mod_headers.so

В блоке . для директивы AllowOverride задайте значение All , а также внутри блока добавьте следующие строки:

Header always set Access-Control-Allow-Headers «content-type, accept-language, get-ppbi-time, cache-control, soapaction»

Header always set Access-Control-Allow-Origin «*»

Microsoft IIS 7.0 и выше

Этот раздел содержит инструкции по настройке Internet Information Services (IIS) 7.0 и более поздних версий для работы с PHP на Microsoft Windows Vista SP1, Windows 7, Windows Server 2008 и Windows Server 2008 R2. Для получения инструкций по настройке IIS 5.1 и IIS 6.0 на Windows XP и Windows Server 2003 перейдите на страницу Microsoft IIS 5.1 и IIS 6.0.

Включение поддержки FastCGI в IIS

Модуль FastCGI при установке IIS по умолчанию отключён. Способы включения его различаются в зависимости от версии используемой Windows.

Для включения поддержки FastCGI на Windows Vista SP1 и Windows 7:

В меню «Пуск» выберите пункт «Выполнить», в появившемся окне введите с клавиатуры «optionalfeatures.exe» и нажмите «Ok»;

В открывшемся окне «Компоненты Windows» раскройте папку «Службы IIS», «Службы интернета», «Компоненты разработки приложений» и установите галочку напротив «CGI»;

Нажмите OK и ждите окончания процесса установки.

Чтобы включить поддержку FastCGI на Windows Server 2008 и Windows Server 2008 R2:

В Windows откройте меню Пуск выберите пункт «Выполнить:», наберите с клавиатуры «CompMgmtLauncher» и нажмите «Ok»;

Если роль «Веб-сервер (IIS)» не представлена во вкладке «Роли», добавьте её, выбрав «Добавить роли»;

Если роль «Веб-сервер (IIS)» присутствует, выберите «Выбор службы ролей» и установите галочку напротив «CGI» в группе «Компоненты разработки приложений»;

Нажмите «Далее» затем «Установить» и ждите окончания процесса установки.

Настройка IIS для обработки PHP запросов

Скачайте и установите PHP в соответствии с инструкциями, приведёнными в описании установки

При использовании IIS рекомендуется использовать потоко-небезопасную (Non-thread-safe) сборку PHP, которая доступна по ссылке » PHP для Windows: Установочные файлы и исходный код.

Измените CGI и FastCGI настройки в файле php.ini как показано ниже:

Пример #1 CGI и FastCGI настройки в php.ini

Настройте IIS обработчик для PHP, используя Интерфейс управления IIS или через командную строку.

Использование Интерфейса управления IIS для создания обработчика PHP

Следующие шаги позволят вам создать IIS обработчик для PHP в Интерфейсе управления IIS:

В Windows меню Пуск выберите команду «Выполнить:», введите в клавиатуры команду «inetmgr» и нажмите «Ok»;

В Интерфейсе управления IIS выберите сервер в дереве «Подключения»;

На «Начальной странице» откройте «Сопоставления обработчиков»;

На вкладке «Действия» выберите «Добавить сопоставление модуля. «;

В окне «Добавление сопоставления модуля» введите следующее:

  • Путь запроса: *.php
  • Модуль: FastCgiModule
  • Исполняемый файл: C:\[Path to PHP installation]\php-cgi.exe
  • Имя: PHP_via_FastCGI

Нажмите кнопку «Ограничения запроса» и сконфигурируйте сопоставление вызывать обработчик только при сопоставлении с файлом или каталогом;


Нажмите OK во всех диалогах для сохранения конфигурации.

Использование командной строки для создания сопоставления обработчика PHP

Используйте команды приведённые ниже для создания пула процессов IIS FastCGI который будет использовать php-cgi.exe выполняемый для PHP запросов. Замените значение параметра fullPath на абсолютный путь к файлу php-cgi.exe .

Пример #2 Создание IIS FastCGI пула процессов

Настройка IIS для обработки специфических запросов PHP из командной строки показана ниже. Замените значение параметра scriptProcessor на абсолютный путь к файлу php-cgi.exe .

Пример #3 Создание сопоставления обработчика запросов PHP

Эта команда создает для IIS сопоставление обработчика для файлов с расширением *.php, который получается в результате и обрабатывается модулем FastCGI.

На этом шаге установка и настройка завершены. Следующие инструкции необязательны, но очень рекомендуются для достижения оптимальной функциональности и производительности PHP на IIS.

Представление и доступ к файловой системе

При использовании IIS рекомендуется включить представление FastCGI в PHP. Это контролируется директивой fastcgi.impersonate в php.ini файле. Когда имперсонация включена, PHP будет выполнять все операции с файловой системой под аккаунтом, который был определён при аутентификации IIS. Это гарантирует, что при общем PHP процессе для всех сайтов IIS, PHP скрипты этих сайтов не будут иметь доступ к файлам друг друга до тех пор, пока IIS использует различные учетные записи для каждого из сайтов.

Для примера, в настройках по умолчанию IIS 7, включена анонимная аутентификация под стандартным пользователем IUSR. Это значит, что давая разрешение IIS выполнить PHP скрипт, так же необходимо дать права на чтение этого скрипта аккаунту IUSR. Если PHP приложению необходимо выполнить запись в некоторые файлы или папки, тогда аккаунту IUSR следует дать права на запись в них.

Чтобы решить какой пользователь используется для идентификации в IIS 7, можно использовать следующие команды. Замените «Default Web Site» на имя IIS сайта, с которым вы работаете. На выходе, в XML конфигурации смотрите атрибут userName .

Пример #4 определение аккаунта, используемого IIS при анонимной идентификации

Если атрибут userName отсутствует в элементе anonymousAuthentication , или установлен как пустая строка, это значит, что удостоверение пула приложений используется как анонимное для этого веб-сайта.

Для изменения настроек доступа для файлов или папок, используйте интерфейс пользователя в проводнике Windows или команду icacls .

Пример #5 Настройка разрешения доступа к файлам

Установка index.php как документ по умолчанию в IIS

По умолчанию в IIS не установлено имя документа для обработки HTTP запросов по умолчанию. В PHP приложениях, обычно используется по умолчанию документ index.php . Чтобы добавить index.php в лист документов по умолчанию IIS, используйте такую команду:

Пример #6 Установка index.php как документ по умолчанию в IIS

FastCGI и PHP удаление конфигурации

Настройка IIS FastCGI установок для утилизации PHP процессов с помощью команд приведена ниже. Опция FastCGI instanceMaxRequests устанавливает максимальное количество запросов, которое может обрабатываться одним php-cgi.exe процессом пока IIS не начнет их отключать. PHP переменная окружения PHP_FCGI_MAX_REQUESTS устанавливает как много запросов будет обрабатывать один php-cgi.exe процесс пока сам не начнет удалять их. Конечно, значение установленное для FastCGI InstanceMaxRequests меньше или равно PHP_FCGI_MAX_REQUESTS .

Пример #7 Настройка FastCGI и PHP утилизации

Установка таймаута FastCGI

Увеличение параметра таймаута для FastCGI делается, если имеется долго выполняемый PHP скрипт. Два параметра контролируют таймаут, это: activityTimeout и requestTimeout . Используйте команды приведённые ниже для изменения настроек таймаута. Конечно, надо заменить значение параметра fullPath на полный путь к файлу php-cgi.exe .

Пример #8 Конфигурация установок таймаута FastCGI

Особенности установки и настройки IIS 7 на Windows Server 2008

При исталляции IIS 7 на Windows Server 2008 небходимо убедиться в том, что установлены следующие параметры в категории «Разработка приложений»

и в категории «Средства управления \ Совместимость управления IIS 6».

Для корректного отображения статического контента (HTML страницы и картинки) необходимо чтобы была установлена служба роли «Статическое содержимое» (Веб-сервер \ Основные возможности HTTP \ Статическое содержимое).

Если Вы планируете использовать Windows-авторизацию пользователей в веб-интерфейсе, то в компонентах IIS обязательно должна быть включена служба «Windows — аутентификация».

Кроме того, после установки IIS 7 проконтролируйте, предоставлены ли полные права учетной записи, под которой работает IIS_IUSRS (в случае Windows Server 2008), NETWORK SERVICE (в случае Windows Server 2003) или ASPNET (в случае Windows XP) на папку «c:\inetpubs\wwwroot\hwisd».

2. Установка полного .NET framework 4.0 на Windows Server 2008 (IIS 7)

Для работы веб-приложения необходимо установить .NET framework 4.0, если он еще не установлен.

Для ASP.Net v.4.0 для IIS 7 на Windows Server 2008 параметр «Ограничение» следует изменить на «Разрешено» в «Начальная страница \ Ограничения ISAPI и CGI».

Обратите внимание на то, что разрешить исполнение нужно для 32-разрядного framework’а, а не 64-разрядного (см. скриншот ниже).

Для пула приложения по умолчанию (DefaultAppPool) требуется изменить пул на APS.NET 4.0.

Для 64-разрядной Windows в настройках IIS необходимо разрешить исполнение 32-разрядных приложений.

Iis настройка приложений cgi

Обновлен: Ноябрь 2007

Если веб-приложение ASP.NET размещено в IIS 7.0, то параметры конфигурации для приложения можно настроить различными способами. К ним относятся:

Использование служб IIS Manager. Дополнительные сведения см. в разделах Практическое руководство. Открытие диспетчера IIS и Диспетчер служб IIS (Internet Information Services (IIS) Manager).

Непосредственное редактирование файла Web.config. Это можно сделать в Visual Studio или Visual Web Developer или используя текстовый редактор.

Использование средства командной строки служб IIS 7.0 (Appcmd.exe). Оно позволяет указать параметры конфигурации IIS и параметры конфигурации веб-приложения. Дополнительные сведения см. в разделе средство командной строки IIS 7.0 (IIS 7.0 Command-Line Tool).

Использование инструментария управления Windows (WMI). В пространстве имен WebAdministration поставщика WMI IIS 7.0 содержатся классы и методы, позволяющие создавать сценарии, использующиеся при администрировании веб-узлов, веб-приложений и связанных с ними объектов и свойств. Дополнительные сведения см. в разделе IIS 7.0: WMI.

Службы IIS 7.0 имеют модульную архитектуру, позволяющую указать, какие модули составляют используются веб-сервером. После установки IIS 7.0 по умолчанию многие модули выключены. При работе с веб-сайтами ASP.NET может понадобиться включение следующих модулей:

Модуль управления совместимостью с IIS 6, позволяющий Visual Studio использовать вызовы метабазы для взаимодействия с хранилищем конфигураций IIS 7.0.

Модуль проверки подлинности Windows, позволяющий проводить отладку веб-приложений в Visual Studio.

В данном пошаговом руководстве будут заданы параметры конфигурации с использованием диспетчера IIS Manager, а затем можно будет увидеть, как параметры отражаются в файле Web.config веб-приложения. В данном пошаговом руководстве представлены следующие задачи:

Создание настраиваемого модуля управляемого кода и помещение модуля в каталог App_Code веб-приложения.

Регистрация настраиваемого модуля с использованием диспетчера IIS Manager.

Добавление настраиваемого заголовка HTTP с использованием диспетчера IIS Manager.

В этом пошаговом руководстве функциональные возможности модуля не важны. Цель этого пошагового руководства — демонстрация интеграции модуля в конвейер запросов, а также влияния настройки приложения с помощью диспетчера IIS Manager на файл Web.config.

Для выполнения этого пошагового руководства потребуется:

Службы IIS 7.0, установленные и выполняющиеся в ОС Windows Vista или в ОС Windows Server 2008.

По меньшей мере один пул приложений, выполняемый в интегрированном режиме IIS 7.0.

Модуль Совместимость управления IIS 6 , включенный в IIS 7.0.

Visual Studio 2008.

Платформа .NET Framework, версия 3.0 или более поздняя версия.

Илон Маск рекомендует:  Cеть передача сокетов между процессами

Административные разрешения на локальном компьютере.

Средство для проверки HTTP-запросов и ответов между локальным компьютером и веб-серверами, например, средство Fiddler, доступное на веб-узле Fiddler Web Debugging Proxy.

Fiddler — это стороннее средство, не поддерживаемое Microsoft.

Для начала потребуется создать новый веб-узел.

Создание нового веб-узла

В Visual Studio нужно создать новый локальный веб-узел HTTP с именем WalkthroughIIS7 .

Дополнительные сведения о создании локального веб-узла IIS см. в разделе Пошаговое руководство. Создание локального веб-узла IIS в Visual Web Developer .

В меню Пуск последовательно выберите пункты Все программы , Стандартные и Выполнить .

В поле Открыть введите inetmgr и нажмите кнопку ОК .

Примечание.

Если включен контроль учетных записей пользователей (UAC), то при попытке доступа к службам IIS Manager может быть отображено сообщение. При появлении данного сообщения нажмите кнопку Продолжить . Дополнительные сведения см. в разделе Контроль учетных записей (User Account Control).

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

Сведения об задании режима веб-приложения см. в разделе Настройка режима обработки запросов для пула приложений (Configure the Request-Processing Mode for an Application Pool).

Теперь можно создать настраиваемый HTTP-модуль.

Создание настраиваемого HTTP-модуля

В обозревателе решений Visual Studio щелкните правой кнопкой мыши узел веб-проекта и выберите пункт Добавить новый элемент .

Откроется диалоговое окно Добавление нового элемента .

Под заголовком Установленные шаблоны Visual Studio выберите Класс .

Выберите предпочитаемый язык программирования.

Для имени класса введите CustomModule и нажмите Добавить .

Если веб-узел еще не содержит папки App_Code, отобразится сообщение с запросом подтверждения помещения класса в папку App_Code. Если это так, нажмите кнопку Да .

В файле класса удалите существующий код и замените его следующим кодом:

Этот код выполняет следующие действия:

Определяет настраиваемый модуль управляемого кода, реализующий интерфейс IHttpModule .

Определяет обработчик событий для события BeginRequest экземпляра HttpApplication . Обработчик событий определяет настраиваемый заголовок, добавляемый к коллекции заголовка ответа.

Добавляет обработчик к конвейеру запросов для уведомления в методе Init модуля.

Поскольку класс реализует интерфейс IHttpModule , класс должен реализовать метод Init и метод Dispose . Метод Dispose в этом модуле не имеет функциональных возможностей, но в нем можно при необходимости реализовать логику удаления.

В меню Построение выберите команду Построить веб-узел , чтобы убедиться, что ошибки в модуле отсутствуют.

В качестве последней задачи в этом подразделе нужно создать страницы ASP.NET и HTML, используемые позднее в этом пошаговом руководстве для проверки настраиваемого модуля.

Создание тестовых страниц ASP.NET и HTML

Добавьте новую однофайловую веб-страницу ASP.NET с именем ASPXpage.aspx в корневую папку приложения.

Удалите существующую разметку и замените ее на следующую:

Добавьте новую HTML-страницу с именем HTMLPage.htm в корневую папку веб-приложения.

Добавьте следующую разметку на HTML-страницу:

Сохраните все изменения.

Запустите по отдельности страницу ASPXpage.aspx и страницу HTMLpage.htm, чтобы убедиться в возможности их просмотра в обозревателе.

Примечание.

Не закрывайте приложение Visual Studio. Позднее потребуется вернуться к этому приложению, чтобы проверить изменения конфигурации, осуществленные с помощью диспетчера IIS Manager.

На этом этапе страницы выполняются, но не вызывают настраиваемый модуль. В следующей процедуре необходимо добавить настраиваемый модуль к конвейеру запросов.

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

Регистрация настраиваемого модуля управляемого кода

В меню Пуск последовательно выберите пункты Все программы , Стандартные и Выполнить .

В поле Открыть введите inetmgr и нажмите кнопку ОК .

Примечание.

Если включен контроль учетных записей пользователей (UAC), то при попытке доступа к службам IIS Manager может быть отображено сообщение. При появлении данного сообщения нажмите кнопку Продолжить . Дополнительные сведения см. в разделе Контроль учетных записей (User Account Control).

В области Подключения разверните имя компьютера или сервера, на котором размещен веб-узел.

Разверните папку Узлы .

Выберите веб-узел WalkthroughIIS7 . В Windows Server 2008, если веб-приложение является приложением веб-узла, сначала разверните этот веб-узел, а затем выберите WalkthroughIIS7 .

По умолчанию центральная часть диспетчера IIS Manager отображает параметры конфигурации веб-сервера по областям. Для веб-приложения WalkthroughIIS7 существуют две области: ASP.NET и IIS .

В разделе IIS центральной области дважды щелкните значок Модули .

В области сведений Модули в центральной области будут показаны все модули, настроенные в данный момент для IIS.

В области Действия щелкните Добавить управляемый модуль .

Откроется диалоговое окно Добавление управляемого модуля .

Введите CustomModule в поле Имя .

Именем может быть любое слово или фраза, описывающая модуль. В этом пошаговом руководстве будет использовано только имя модуля.

В списке Тип выберите или введите полное имя управляемого типа для модуля.

Тип CustomModule появится в списке, поскольку конфигурация IIS включает любые классы в папке App_Code, реализующие IHttpModule .

Убедитесь, что флажок Вызывать только по запросу приложений ASP.NET или управляемых обработчиков снят.

В данном пошаговом руководстве необходимо, чтобы модуль был применен ко всем запросам в конвейере, а не только к запросам ASP.NET.

Нажмите кнопку ОК .

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

Добавление настраиваемого заголовка ответа

В левой области диспетчера IIS Manager щелкните имя узла WalkthroughIIS7 , чтобы отобразить основную область конфигурации для узла.

В центральной области в разделе параметров IIS дважды щелкните значок Заголовки ответов HTTP .

Подробные сведения функции Заголовки ответов HTTP будут отображены в центральной области. В ней будут показаны все определенные в данный момент заголовки ответов HTTP.

В области Действия щелкните Добавить .

Откроется диалоговое окно Добавить HTTP-заголовок ответа .

В текстовом поле Имя введите CustomHeader1 .

Именем может быть любое слово или фраза, описывающая заголовок.

В текстовом поле Значение введите значение SampleHeader .

Теперь статическое сжатие будет отключено. Это препятствует сжатию статического содержимого, например страниц HTML.

Отключение статического сжатия


Щелкните имя узла WalkthroughIIS7 в левой области, чтобы отобразить основную область конфигурации узла в центральной области.

В центральной области диспетчера IIS Manager дважды щелкните значок Сжатие в разделе параметров IIS .

Подробные сведения функции Сжатие будут отображены в центральной области.

Убедитесь, что флажок Включить сжатие статического содержимого не установлен.

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

Проверка регистрации модуля в файле Web.config

Вернитесь к приложению Visual Studio и к приложению WalkthroughIIS7 .

В обозревателе решений щелкните правой кнопкой мыши имя веб-узла и выберите команду Обновить папку .

Это приведет к тому, что представление папки веб-узла в Visual Studio будет синхронизировано с папкой и файлами на диске.

Если приложение изначально не содержало файла Web.config, то теперь у веб-приложения будет файл Web.config. Если приложение уже содержало файл Web.config, то в файл будут внесены изменения.

В Обозревателе решений дважды щелкните файл Web.config, чтобы просмотреть его содержимое.

Секция system.webServer содержит изменения в параметрах конфигурации, внесенные с помощью диспетчера IIS Manager. В секции system.webServer содержатся следующие дочерние элементы:

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

Элемент httpProtocol , определяющий настраиваемый заголовок ответа.

Элемент urlCompression , отключающий статическое сжатие.

Секция system.webServer будет выглядеть примерно так:

Дополнительные сведения о секции system.webServer см. в разделе Использование конфигурации ASP.NET и в разделе IIS 7.0: system.webServer (IIS Settings Schema) (IIS 7.0: system.webServer (схема параметров IIS)).

Службы IIS 7.0 имеют интегрированный конвейер запросов. Запросы для всех ресурсов приложения (например, для ASPX-страницы или HTM-страницы) могут вызывать уведомления конвейера в модуле управляемого кода, как и в управляемом модуле, созданном в ходе этого пошагового руководства.

Примечание.

При настройке модуля управляемого кода с помощью диспетчера IIS Manager не был выбран параметр Вызывать только по запросу приложений ASP.NET или управляемых обработчиков . Если бы был выбран этот параметр, то настраиваемый модуль получал бы уведомления конвейера только для ресурсов ASP.NET и не получал бы для статических ресурсов, таких как HTML-файлы.

Проверка применения настраиваемого модуля ко всем ресурсам

В Visual Studio откройте страницу ASPXpage.aspx и нажмите сочетание клавиш CTRL + F5 для отображения страницы в обозревателе.

Настраиваемый заголовок, определенный в модуле, отобразится в обозревателе. На странице ASP.NET невозможно получить доступ к настраиваемому заголовку, определенному IIS, поскольку сведения о заголовке добавляются после передачи содержимого страницы в поток. Однако можно подтвердить установку заголовка с использованием средства, отслеживающего трафик HTTP, например, Fiddler.

Откройте средство наблюдения за трафиком HTTP и обновите страницу ASPXpage.aspx в обозревателе.

Примечание.

Если URL-адрес для страницы ASPXpage.aspx использует localhost, измените localhost на имя компьютера, на котором установлены службы IIS 7.0. В типовом сценарии разработки это тот же компьютер, на котором выполняется Visual Studio.

Убедитесь, что CustomHeader1 и CustomHeader2 появляются в коллекции заголовков ответа.

Просмотрите HTMLPage.htm в обозревателе.

Убедитесь, что CustomHeader1 и CustomHeader2 появляются в коллекции заголовков ответа.

Это пошаговое руководство предоставило введение в настройку ASP.NET в IIS 7.0. Параметры конфигурации для веб-сервера IIS 7.0 и для ASP.NET объединены в один файл конфигурации, который можно редактировать с использованием одного интерфейса администрирования.

Может также возникнуть необходимость узнать об изменении других параметров в диспетчере IIS Manager и о том, как изменения отражаются в файле конфигурации. Дополнительные сведения см. в разделе Internet Information Services (IIS).

Windows 7 x64, IIS, ISAPI и DataSnap XE2 в картинках.

Сегодня решил немного побаловаться с DataSnap XE2, разработать небольшую ISAPI-dll и посмотреть как всё это будет работать под управлением моей Windows 7 x64. Надо сказать, что простейший примерчик такого приложения собрался и заработал почти без проблем. Как Вы наверняка знаете, наиболее часто для выполнения операций на сервере используется интерфейс CGI, CGI-скрипты и т.д. Однако компания Microsoft в свое время предложила свой вариант исполнения серверных программ, который называется ISAPI (Internet Server API). В первую очередь ISAPI предназначался для подключения к web-серверу Microsoft под названием Internet Information Server (IIS). Программы ISAPI представляют собой давно известные нам динамически загружаемые библиотеки DLL, которые вызываются Web-сервером, загружаются в память и становятся как бы частью этого Web-сервера, расширяя или изменяя его функциональность. Сейчас для сервера Apache (самого популярного web-сервера) имеется модуль mod_isapi.dll, который позволяет запускать ISAPI-dll. Вообще, если рассуждать о популярности того или иного веб-сервера, то лучше всего начать с посещения вот этого сайта, но мы сегодня не об этом и даже не о том кто круче/быстрее/удобнее IIS или Apache, а о том как написать программку, которая заработает под управлением IIS 7.5 в Windows 7 x64.

Содержание статьи:

Начнем с того, что настроим наш web-сервер IIS.

Установка и настройка IIS в Windows 7

проходит следующим образом: 1. Заходим в «Панель управления -> Программы и компоненты» и выбираем «Включение или отключение компонентов Windows»: 2. В открывшемся окне ищем «Службы IIS» и выбираем следующие необходимые компоненты для установки. Т.к. мне сегодня пришлось достаточно много экспериментировать с IIS, то мой список установленных компонентов оказался таким: 3. Жмем «Ok» и терпеливо ожидаем окончания установки. На этом шаге установка IIS завершена и можно приступать к настройке web-сервера, созданию и тестированию сайта. И здесь может проявиться то самое «почти» без которого я бы мог в начале поста сказать, что «примерчик такого приложения собрался и заработал почти без проблем«. Итак: 4. Заходим в «Панель управления -> Администрирование» и находим там «Диспетчер служб IIS«: Вот здесь и настраивается будущий сайт. По умолчанию, после установки компонентов у Вас на диске C:\\ появится дирректория c:\inetpub\ в которой будут храниться служебные файлы сервера и файлы сайта(-ов), с которыми вы будите работать. При установке в диспетчере уже будет находится один дефолтный сайт, но мы, для порядка создадим свой. 5. В дереве «Подключения» выбираем узел «Сайты», вызываем контекстное меню и выбираем «Добавить веб-сайт…»: 6. В открывшемся окне задаем настройки нашего сайта. На рисунке ниже показаны, которые практически не отличаются от дефолтных (различается только название сайта и его физическое расположение): Теперь в дереве подключений у Вас появился новый сайт «DataSnapSite» который по-идее должен бы запускаться с URL ‘http://localhost’, но, как оказалось, происходит это не всегда: Покопался по Сети в поисках ответа. Оказалось, что у кого-то сайт с такими настройками, как показано выше, работал без проблем, у других — через раз возникали проблемы с ASP.NET у кого-то, как и у меня, сайт вообще не открывался. Может причина в версии IIS, а может и нет, но для себя я нашел два возможных варианта решения этой проблемы: вариант 1: смотрим приложения, которые «слушают» 80-й порт — это могут быть Skype, TeamViewer и другие программки, работающие с сетью. Отключаем эти программы, перезагружаем IIS и снова пробуем зайти на сайт в браузере. вариант 2: если первый вариант не помог, то идем в IIS диспетчере в «Подключения», выбираем наш сайт и меняем ему привязку, на, например, вот такую: можете также, если необходимо, сменить и порт. После этого сайт должен заработать — можете бросить в корневую директорию сайта файлик index.html и посмотреть на него в браузере: Сайт заработал и на текущем этапе работы нам этого будет достаточно. Мы ещё вернемся к работе с диспетчером IIS и посмотрим, какие ещё возможные проблемы могут возникнуть, а пока идем в Delphi и создаем наше первое приложение ISAPI с DataSnap XE2.

Создаем заготовку ISAPI DLL

Запускаем Delphi и выбираем «File -> New -> Other -> DataSnap Server -> DataSnap WebBroker Application«: В первом шаге помощника выбираем третий пункт — «ISAPI dynamic link library» и жмем Next: На втором и третьем шаге можно оставить все установки по умолчанию. В итоге в менеджере проектов появится новый проект с таким содержанием: ServerMethodsUnit1, как уже понятно из названия будет содержать серверные методы, а модуль WebModule1 содержать компоненты, которые с помощью которых наша ISAPI-dll станет сервером DataSnap и модуль будет выглядеть вот так: Можно сказать, что уже то, что было сделано с использованием помощника — это уже готовая к использованию DLL. Но, пока не будем сильно спешить, а посмотрим на содержимое нашей DLL. Открываем исходный код библиотеки и видим, что наша DLL экспортирует три метода:

Настраиваем IIS 7.5 для работы с ASP.NET 4.0

После установки.NET Framework 4.0 на сервере с IIS, для корректной работы со страницами, написанными на ASP.NET 4.0 необходима дополнительная настройка IIS.

Сначала для пула (Application pool) укажем, что он работает в режиме ASP.NET v4.0 Classic.

Затем нужно разрешить выполнение сценариев ASP.NET v4.0.x. Это можно сделать в пункте настройки IIS — ISAPI and CGI Restrictions , доступном в консоли IIS на уровне всего веб-сервера.

Выберите версию ASP .NET v4, установленную на сервере и измените разрешение с “Not Allowed” на “Allowed”, если этого не сделать, то при попытке открыть любую страницу появится сообщение с ошибкой.

Руководство по техническому обслуживанию

Настройка веб-сервиса для IIS

Примечание.
Ссылки Назад «> Вверх Вперед Настройка веб-сервиса «1С:Предприятие» > Настройка веб-сервиса для IIS»> Задать вопрос

1. Установка IIS выполняется стандартными средствами. Необходимо установить следующие компоненты:

Web Management Tools:

• IIS 6 Scripting Tools

• IIS 6 WMI Compatibility

• IIS Metabase and IIS configuration compatibility

• IIS Management Console

• IIS Management Scripts and Tools

World Wide Web Services:

• Static Content Compression

Набор достаточных компонент приведен на скриншоте ниже.

Набор достаточных компонент IIS.

2. Если при установке платформы «1С:Предприятие» не были установлены компоненты работы с веб-сервером, их надо установить (через установку платформы):

Элементы платформы «1С:Предприятие», которые должны быть установлены.

Далее от имени администратора зайдите в «Конфигуратор» — «Администрирование» — «Публикация на веб-сервере. «. Укажите имя базы в поле «Имя». (используйте только буквы латинсого алфавита). Выберите пустой каталог (путь к нему также не должен содержать кириллических символов, см. пример ниже). Включите флажок «Публиковать Web-сервисы», в списке веб-сервисов включите флажок у сервиса » rg1CTCService «. Нажмите Опубликовать .

Публикация веб-сервиса «Первой Формы».

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

3. Укажите права для обработчика веб-сервисов «1С:Предприятие» . Права на запуск (Execute) модулей добавляются для группы IIS_IUSRS на папку . 1cv81\BIN\

Права на выполнение для обработчика веб-сервисов «1С:Предприятие».

4. Если база «1С:Предприятие» файловая, добавьте права на изменение (Modify) на папку и подпапки базы для той же группы.

Права на изменение для обработчика веб-сервисов «1С:Предприятие».

5. В консоли IIS щелкните правой кнопкой мыши на строку с созданной папкой. Преобразуйте её в приложение.

Преобразование сервиса в приложение.

6. Добавьте MIME типы для приложения «1С:Предприятие» . Сделать это можно для сервера, для сайта или для папки (наследование присутствует).

Добавление типов MIME.

7. Добавьте настройки для обработки файлов «1С:Предприятие». На вкладке Handler Mappings добавьте скрипты (не скрипты со звездочкой) для каждого расширения -«*.1cws» и «*.1crs». Для этого последовательно выберите каждую строку, в которой указано одно из нужных расширений, затем справа в разделе «Actions» нажмите «Add Script Map…».

В открывшемся окне нажмите кнопку Request Restrictions . Во втором открывшемся окне

• перейдите на вкладку «Access» и выберите тип доступа «Execute». Имя правила можно задать любое.

Настройка типа доступа Executive.

• там же перейдите на вкладку «Mapping» и отключите флажок «Invoke handler only if request is mapped to»

Настройка вызова обработчика .

Альтернативой является добавление обработчика из командной строки:

C:\>cscript C:\inetpub\AdminScripts\adsutil.vbs SET /W3SVC/1/ROOT/MyApp/ScriptMaps «.1cws,с:\Program Files\1cv81\Bin\wsisapi.dll,5» «.1crs,

На экране отобразится текст:

Microsoft (R) Windows Script Host Version 5.8

Copyright (C) Microsoft Corporation. All rights reserved.

ScriptMaps: (LIST) «.1cws,с:\Program Files\1cv81\Bin\wsisapi.dll,5» «.1crs,с:\Program Files\1cv81\Bin\wsisapi.dll,5»

Важно указать правильный путь: /W3SVC/1/ROOT/MyApp/ScriptMaps

8 . Для обработчиков укажите дополнительные параметры: выберите действие «Edit Feature Permissions» и в открывшемся окне установите флажки запуска скриптов и приложений, как на скриншоте ниже:

Настройка запуска скриптов и приложений.

9. Проверьте наличие обработчика веб-сервисов «1С:Предприятие» на вкладке ISAPI and CGI Restrictions для сервера.

Проверка наличия обработчика web-сервисов «1С:Предприятие».

Если установка идет в 64-разрядном окружении, то для обработчика включите режим Alpplication Pool -> DefaultAppPool -> Enable 32-bit Application -> True .

Настройки для 64-разрядного окружения.

10. Перейдите по ссылке:

Например, для примера на скриншоте выше адрес будет выглядеть следующим образом: http://ip/BP/ws/1CTCService.1cws?wsdl

11. Анонимная аутентификация на IIS и доступ к базе

В случае неудачной настройки доступа нужно создать пользователя вручную:

• Создать пользователя на компьютере (сервере) с IIS и указать ему пароль. Ни в какие группы не добавлять.

• В консоли IIS. Имя_сервера -> Autentification -> AnonymousAutentification -> Edit -> Set -> User name -> Password -> Confirm password.

Если используется аутентификация «1С:Предприятие» : создайте пользователя с именем, которое создано на компьютере и введено в IIS. Задайте пароль и поставьте флаг «Аутентификация 1С:Предприятия».

Если используется Windows аутентификация : создайте пользователя с неким именем (лучше не использовать имя, которое создано на компьютере и введено в IIS). Установите флаг «Аутентификация Windows».

Выберите или введите пользователя в формате \\имя_компьютера\имя_пользователя . Флаг «Аутентификация 1С:Предприятия» в этом случае лучше снять.

Установка и конфигурирование IIS 7 на Windows Server 2008 для работы HostCMS

Установка IIS 7

Запустите Server Manager (Start → Programs → Administrative Tools), в левом дереве выберите Roles → Add Roles.

Далее выберите Web Server (IIS) → Role Services, установите опции CGI, ISAPI Extensions, ISAPI Filters и Logging Tools.

Нажмите Next и на следующем экране Install. После установки нажмите Close.

Установка PHP-5

Нам понадобится дистрибутив PHP-5, загружаем его с официального сайта.

Для работы с IIS компания Microsoft рекомендует использовать версии Non-thread-safe, которая специально разработана для работы с FastCGI на IIS.

Запускаем установку PHP, на экране выбора веб-сервера укажите IIS FastCGI.

Установку производим в директорию c:\PHP, при установке включаем следующие расширения (extensions):

Также можете включить другие требуемые расширения.

Внесите необходимые изменения в c:\PHP\php.ini

  • open_basedir = c:\inetpub
  • upload_tmp_dir = c:\inetpub\temp
  • session.save_path = c:\inetpub\temp
  • fastcgi.impersonate = 1;
  • cgi.fix_pathinfo = 1
  • cgi.force_redirect = 0
  • short_open_tag = On
  • display_errors = On
  • allow_call_time_pass_reference = On

Проверим, указана ли обработка PHP-файлов модулем FastCGI, для этого перейдем Roles → Web Server (IIS) → Internet Information Services (IIS), справа выберем Conections, далее выберем Handler Mappings.

В открывшемся окне проверяем наличие PHP_via_FastCGI, если отсутствует → создаем согласно нижеприведенной иллюстрации.

Перезапускаем IIS: Roles → Web Server (IIS) → System Services → World Wide Web Publishing Service → Restart.

Проверяем работу PHP, для этого создаем файл c:\inetpub\wwwroot\phpinfo.php следующего содержания:

После чего в браузере обращаемся http://localhost/phpinfo.php и должны увидеть информацию о PHP.

Обратите внимание, запись в c:\inetpub\ возможна только в режиме «Run as administrator», поэтому файловый менеджер должен быть запущен в этом режиме.

Также не забудьте установить на директорию c:\inetpub\wwwroot\ права, достаточные для создания, чтения и модифицирования пользователем.

Если при обращении выводится ошибка 500, необходимо выбрать Start → Run (Пуск → Выполнить), ввести cmd, далее OK, в открывшемся окне ввести:

в результате будет выведена информация об ошибках конфигурирования.

Более расширенную информацию на английском языке можно посмотреть на learn.iis.net.

Установка MySQL 5.1

Загрузите дистрибутив MySQL 5.1 (Windows MSI Installer (x86)) с официального сайта.

Выполните установку, укажите тип «Server Machine», в качестве кодировки укажите utf8, установите птичку «Include Bin Directory», укажите пароль для пользователя root.

Установка ISAPI_Rewrite

ISAPI_Rewrite позволяет IIS обрабатывать правила mod_rewrite, внесенные в файл. htaccess

ISAPI_Rewrite представлен в бесплатной (ISAPI_Rewrite 3 Lite) и коммерческой редакции, ограничения бесплатной редакции см. на сайте.

Мы загрузим 45-дневную временную редакцию (45-day trial included for 32 bit processor) — ISAPI_Rewrite3_0064.msi.

Установка очень простая и состоит из нескольких диалогов.

Илон Маск рекомендует:  Hr изменение раздела (горизонтальная черта)
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL