Problem/Motivation
IIS support was added in 2010 to support developers running Windows XP Pro et al: #567072: Ship Drupal 7 with a configuration file for IIS 7
Since then, Windows has added full support for running linux distros within Windows. There's also docker (and ddev which runs on docker) that make it easy to set up development environments in using containers. Actual manual configuration of apache for local development is very optional these days.
Issues like #2895002: Extend IIS web.config to allow colons in URLs sit around for years waiting for reviews and manual testing, presumably because very few people actually use IIS. We're also never likely to add an IIS configuration to DrupalCI/Gitlab CI either.
There are open issues mentioning IIS: https://www.drupal.org/project/issues/search/drupal?text=IIS&project_iss...
Sometimes Apache security improvements get delayed because we want to provide parity with IIS, which then gets blocked on the IIS implementation (and reviews, testing of that).
There are presumably some people still running IIS, since we occasionally get IIS issues opened, but those users are capable for copying and pasting an example web.config from Drupal.org - which is the same level of support we currently offer for the much more widespread nginx.
Additionally, it's also hard to find reviewers for issues with windows issues that aren't specific to IIS - for example filesystem bugs, and we have no way to add automated testing for those either.
Note that there's an issue to move example nginx configuration into core, but that would only be an example #2937161: Provide documentation/default server block for Nginx server., not 'live' config, it's also not anywhere near RTBC.
Usage data
We don't have any data on how many Drupal sites are running Windows on production, but there are wider trends we can look at:
IIS has gone down from 14.3% in 2012 to 5.3% in 2022 according to w3techs.
https://w3techs.com/technologies/history_overview/web_server/ms/y
Windows server has gone down from 36.5% in 2012 to 18% in 2022.
https://w3techs.com/technologies/history_overview/operating_system/ms/y
Microsoft Azure no longer supports PHP on windows server at all, and recommends linux on azure instead, this has been the case since PHP 8.0:
https://github.com/Azure/app-service-linux-docs/blob/master/Runtime_Supp...
RFC
RFC Remove support for Windows in production in Drupal 11 published on 16 February 2024.
Proposed resolution
Stop supporting running Drupal directly on Windows on production. We would still accept bug reports for Windows on development environments (for example something like not using DIRECTORY_SEPARATOR
correctly.
Sites wanting to use Windows servers in production would need to run Drupal on linux on windows (via docker or a similar solution), which should not result in additional surface area for security reports against Drupal, since as far as Drupal's concerned it would still be running on linux.
Current text
See Which versions are supported?
Proposed text
Add the following sentence to the section.
As of April 2024 Drupal does not support the use of Microsoft IIS.
Current text
See Microsoft IIS
Proposed text
Add the following sentence at the end of the section.
As of April 2024 Drupal does not support the use of Microsoft IIS.
Remaining tasks
RTBC
Update security docs with a conclusive statement about what is or is not being supported by the security team.
Update documentation per #43, #44.
User interface changes
API changes
Data model changes
Release notes snippet