
Связка Joomla и IIS требует точного соответствия версий компонентов. Для стабильной работы подходят Windows 10/11 или Windows Server 2016–2022, IIS версии 10 и PHP не ниже 7.4. Рекомендуемый способ подключения PHP – через FastCGI, так как устаревший ISAPI-модуль не поддерживается в современных сборках IIS и вызывает ошибки 500 при обработке скриптов.
Перед размещением файлов системы управления сайтом необходимо заранее включить роли «CGI» и «FastCGI» в компонентах IIS, а также подготовить отдельный пул приложений с режимом «No Managed Code». Это исключает конфликты с .NET и ускоряет обработку запросов к index.php. Для Joomla требуется корректная обработка расширений .php и включённый модуль URL Rewrite для работы ЧПУ-ссылок.
Особое внимание уделяется правам доступа NTFS. Учетная запись пула приложений (например, IIS AppPool\JoomlaPool) должна иметь права на чтение и запись в каталоги cache, logs, tmp и images. Неправильная настройка прав вызывает зависание установщика и невозможность сохранения конфигурации.
Файл web.config заменяет для IIS привычный .htaccess. В нём прописываются правила перезаписи для компонентов Joomla, ограничения на размер загружаемых файлов и параметры безопасности. Без корректного web.config перестают работать SEF-ссылки, и появляются циклические редиректы при включённом режиме Friendly URLs.
Установка компонентов IIS через «Включение или отключение компонентов Windows»
Откройте окно компонентов через команду optionalfeatures (Win+R). В списке отметьте пункт Службы IIS, затем раскройте ветку и включите Средства управления веб-сервером → Консоль управления IIS и Веб-службы.
В разделе «Веб-службы» активируйте Средства разработки приложений, затем отметьте CGI – без этого PHP через FastCGI не запускается. Также включите ASP.NET 4.8 и Расширяемость .NET 4.8, даже если Joomla не использует .NET напрямую – это предотвращает ошибки загрузки модулей IIS.
В подразделе «Общие функции HTTP» включите Статическое содержимое, Документ по умолчанию и Просмотр каталогов. Без этих пунктов сервер не отдаёт файлы шаблонов и ресурсы установщика Joomla. Для диагностики подключите Ошибки HTTP и Журналирование.
В разделе «Безопасность» отметьте Проверка подлинности Windows и Запрос фильтрации. Эти параметры позволяют позже ограничить доступ к административной панели и задать запреты на потенциально опасные расширения файлов.
После подтверждения система установит компоненты и предложит перезагрузку. Для проверки корректности установки откройте браузер и перейдите по адресу http://localhost – при рабочем IIS отобразится стандартная стартовая страница веб-сервера.
Включение и настройка модуля FastCGI в IIS
Откройте Диспетчер служб IIS, выберите корень сервера и зайдите в раздел FastCGI Settings. Если раздел отсутствует, проверьте, что компонент CGI установлен в компонентах Windows и перезапустите IIS через команду iisreset.
Добавьте новое приложение FastCGI кнопкой Add Application. В поле Full Path укажите путь к исполняемому файлу PHP, например: C:\PHP\php-cgi.exe. В поле Arguments оставьте пусто. В Instance Max Requests задайте значение 10000 для уменьшения частоты перезапуска процессов.
В параметре Activity Timeout установите 300 секунд, а в Request Timeout – 600. Это снижает риск обрыва установки Joomla при медленной инициализации. В Idle Timeout задайте 300 секунд для корректного завершения неактивных процессов.
Перейдите в раздел Handler Mappings и добавьте обработчик для PHP. В поле Request path укажите *.php, в Module выберите FastCgiModule, а в Executable пропишите путь к php-cgi.exe. Имя обработчика задайте как PHP via FastCGI.
Для базовой проверки создайте файл info.php с содержимым <?php phpinfo(); ?> в корне сайта и откройте его в браузере. Если загружается страница с параметрами PHP, модуль FastCGI подключён корректно.
Установка и привязка PHP через FastCGI в диспетчере IIS
Скачайте архивную сборку PHP для Windows с вариантом Non Thread Safe (NTS), так как она корректно работает с FastCGI. Распакуйте файлы, например, в каталог C:\PHP. Убедитесь, что в папке присутствуют php-cgi.exe и php.ini-development.
Создайте рабочий конфигурационный файл:
- переименуйте php.ini-development в php.ini
- откройте файл в текстовом редакторе с правами администратора
- раскомментируйте строку extension_dir = «ext» и укажите полный путь, например extension_dir = «C:\PHP\ext»
Активируйте расширения, необходимые для Joomla:
- extension=mysqli
- extension=curl
- extension=gd
- extension=intl
- extension=mbstring
- extension=zip
Привяжите PHP к IIS через FastCGI:
- откройте Диспетчер IIS → FastCGI Settings
- добавьте новое приложение с путём к C:\PHP\php-cgi.exe
- перейдите в Handler Mappings и добавьте обработчик для *.php
- выберите модуль FastCgiModule и укажите путь к php-cgi.exe
Проверьте загрузку PHP:
- создайте файл test.php с содержимым <?php echo ‘OK’; ?>
- разместите его в корне сайта IIS
- откройте в браузере http://localhost/test.php
При ошибке 500 проверьте совпадение разрядности: IIS и PHP должны быть одной архитектуры (x64 или x86).
Создание сайта для Joomla в дереве сайтов IIS
Откройте Диспетчер служб IIS, разверните узел сервера и щёлкните правой кнопкой по разделу Сайты, затем выберите пункт Добавить веб-сайт…. В поле Имя сайта укажите, например, JoomlaSite.
В параметре Физический путь задайте каталог с файлами Joomla, например C:\inetpub\joomla. Папка должна содержать распакованный дистрибутив, включая index.php и каталог installation. Не используйте системный каталог wwwroot, чтобы упростить управление правами доступа.
В блоке Привязка выберите тип http и укажите порт, например 8080, если стандартный 80 уже занят. В поле Имя узла укажите доменное имя для локальной работы, например joomla.local.
Для корректного разрешения имени добавьте запись в файл hosts: 127.0.0.1 joomla.local. После сохранения сайта нажмите Запустить в правой панели действий и проверьте доступность по адресу http://joomla.local:8080.
Назначьте отдельный пул приложений через пункт Дополнительные параметры. В настройках пула установите режим No Managed Code и выставьте версию конвейера Classic для снижения конфликтов с обработкой PHP.
Настройка прав доступа NTFS для папки Joomla
Откройте свойства папки сайта, например C:\inetpub\joomla, перейдите на вкладку Безопасность и нажмите Изменить. В список добавьте учетную запись пула приложений в формате IIS AppPool\JoomlaSite или учетную запись IUSR, если используется стандартный запуск.
Назначайте права выборочно, без полного доступа ко всему каталогу. Базовый минимум – чтение и выполнение для корневой папки и большинства файлов, запись только для рабочих каталогов Joomla.
| Каталог | Права | Учётная запись |
|---|---|---|
| cache | Изменение, запись | IIS AppPool\JoomlaSite |
| logs | Изменение, запись | IIS AppPool\JoomlaSite |
| tmp | Изменение, запись | IIS AppPool\JoomlaSite |
| images | Изменение, запись | IIS AppPool\JoomlaSite |
Для корня сайта оставьте только права Чтение и Чтение и выполнение. Не выдавайте Полный доступ, чтобы снизить риск выполнения загруженных файлов.
Проверьте наследование разрешений через кнопку Дополнительно. При необходимости включите распространение прав на вложенные файлы и папки только для тех каталогов, где включена запись.
Подключение handler mapping для файлов index.php
Откройте Диспетчер служб IIS, выберите созданный сайт для Joomla и перейдите в раздел Сопоставления обработчиков (Handler Mappings). В правой панели нажмите Добавить сопоставление модуля….
В поле Путь запроса укажите index.php. В параметре Модуль выберите FastCgiModule. В строке Исполняемый файл пропишите полный путь к интерпретатору: C:\PHP\php-cgi.exe. Имя сопоставления задайте как Joomla Index Handler.
Откройте параметры добавленного обработчика и включите опцию Разрешить выполнение. Убедитесь, что снята галочка Требовать доступ к файлу, иначе при обращении к index.php будет возвращаться ошибка 404.3.
Перейдите в раздел Документ по умолчанию и добавьте index.php в начало списка. Удалите или переместите ниже default.htm и default.asp, чтобы при обращении к корню сайта запускался именно файл Joomla.
Для проверки создайте запрос к адресу http://ваш_домен/index.php. При корректной настройке обработчика должна открываться стартовая страница установщика или интерфейса Joomla без сообщений об ошибках сервера.
Настройка файла web.config для корректной работы Joomla
Создайте файл web.config в корневой папке сайта, например C:\inetpub\joomla\web.config. Файл должен иметь кодировку UTF-8 без BOM, иначе IIS может возвращать ошибку 500 при чтении конфигурации.
Добавьте базовую секцию для перезаписи URL через встроенный модуль:
- включите раздел rewrite
- разрешите обработку всех запросов через index.php
- заблокируйте прямой доступ к служебным каталогам
Вставьте минимальный набор правил в файл:
- <rewrite>
- <rules>
- правило для исключения существующих файлов
- правило для исключения существующих каталогов
- правило перенаправления на index.php
- </rules>
- </rewrite>
Включите обработку ошибок через секцию httpErrors:
- установите existingResponse=»PassThrough»
- отключите стандартные страницы IIS
- разрешите отдачу сообщений PHP без подмены
Ограничьте доступ к служебным папкам через раздел requestFiltering:
- блокируйте расширения: .ini, .log, .phps
- закройте доступ к каталогам administrator, installation после установки
- запретите двойные расширения вида .php.jpg
После сохранения файла выполните перезапуск сайта в IIS, затем откройте любую ЧПУ-ссылку Joomla. При корректных правилах адреса без index.php будут обрабатываться без 404 и циклических редиректов.
Проверка запуска установщика Joomla через локальный браузер

Откройте браузер и перейдите по адресу http://localhost/ или по имени сайта, заданному в привязках IIS, например http://joomla.local:8080/. При верной конфигурации должна открыться страница установщика с выбором языка, без перенаправлений на стандартную страницу IIS.
Если отображается код ошибки 500.19, проверьте синтаксис файла web.config и наличие модуля URL Rewrite. Сообщение 404.3 указывает на неправильное сопоставление обработчика PHP.
Появление сообщения о недоступной папке installation означает отсутствие прав на чтение или выполнение. Проверьте разрешения NTFS для учетной записи пула приложений.
Во время первого шага установщика проверьте список требований сервера: версия PHP не ниже 7.4, включённые расширения mysqli, json, mbstring. Несоответствия требуют корректировки конфигурации PHP до продолжения установки.
Вопрос-ответ:
Какие компоненты Windows необходимо включить для работы Joomla на IIS?
Для корректной работы Joomla через IIS необходимо включить службы веб-сервера, включая CGI для поддержки FastCGI, Статическое содержимое, Документ по умолчанию и Просмотр каталогов. Также рекомендуется включить Расширяемость .NET 4.8 и ASP.NET 4.8 для предотвращения ошибок при загрузке модулей IIS, даже если Joomla напрямую .NET не использует.
Как привязать PHP к IIS через FastCGI для Joomla?
Скачайте версию PHP Non Thread Safe, распакуйте в отдельную папку, например C:\PHP, настройте php.ini с нужными расширениями (mysqli, curl, gd, mbstring, zip, intl). В IIS через FastCGI Settings добавьте новый путь к php-cgi.exe, а затем в Handler Mappings создайте обработчик для *.php, выбрав модуль FastCgiModule и указав путь к интерпретатору. После этого PHP будет обрабатываться через FastCGI.
Какие права NTFS необходимо назначить для папки Joomla?
Для папки Joomla учетная запись пула приложений должна иметь права на чтение и выполнение для корневой папки и правку только для каталогов cache, logs, tmp и images. Остальные файлы оставьте только для чтения. Такая настройка предотвращает ошибки установки и обеспечивает корректную работу записи кэша и логов.
Как настроить файл web.config для корректной работы ЧПУ-ссылок Joomla?
В файле web.config нужно добавить секцию rewrite с правилами: исключение существующих файлов и папок, перенаправление всех остальных запросов на index.php. Также рекомендуется ограничить доступ к служебным папкам и блокировать опасные расширения файлов (.ini, .log, .phps). Дополнительно включите httpErrors existingResponse=»PassThrough» для корректного отображения ошибок PHP.
Как проверить правильность запуска установщика Joomla через браузер?
Откройте браузер по адресу, указанному при настройке привязки сайта, например http://joomla.local:8080/. Если страница установщика появляется без ошибок, значит настройка IIS, PHP через FastCGI и права NTFS выполнены верно. Ошибка 500.19 указывает на неправильный web.config, 404.3 — на обработчик PHP. Пустая страница часто связана с отключенным выводом ошибок в php.ini, который можно включить через display_errors = On и error_reporting = E_ALL.
Почему после установки PHP через FastCGI на IIS Joomla не запускается и выводится ошибка 500?
Ошибка 500 чаще всего связана с неправильной привязкой PHP к IIS. Проверьте, что вы используете версию PHP Non Thread Safe и путь к php-cgi.exe указан в FastCGI Settings. Также убедитесь, что сопоставление обработчика (*.php) создано через FastCgiModule и указывает на правильный исполняемый файл. Неправильные параметры тайм-аутов или разрядность PHP, не совпадающая с IIS, также вызывают ошибку 500.
Какие настройки web.config требуются для корректного отображения ЧПУ-ссылок Joomla на IIS?
В web.config необходимо включить секцию rewrite с правилами: исключение существующих файлов и каталогов, перенаправление всех остальных запросов на index.php. Для блокировки доступа к служебным папкам добавьте правила фильтрации расширений (.ini, .log, .phps). Убедитесь, что включена опция existingResponse=»PassThrough» в httpErrors, чтобы ошибки PHP отображались корректно, и разрешена обработка файлов index.php как документа по умолчанию.
