title: ExtJS 4 and PHP multiple file upload widget configuration incorrect when installed on Windows Server 2008 using IIS 7 and FastCGI PHP
body: <p>Can someone help me with necessary configuration (or help troubleshoot) file uploads with ExtJS 4 in PHP FastCGI in IIS 7?  The application user interface is working well, but the files are not moving into the <code>\file_upload\public\tmp\upload</code> folder.</p>
  
  <p><strong><em>More detail:</em></strong></p>
  
  <p>Over the past couple days, I've been trying out different multi-file uploads widgets for ExtJS 4.  Some only work with the new HTML 5 File API but are broken in Internet Explorer.  And some just have a user interface that doesn't jive well with ExtJS 4 so I thought they would look a bit goofy.  I finally found one that works in all browsers, even though its quite simple!  I've configured the ExtJS/PHP multiple file upload application below (blog link) in Windows Server 2008 on IIS 7 with PHP FastCGI.  I have some instructions on setup.  I haven't really changed anything with the application except configuration and a few other things to get the application user interface working.</p>
  
  <h1><strong><em>Windows Setup Instructions:</em></strong></h1>
  
  <p><strong>1.) Widget found here:</strong></p>
  
  <p><a href="http://blog.debug.cz/2012/05/file-upload-widget-for-extjs-4x.html" rel="nofollow noreferrer">http://blog.debug.cz/2012/05/file-upload-widget-for-extjs-4x.html</a></p>
  
  <p><strong>Here is the demo:</strong></p>
  
  <p><a href="http://debug.cz/demo/upload/" rel="nofollow noreferrer">http://debug.cz/demo/upload/</a></p>
  
  <p><strong>Download source here on GitHub:</strong></p>
  
  <p><a href="https://github.com/ivan-novakov/extjs-upload-widget" rel="nofollow noreferrer">https://github.com/ivan-novakov/extjs-upload-widget</a></p>
  
  <p><strong>2.) Place extracted files on desktop and rename root folder "file_upload" for simplicity</strong></p>
  
  <p><strong>3.) Download ExtJS 4 and rename root ExtJS 4 folder to "extjs" and place in this folder:</strong></p>
  
  <pre><code>\file_upload\public\[extjs]
  </code></pre>
  
  <p><strong>Download this and extract:</strong></p>
  
  <p><a href="http://cdn.sencha.io/ext-4.1.0-gpl.zip" rel="nofollow noreferrer">http://cdn.sencha.io/ext-4.1.0-gpl.zip</a></p>
  
  <p><strong>4.) (In Windows) Rename the "upload" shortcut file to "upload_old" (or just delete it), and copy the actual upload folder <code>\file_upload\lib\upload</code> into folder <code>\file_upload\public\external\upload</code></strong></p>
  
  <p><strong>5.) Create the file upload folder <code>\file_upload\public\tmp\upload</code> for the PHP file to place its files</strong></p>
  
  <pre><code>define('UPLOAD_DIR', '/tmp/upload/');
  </code></pre>
  
  <p><strong>6.) Set up PHP in Windows Server 2008 (x64) in IIS 7</strong></p>
  
  <ul>
  <li><p>turned on CGI in IIS 7 on Windows Server 2008</p></li>
  <li><p>downloaded Administration Pack for IIS 7.0 (x64) </p></li>
  <li><p>followed these instructions:</p></li>
  </ul>
  
  <p><a href="http://www.howtogeek.com/50432/how-to-install-php-on-iis-7-for-windows-server-2008/" rel="nofollow noreferrer">http://www.howtogeek.com/50432/how-to-install-php-on-iis-7-for-windows-server-2008/</a></p>
  
  <p>used these php.ini settings:</p>
  
  <pre><code>cgi.force_redirect = 0
  
  fastcgi.impersonate = 1
  
  extension_dir = "D:\Program Files\php\ext"
  
  date.timezone = "America/Chicago"
  
  extension=php_curl.dll"
  
  display_errors = On ==========&gt; more notes below
  
  upload_tmp_dir = "{desktop path}\file_upload\public\tmp\upload"
  </code></pre>
  
  <p><strong>7.) Placed at the top of my php file because there is apparently some issue with IIS 7???</strong></p>
  
  <pre><code>&lt;?PHP
  ini_set('display_errors',true);
  </code></pre>
  
  <p><strong>8.) Followed answer here to configure HTTP Errors in IIS 7 for PHP</strong></p>
  
  <p><a href="https://serverfault.com/questions/19561/how-can-i-display-and-log-php-errors-on-iis7">https://serverfault.com/questions/19561/how-can-i-display-and-log-php-errors-on-iis7</a></p>
  
  <ul>
  <li>IIS Manager > click web site > Configuration Editor > system.webServer > httpErrors > change "DetailedLocalOnly" to "Detailed"</li>
  </ul>
  
  <p><strong>9.) In <code>C:\Windows\php.ini</code> I set this configuration setting to "On"</strong></p>
  
  <pre><code>display_errors = On
  </code></pre>
  
  <p><strong>Or should this configuration setting be set to "stderr" since I'm using the FastCGI in IIS 7?</strong></p>
  
  <pre><code>; This directive controls whether or not and where PHP will output errors,
  ; notices and warnings too. Error output is very useful during development, but
  ; it could be very dangerous in production environments. Depending on the code
  ; which is triggering the error, sensitive information could potentially leak
  ; out of your application such as database usernames and passwords or worse.
  ; It's recommended that errors be logged on production servers rather than
  ; having the errors sent to STDOUT.
  ; Possible Values:
  ;   Off = Do not display any errors
  ;   stderr = Display errors to STDERR (affects only CGI/CLI binaries!)
  ;   On or stdout = Display errors to STDOUT
  ; Default Value: On
  ; Development Value: On
  ; Production Value: Off
  ; http://php.net/display-errors
  display_errors = On
  </code></pre>
  
  <p><strong>10.) change security on the \file_upload folder and its subfolders</strong> </p>
  
  <ul>
  <li><p>IIS_IUSRS user group (or just IUSR user) </p></li>
  <li><p>IIS APPPOOL{application pool}</p></li>
  </ul>
  
  <p><strong>11.) Use the <code>\file_upload</code> file as your IIS site web root folder</strong></p>