====== DokuWiki with IIS ======
This is for people who want to use [[:DokuWiki]] on a Windows machine with IIS webserver (Windows 2000, Windows XP or Windows Server 2003, 2008)
===== IIS6 and Prior =====
=== Install PHP ===
* New DL-Link for PHP under IIS (auto-install): [[http://www.iis-aid.com/iis_aid_php_installer|IIS-Aid]]FIXME Link broken/Download unavailable
* If you want to do an offline install and want to use fast-cgi, install the addin before you install php: [[http://www.iis.net/extensions/FastCGI|IIS-FastCGI]]
(Just install and leave the setting 'download and install FastCGI' and it will auto-detect fast-cgi on your System)
* Use the windows install from PHP's website. See the [[http://www.php.net|PHP site]] for installers or complete packages. PHP is not fully compatible between major releases, as of Q1/2021 choose the newest 7.x release. If in doubt, refer to the [[:Requirements|system requirements]]. PHP can run either as CGI-application or as an ISAPI extension. As an alternative, see the [[http://php.iis.net/| Microsoft IIS Site]] for automatic setup of PHP.
* If you're using the [[http://www.php.net/manual/en/book.wincache.php|Windows Cache Extension for PHP]], you will need to disable the file caching functionality of the extension by setting ''[[http://www.php.net/manual/en/wincache.configuration.php#ini.wincache.fcenabled|wincache.fcenabled]]'' to ''0'' in ''php.ini''.
=== Configure IIS ===
- [[Unpacking|Extract]] the DokuWiki archive
- Rename the ''dokuwiki-YYYY-MM-DD'' directory to ''dokuwiki'' (or whatever else you like) and move it to:
* BEST Practice is to put it somewhere other than your "system" drive, "D:\dokuwiki". This is for security and mitigating the chance of a "disk full" condition on this drive.
* Somewhere below your new webserver documentroot, e.g. ''c:\inetpub\wwwroot\dokuwiki''
* Secure all the directories as explained at the step 2 of the main [[:Install]] page.
- Configure IIS (do __one__ of these):
* Virtual-Directory in an existing website like "www.YourSite.com/wiki": so make sure to setup a Virtual Directory mapping to the wiki-code-location
* New Website like "wiki.YourSite.com": so add an new website-Config in the IIS and set the Root-Directory to the wiki-code-location
- Browse to the ''dokuwiki/'' directory and Check the properties of the ''data/'' folder. Ensure that the Internet Guest Account (IUSR_//computername//) or the appropriate web server account (or web server group like IIS_WPG) has Folder level "Write" permissions to the ''data/'' folder.
- The wiki installer should now be available at %%http://localhost/dokuwiki/install.php%%
**NOTES**
* If you want to write the /conf/local.php (and you have to do that during the install-process!) ensure, that the Internet Guest Account (IUSR_//computername//) or the appropriate web server group (like IIS_WPG) has "Write" permissions to the ''conf/local.php'' file.
* If you want to start your new DokuWiki, ensure, that the Internet Guest Account (IUSR_//computername//) or the appropriate web server group (like IIS_WPG) has "Write" permissions to the ''conf/local.php'' file.
===== IIS7/10 =====
==== Install PHP ====
* Use the windows install from PHP's website. See the [[http://windows.php.net/download/|PHP site]] for installers or complete packages. PHP is not fully compatible between major releases, as of Q1/2021 choose the newest 7.x release. If in doubt, refer to the [[:Requirements|system requirements]]. There are 2 installers, the "thread safe" and the "non-thread safe" installer. It is recommended that you use a non-thread safe build of PHP with IIS 7 FastCGI. A non-thread safe build of PHP provides significant performance gains over the standard build by not doing any thread-safety checks, which are not necessary, since FastCGI ensures a single threaded execution environment.
* PHP can run either as CGI-application or as an ISAPI extension. These instructions are for Fast-CGI as it is quicker and more stable than ISAPI. Even Microsoft instructs to install using Fast-CGI, even though they invented ISAPI. See the [[http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-7/|How To]]
=== Configure IIS ===
- [[Unpacking|Extract]] the DokuWiki archive
- Rename the ''dokuwiki-YYYY-MM-DD'' directory to ''dokuwiki'' (or whatever else you like) and move it to:
* __BEST__ practice is to put it somewhere other than your system drive(e.g. ''D:\dokuwiki''). This is for security and to mitigate the chance of a disk full condition on this drive.
* However you can also put it somewhere below your new webserver documentroot, (e.g. ''c:\inetpub\wwwroot\dokuwiki'')
- Secure all the directories as explained at the step 2 of the main [[:Install]] page.
* You will have to give the IUSR account read & execute permissions to the website, as it is not there by default.
* In IIS Manager left click the site name
* Click "Edit Permissions" in the Actions pane OR right click and choose "Edit Permissions" from the shortcut menu.
* Click the Security tab
* Click the Edit button
* Click the Add button
* Click the Locations button and choose the local server name
* Now type in IUSR and click OK, and OK again.
- Configure IIS (do __one__ of these):
* Virtual-Directory in an existing website like "www.YourSite.com/wiki": so make sure to setup a Virtual Directory mapping to the wiki-code-location
* New Website like "wiki.YourSite.com": so add an new website-Config in the IIS and set the Root-Directory to the wiki-code-location
- Browse to the ''dokuwiki/'' directory and Check the properties of the ''data/'' folder. Ensure that the Internet Guest Account(IUSR), the appropriate web server account or Server Group(IIS_IUSRS) has Folder level "Write" permissions to the ''data/'' folder. See above for instructions.
- Browse to the ''dokuwiki/'' directory and ensure that the Internet Guest Account(IUSR), the appropriate web server account or Server Group(IIS_IUSRS) has Folder level "Write" permissions to the ''conf/'' folder. See above for instructions.
* ''conf/''
* ''lib/plugins'' (//if you don't do this, you will see the warning message in the Extension Manager//)
- The wiki installer should now be available. Depending on how you installed it you can find it at %%http://localhost/dokuwiki/install.php%% OR %%http://(wiki site name)/install.php%%
- Browse to the ''dokuwiki/'' directory and delete the install.php file.
==== Rewrite ====
Enable url rewriting and insert appropriate set of rules:
**If you are using Azure Web App**, just put these lines under the tags in web.config file (situated in wwwroot of your App).
=== IIS 7.0 or greater ===
IIS 7.0 and above can be extended with a the URL Rewrite module 2.0 available from Microsoft for both [[https://download.microsoft.com/download/D/8/1/D81E5DD6-1ABB-46B0-9B4B-21894E18B77F/rewrite_x86_en-US.msi|x86]] and [[https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_en-US.msi|x64]]
Save the Apache rules above to a .htaccess file removing the "RewriteBase /dokuwiki" line. This will not be required as we will be adding the rules directly to the root of the wiki.
In IIS Manager select your Wiki folder, and under IIS select "URL Rewrite" (if you had Manager open before installing, a refresh will be required)
In the actions pane on the right hand side, choose "Import Rules"
For your configuration file, select the .htaccess file and Import, this should give you 6 converted rules.
Finally hit Apply in the Actions panel on the right hand side.
Configure your Wiki to use .htaccess rules for rewrite and you should now be seeing your URLs rewritten.