During the install I declined the default .htaccess since I installed it on IIS 8.
Is there additional ReWriting I should add with the IIS ReWrite module to make sure things work well?
We lack official docs for IIS and I don't believe anyone at the company has much (if any) IIS experience. I can point you at our nginx docs in the hope they can be of indirect use: https://docs.vanillaforums.com/developer/backend/server-nginx/
If you discover additional helpful setup steps for IIS, we'd certainly accept a PR to add a new page of docs: https://github.com/vanilla/docs/tree/master/content/developer/backend
I think the manager has an importer of .htaccess rules, which would be a start.
There isn't much support or testing of IIS.
grep is your friend.
Posting here since there's already a few IIS posts and this is just something I'm experimenting with at the moment.
In a few weeks from now, I'll be acquiring a server computer that will be running Windows Server with IIS. I've been experimenting with the IIS configuration for a Vanilla Forums 2.8 install within a VM instance of Windows Server 2019 (IIS 10.0). Here's what I found so far.
First, install PHP 7+ via Web Platform Installer and add an application site on your IIS server with the Vanilla files in it. Configure the Anonymous Authentication to use the application pool identity. Then, set appropriate permissions for that application pool identity to the folder of your site.
You should have a MySQL instance already installed somewhere. If you're hosting MySQL on Windows, I recommend setting lower_case_table_names=2 in its settings so that table names are stored as specified by Vanilla. This will make it easier to transfer your database to MySQL hosted on Linux, for example.
The .htaccess rules importer in IIS didn't work well for me, so here's one rule you can add for now.
For the main Vanilla routing (index.php to controllers), add an inbound rule in URL Rewrite with these settings:
Then, in FastCGI Settings, add an environment variable named X_REWRITE with a value of 1. You can set this on a per-site basis as well, but this is the simplest way just to test it out.
This was done with Vanilla in a subfolder (not accessed via the root of the domain) and it works fine.
The Conversations and Vanilla applications are unable to be enabled on install. Specifically, these values make the applications unable to be enabled due to an invalid key name getting saved to config.php.
Edit: see this issue on GitHub. This bug has been fixed in Vanilla 2.8.1.
After these changes, Vanilla should load up at the link your site is binded to in IIS. It loads pretty fast, too!
These are just the minimum changes needed to get Vanilla's routes and the main applications up and running on IIS. This isn't a tutorial on how to fully configure all of the other recommended routes and essentials. I'll be tinkering more with IIS in a few weeks from now, so I might post more updates later on what I find.
Add Pages to Vanilla with the Basic Pages app