Problem/Motivation

Following on from #3358248: [policy, no patch] Drop support for IIS in Drupal 11. It is recommended to read that issue and the comments.

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.

Additionally, it's also hard to find reviewers for issues with windows issues - for example filesystem bugs. Also, we have no way to add automated testing for Windows environments.

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.

Proposed resolution

Stop supporting running Drupal directly on Windows on production. We would still accept bug reports for Windows on development environments. One example is something like not using DIRECTORY_SEPARATOR correctly.

Sites wanting to use Windows servers in production would need to run Drupal on Linux on Windows, 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.

Update System requirements

Remove the following from the Microsoft IIS section

Drupal core will work with IIS 5, IIS 6, IIS 7, IIS 8 or IIS 10 if PHP is configured correctly.

To achieve clean URLs you may need to use a third-party product. For IIS 7 or 8 you can use the Microsoft URL Rewrite Module or a third-party solution.

On IIS 7 Drupal requires Windows 2008 Server SP2 or later for fastCGI support.

Remaining tasks

User interface changes

API changes

Data model changes

Release notes snippet

Running Drupal directly on Windows on production is deprecated. Sites wanting to use Windows servers in production would need to run Drupal on Linux on Windows. Drupal does have have an automated test environment for Windows and there are few developers who can test such on Windows. Windows is only supported for development environments.

Comments

quietone created an issue. See original summary.

alieffring’s picture

As someone who did Drupal on Windows for about a decade: yes, please. It always felt like being a second class citizen, there was always something little going wrong that took extra time to figure out because nobody else was seeing it. But the sysadmin really liked his windows servers and it was supported so we stuck with it. Making official what is already essentially true seems like the right move here.

nickdickinsonwilde’s picture

I have dealt with other people choices to run Drupal on Windows Servers - including Drupal 10.
Strongly in favour of dropping official support.

joachim namyslo’s picture

Since Microsoft and canonical invented the SSL it should be fully ok to drop windows support when wsl isn't used. Even PHP windows binaries will run down soon. Just because they are not needed anymore. Now we can use all that with a pretty stable layer.

Tested Windows + WSL2 + Debian 12 + Drupal CMS 1.0 today. It works perfectly.

So maybe we should just drop support for things like xampp, sample and so on. Because many users use these but if something goes wrong or doesn't work as expected, instantly they blame drop for it but not the underlying stack. On the other hand wsl is as easy as pie when it comes to set up Drupal.

If you want to learn Drupal this is a far better option then ddev, because if something goes wrong in production you have to know where to look for issues when you start troubleshooting.

quietone’s picture

Issue summary: View changes
Status: Active » Needs review

Updated the IS with text to add to the System Requirements page.

neptune-dc’s picture

Status: Needs review » Reviewed & tested by the community

English seems native. +1 RTBC

catch’s picture

Status: Reviewed & tested by the community » Needs review

The text looks fine I think, but a lot of people run Drupal on OSX locally (even if that's docker-on-OSX and not homebrew or whatever people used to use 5-10 years ago) and it doesn't mention OSX at all, so it might need to somehow account for that? Not sure how though.

We also need to update https://www.drupal.org/docs/getting-started/system-requirements/web-serv... to at least remove the IIS references

quietone’s picture

Issue summary: View changes

@catch, since this about Drupal on production sites it is necessary to bring up local development on OSX, or any other platform?

quietone’s picture

Issue summary: View changes
catch’s picture

@quietone well we have this in the suggested text about local development environments on Windows and I'm not sure people reading it will make the distinction. We could completely remove the reference to local development maybe?

"Instead, use Linux on Windows. However, using Windows in a development environment is supported."

quietone’s picture

Issue summary: View changes
quietone’s picture

Status: Needs review » Reviewed & tested by the community

@catch, thanks.

I updated the two doc pages mentioned in the Issue Summary and updated credit.

xjm’s picture

Status: Reviewed & tested by the community » Needs review
Issue tags: +Needs release manager review, +Needs product manager review

Apache on Windows is technically a thing, right? So this technically should have all the signoffs?

Re: the proposed text. I think we should say:

It is recommended to use Linux for hosting Drupal websites. Running Drupal directly on Windows in a production environment is not supported.

...because we don't want to confuse the uninitiated if they see the sentence out of context and make them think they can't use Windows or Darwin or whatever for local dev (or worse, accessing sites, lol).

catch’s picture

I think #13 is fine, are we assuming that people who would try to host Drupal on FreeBSD in production will just ignore it?

xjm’s picture

lol. I had forgotten how salty they get about that. We can say "Linux or a similar operating system".

catch’s picture

That'd make it this:

It is recommended to use Linux or a similar operating system for hosting Drupal websites. Running Drupal directly on Windows in a production environment is not supported.

For me this covers everything.

xjm’s picture

Issue summary: View changes
Status: Needs review » Reviewed & tested by the community

👍 Restoring the RTBC for signoffs.

joachim namyslo’s picture

That's fine. It's clear enough to understand and it saves us a lot of headaches.

catch’s picture

Given three release managers out of four are on this issue already, and @longwave +1d the overall concept back in #3358248-36: [policy, no patch] Drop support for IIS in Drupal 11 going to remove the RM review tag.

gábor hojtsy’s picture

Status: Reviewed & tested by the community » Needs review

https://new.drupal.org/drupal-cms/launcher is currently available for Windows too. The wording of the suggested text makes it sound like Windows is fine to run on non-production, but maybe making that more explicit would be better. Otherwise it sounds a bit odd. This would be a stronger statement about support IMHO. That Windows is not supported for production does not say where is it supported :)

It is recommended to use Linux or a similar operating system for hosting Drupal websites. Windows is only supported for development environments, not for running sites live in a production environment.

This would explain the validity of https://new.drupal.org/drupal-cms/launcher more than the current proposed text IMHO, which only implies it.

quietone’s picture

Issue summary: View changes

@gábor hojtsy, thanks for pointing out the launcher page. Clarifying the two environments for Windows makes sense.

I've updated the system requirements page with the extra information from #20.

catch’s picture

We went back and forth on mentioning local in #8-#10 because by mentioning linux and windows local, it was excluding OSX (but also we don't need to tell people not to run production environments on OSX), but I think the wording in #20 is fine.

quietone’s picture

Status: Needs review » Reviewed & tested by the community

The requirements have been updated as suggested in #20.

lauriii’s picture

It seems that this is mostly just documenting the reality. It doesn't seem like there's a massive opportunity in adding additional support for Windows so I think this is fine as is.

xjm’s picture

Issue tags: +11.3.0 release notes

I checked and both handbook pages have been updated, so I think this can be marked fixed now! Or, well, almost...

However, maybe we technically need this change to be made in Drupal 12 (not 11) since technically we shouldn't change platform requirements in a minor?

We should add a snippet to the 11.3.0 release notes either way. I think what we would say is that it's already not well-supported in practice but starting with 12.0.0 we won't even consider Windows-specific security issues.

quietone’s picture

Issue summary: View changes

Had a go at a snippet

quietone’s picture

And it is added to the 11.3.0 alpha release notes

quietone’s picture

Issue tags: +12.0.0 release notes
catch’s picture

I think the new docs and the 11.3.0-alpha1 release notes snippet is good. For Drupal 12 the same text seems fine, we can just change 'is deprecated' to 'is not supported'.

longwave’s picture

Status: Reviewed & tested by the community » Fixed

This has been RTBC for a month with no further comments, let's just go ahead and mark this fixed - we will still find it via tags when we come to making release notes.

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.