A little something about everything

internet marketing and website development made simple..

Solution for LOAD DATA INFILE errors on Windows with IIS

Several items that are likely setup incorrectly by default.

First verify you are using the latest thread safe version of php.

in your pnp.ini, verify you have enabled INFILE by uncommenting this line:

mysqli.allow_local_infile = On

(come back to this after everything is running correctly, as it's easier to check without path errors first) For heightened security you can also specify the file you want to allow LOAD DATA INFILE access to, uncomment the next line as well and specify the correct directory.

mysqli.local_infile_directory = "Drive:\path\tmp\assets"

Next verify you have enable INFILE access in your my.ini. You can specify a path or leave it blank to allow all.


Last step!
This is what most matomo on windows users get stuck on. By default, your website is usually running in an IIS AppPool permission setup like it should be. However MySQL runs under NETWORK SERVICE by default. In this case you need to add permissions for NETWORK SERVICE to your  \assets directory like this:

and give it read/write permissions like this:

Once this is done your System Check should be all good assuming you have no other issues to deal with.

How to install silverstripe on IIS 7.5 - Manually

Step by step process to install silverstripe on IIS 7.5 (Windows Server 2008 R2 / Windows 7)

  • First download the full package, you will need a way to extract the file from tar.gz files such as WinRAR
  • Extract the files to your wwwroot or manually specified website directory
  • Create a site using InetMgr.exe with the following settings
    • Authentication should use ApplicationPoolIdentity
      • Application pool needs to use "No Managed Code"
      • Application pool also needs to be 32-bit "True" as php does not run in 64 bit
      • Application pool Managed Pipeline Mode needs to be "Classic"
  • Set file permissions as follows for IIS AppPool\Identity (ie. IIS AppPool\mywebsite.tld)
    • wwwroot/ & all subsequent directories - Read/Execute
    • Remove execute and add write permissions to the wwwroot/assets folder as well as wwwroot/web.config file and wwwroot/mysite/_config.php file.
  • Now open your browser and go to your site by name or ip/install.php and follow the instructions.


If at this point you get the error: "The web server isn't letting me identify where files are stored." you will need to edit the bad code in install.php file as follows:

Open install.php with a HTML editor like notepad++ and On line 863 update the line "if(!$this->baseDir) $this->baseDir = realpath(dirname($_SERVER['SCRIPT_FILENAME'])) . DIRECTORY_SEPARATOR;" to read "if(!$this->baseDir) $this->baseDir = '(DRIVELETTER):\(your-path-to-wwwroot)\(silverstripe-home)\';"