Table of Contents
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): IIS-Aid
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: 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 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 system requirements. PHP can run either as CGI-application or as an ISAPI extension. As an alternative, see the Microsoft IIS Site for automatic setup of PHP.
- If you're using the Windows Cache Extension for PHP, you will need to disable the file caching functionality of the extension by setting
wincache.fcenabled
to0
inphp.ini
.
Configure IIS
- Extract the DokuWiki archive
- Rename the
dokuwiki-YYYY-MM-DD
directory todokuwiki
(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 thedata/
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 thedata/
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 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 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 How To
Configure IIS
- Extract the DokuWiki archive
- Rename the
dokuwiki-YYYY-MM-DD
directory todokuwiki
(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 thedata/
folder. Ensure that the Internet Guest Account(IUSR), the appropriate web server account or Server Group(IIS_IUSRS) has Folder level “Write” permissions to thedata/
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 theconf/
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:
<rewrite> <rules> <rule name="rule 1C" stopProcessing="true"> <match url="^_media/(.*)" /> <action type="Rewrite" url="/lib/exe/fetch.php?media={R:1}" appendQueryString="true" /> </rule> <rule name="rule 2C" stopProcessing="true"> <match url="^_detail/(.*)" /> <action type="Rewrite" url="/lib/exe/detail.php?media={R:1}" appendQueryString="true" /> </rule> <rule name="rule 3C" stopProcessing="true"> <match url="^_export/([^/]+)/(.*)" /> <action type="Rewrite" url="/doku.php?do=export_{R:1}&id={R:2}" appendQueryString="true" /> </rule> <rule name="rule 4C" stopProcessing="true"> <match url="^$" /> <action type="Rewrite" url="/doku.php" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> </rule> <rule name="rule 5C" stopProcessing="true"> <match url="(.*)" /> <action type="Rewrite" url="/doku.php?id={R:1}" appendQueryString="true" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> </rule> <rule name="rule 6C"> <match url="^index.php$" /> <action type="Rewrite" url="/doku.php" /> </rule> </rules> </rewrite>
If you are using Azure Web App, just put these lines under the <system.webServer> 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 x86 and 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.