Запуск Joomla через диспетчер IIS на Windows

Как запустить joomla через диспетчер iis

Как запустить joomla через диспетчер iis

Связка 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 Timeout600. Это снижает риск обрыва установки 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:

  1. откройте Диспетчер IISFastCGI Settings
  2. добавьте новое приложение с путём к C:\PHP\php-cgi.exe
  3. перейдите в Handler Mappings и добавьте обработчик для *.php
  4. выберите модуль 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:

  1. установите existingResponse=»PassThrough»
  2. отключите стандартные страницы IIS
  3. разрешите отдачу сообщений PHP без подмены

Ограничьте доступ к служебным папкам через раздел requestFiltering:

  • блокируйте расширения: .ini, .log, .phps
  • закройте доступ к каталогам administrator, installation после установки
  • запретите двойные расширения вида .php.jpg

После сохранения файла выполните перезапуск сайта в IIS, затем откройте любую ЧПУ-ссылку Joomla. При корректных правилах адреса без index.php будут обрабатываться без 404 и циклических редиректов.

Проверка запуска установщика Joomla через локальный браузер

Проверка запуска установщика 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 как документа по умолчанию.

Ссылка на основную публикацию