<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>jorkeo - hosting geek : Windows Server 2008</title><link>http://blogs.technet.com/jorke/archive/tags/Windows+Server+2008/default.aspx</link><description>Tags: Windows Server 2008</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Old New Series – Cannon PI</title><link>http://blogs.technet.com/jorke/archive/2009/05/07/old-new-series-cannon-pi.aspx</link><pubDate>Thu, 07 May 2009 07:39:57 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3236620</guid><dc:creator>jorkeo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jorke/comments/3236620.aspx</comments><wfw:commentRss>http://blogs.technet.com/jorke/commentrss.aspx?PostID=3236620</wfw:commentRss><wfw:comment>http://blogs.technet.com/jorke/rsscomments.aspx?PostID=3236620</wfw:comment><description>Keep watching as Cannon makes life easier for today's web developers using the Microsoft Web Platform Installer.  &lt;p&gt;&lt;iframe height="360" src="http://silverlight.services.live.com/invoke/31260/CannonMontage/iframe.html" frameborder="0" width="640" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;- jorke&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3236620" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jorke/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.technet.com/jorke/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.technet.com/jorke/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://blogs.technet.com/jorke/archive/tags/webpi/default.aspx">webpi</category></item><item><title>Windows 7 RC download</title><link>http://blogs.technet.com/jorke/archive/2009/05/05/windows-7-rc-download.aspx</link><pubDate>Tue, 05 May 2009 14:37:20 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3235559</guid><dc:creator>jorkeo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jorke/comments/3235559.aspx</comments><wfw:commentRss>http://blogs.technet.com/jorke/commentrss.aspx?PostID=3235559</wfw:commentRss><wfw:comment>http://blogs.technet.com/jorke/rsscomments.aspx?PostID=3235559</wfw:comment><description>&lt;p&gt;get it now, now now, while it lasts - &lt;a title="http://www.microsoft.com.au/windows7" href="http://www.microsoft.com.au/windows7" target="_blank"&gt;http://www.microsoft.com.au/windows7&lt;/a&gt; its HOT HOT HOT!&lt;/p&gt;  &lt;p&gt;Don’t for get to grab &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=a4e21e2e-e992-4aec-9ed4-086de21632a2" target="_blank"&gt;Windows Server 2008 R2 Release Candidate&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- jorke&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3235559" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jorke/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://blogs.technet.com/jorke/archive/tags/r2/default.aspx">r2</category><category domain="http://blogs.technet.com/jorke/archive/tags/windows+7/default.aspx">windows 7</category></item><item><title>FastCGI timeout on IIS7</title><link>http://blogs.technet.com/jorke/archive/2009/04/28/fastcgi-timeout-on-iis7.aspx</link><pubDate>Tue, 28 Apr 2009 06:50:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3232297</guid><dc:creator>jorkeo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jorke/comments/3232297.aspx</comments><wfw:commentRss>http://blogs.technet.com/jorke/commentrss.aspx?PostID=3232297</wfw:commentRss><wfw:comment>http://blogs.technet.com/jorke/rsscomments.aspx?PostID=3232297</wfw:comment><description>&lt;p&gt;Had a couple of question this week around some issues that people were experiencing from long running PHP scripts that appear to timeout/hang and eventually stop/crash and is this problem with FastCGI or the application pool settings.&lt;/p&gt;  &lt;p&gt;Let’s take a look at the FastCGI settings in the ApplicationHost.config&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;fastCgi&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;application fullPath=&amp;quot;C:\PHP\php-cgi.exe&amp;quot; &lt;strong&gt;&lt;font color="#ff0000"&gt;activityTimeout&lt;/font&gt;&lt;/strong&gt;=&amp;quot;60&amp;quot; instanceMaxRequests=&amp;quot;10000&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;environmentVariables&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;environmentVariable name=&amp;quot;&lt;strong&gt;&lt;font color="#ff0000"&gt;PHP_FCGI_MAX_REQUESTS&lt;/font&gt;&lt;/strong&gt;&amp;quot; value=&amp;quot;10000&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;environmentVariable name=&amp;quot;&lt;font color="#ff0000"&gt;&lt;strong&gt;PHPRC&lt;/strong&gt;&lt;/font&gt;&amp;quot; value=&amp;quot;c:\php\&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/environmentVariables&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/application&amp;gt;      &lt;br /&gt;&amp;lt;/fastCgi&amp;gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="ve"&gt;You’ll the highlighted entries, the one that causes the PHP scripts to hang and stop running is &lt;strong&gt;activityTimeout&lt;/strong&gt; – simply put this value defines for FastCGI to timeout when the cgi process doesn’t talk to IIS for that amount of time specified. So if you have a script that will run longer than this, make sure you adjust it appropriately.&amp;#160; Of course, use this sensibly.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Couple other things highlighted are environment variables for PHP with FastCGI. &lt;strong&gt;PHP_FCGI_MAX_REQUESTS&lt;/strong&gt; governs how many requests will be processed by PHP before the PHP&amp;#160; recycling process happens. &lt;strong&gt;PHPRC&lt;/strong&gt; tells PHP where the PHP runtime configuration (php.ini) configuration file is located for this fastcgi process.&lt;/p&gt;  &lt;p&gt;- jorke&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3232297" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jorke/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://blogs.technet.com/jorke/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.technet.com/jorke/archive/tags/PHP/default.aspx">PHP</category><category domain="http://blogs.technet.com/jorke/archive/tags/FastCGI/default.aspx">FastCGI</category></item><item><title>“The subsystem needed to support the image type is not present"</title><link>http://blogs.technet.com/jorke/archive/2009/04/20/the-subsystem-needed-to-support-the-image-type-is-not-present.aspx</link><pubDate>Mon, 20 Apr 2009 03:49:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3228956</guid><dc:creator>jorkeo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jorke/comments/3228956.aspx</comments><wfw:commentRss>http://blogs.technet.com/jorke/commentrss.aspx?PostID=3228956</wfw:commentRss><wfw:comment>http://blogs.technet.com/jorke/rsscomments.aspx?PostID=3228956</wfw:comment><description>&lt;p&gt;You might be getting this error on server 2008 R2 or in fact any x64 system. I’ve had a bunch of people getting this particularly on running 2008 server core R2 x64.&lt;/p&gt;  &lt;p&gt;The problem occurs when the executable you are running has not been compiled for x64 AND you haven’t installed WOW64 – yeah that’s right WOW64 &lt;strong&gt;is now an optional component in Windows Server 2008 R2 Core&lt;/strong&gt; – cool eh?&lt;/p&gt;  &lt;p&gt;so to fix this just run:&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;start /w ocsetup.exe ServerCore-WOW64&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;you will need to reboot to get your WOW64 goodness..&lt;/p&gt;  &lt;p&gt;-jorke&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a4735284-fe4e-4619-9d75-47cd1ce00b2e" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/wow64" rel="tag"&gt;wow64&lt;/a&gt;,&lt;a href="http://technorati.com/tags/server+core+r2" rel="tag"&gt;server core r2&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3228956" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jorke/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://blogs.technet.com/jorke/archive/tags/r2/default.aspx">r2</category></item><item><title>Cat Power - Tomcat on Server 2008 Core with IIS7</title><link>http://blogs.technet.com/jorke/archive/2008/09/17/cat-power-tomcat-on-server-2008-core-with-iis7.aspx</link><pubDate>Wed, 17 Sep 2008 13:51:54 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3125150</guid><dc:creator>jorkeo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jorke/comments/3125150.aspx</comments><wfw:commentRss>http://blogs.technet.com/jorke/commentrss.aspx?PostID=3125150</wfw:commentRss><wfw:comment>http://blogs.technet.com/jorke/rsscomments.aspx?PostID=3125150</wfw:comment><description>&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;EPIC START&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;So this turned out to be much longer than I thought - the basic goal is to utilise two of the coolest features of Window Server 2008 - Core and IIS7. The idea is to create an ultimately low footprint web server on &lt;a target="_blank" href="http://www.microsoft.com/windowsserver2008/en/us/2008-web.aspx"&gt;Microsoft Windows Web Server 2008 Core&lt;/a&gt; and show how that can easily support the &lt;a target="_blank" href="http://www.apache.org/"&gt;Apache Software Foundation&lt;/a&gt;'s Open Source Java Server - &lt;a target="_blank" href="http://tomcat.apache.org/"&gt;Tomcat&lt;/a&gt;. Ideally I don't want to logon to the console or via Remote Desktop of the server at any point - and I'll use our remote management tools to configure and install in a true 'headless' environment. My Starting point is a clean install of Windows Web Server 2008 Core on Hyper-V, &lt;strong&gt;not on a domain&lt;/strong&gt; and just having had the computer name set to &amp;quot;&lt;strong&gt;servercore&lt;/strong&gt;&amp;quot;. Let see how I go! &lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;Set for Remote Management&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;So this the one thing I must do on the console (or I can script it as part of install). I need to configure our remote management tools &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/aa384372(VS.85).aspx"&gt;WinRM&lt;/a&gt; to allow connections from my workstation to the server. (note that you should NOT leave WinRM with Basic auth set to true in a production environment - I need to do this because the machine is not in a domain)&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;WinRM quickconfig      &lt;br /&gt;WinRM set winrm/config/service/auth @{Basic=&amp;quot;true&amp;quot;}       &lt;br /&gt;WinRM set winrm/config/client @{TrustedHosts=&amp;quot;jorkeo-hp&amp;quot;} &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;WinRM set winrm/config/service/auth @{Basic=&amp;quot;true&amp;quot;}      &lt;br /&gt;WinRM set winrm/config/client @{TrustedHosts=&amp;quot;servercore&amp;quot;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Now I connect to the server from the command prompt on my workstation (&amp;quot;&lt;strong&gt;jorkeo-hp&lt;/strong&gt;&amp;quot;) using &lt;a target="_blank" href="http://blogs.technet.com/server_core/archive/2006/08/11/446122.aspx"&gt;WinRS&lt;/a&gt;, and I'm going to instantiate a remote command prompt:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;WinRS -r:servercore -u:Administrator -p:****** cmd.exe&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/9a0bfb6c0d5c_B772/image_12.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/9a0bfb6c0d5c_B772/image_thumb_5.png" width="514" height="105" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now we have our remote shell - all commands from this point forward are run here.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Install Basic IIS requirements&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Normally I would use &lt;a target="_blank" href="http://technet.microsoft.com/en-us/library/cc766272.aspx"&gt;ocsetup&lt;/a&gt; to install everything with dependencies, but since I'm attempting a low footprint web server I want pick the exact packages I need to install without installing everything - to do this I use package manager - &lt;a target="_blank" href="http://technet.microsoft.com/en-us/library/cc749465.aspx"&gt;pkgmgr&lt;/a&gt; - and select the roles/modules to install.&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-Security;IIS-BasicAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementScriptingTools;WAS-WindowsActivationService;WAS-ProcessModel;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Installation dependencies can be found here:&lt;a href="http://learn.iis.net/page.aspx/130/understanding-setup-in-iis-7/"&gt;http://learn.iis.net/page.aspx/130/understanding-setup-in-iis-7/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Then you need to create the site under IIS7 to host your servlets.&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;mkdir c:\inetpub\mytomcat&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;C:\windows\system32\inetsrv\appcmd.exe add site /name:&amp;quot;mytomcat.com&amp;quot; /bindings:&lt;/font&gt;&lt;a href="http://mytomcat.com:80"&gt;&lt;font size="2" face="Courier New"&gt;http://mytomcat.com:80&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Courier New"&gt;      &lt;br /&gt;/physicalPath:&amp;quot;c:\inetpub\mytomcat&amp;quot;       &lt;br /&gt;SITE object &amp;quot;mytomcat.com&amp;quot; added      &lt;br /&gt;APP object &amp;quot;mytomcat.com/&amp;quot; added      &lt;br /&gt;VDIR object &amp;quot;mytomcat.com/&amp;quot; added&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;c:\windows\system32\inetsrv\appcmd.exe add apppool /name:mytomcat&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;APPPOOL object &amp;quot;tomcat&amp;quot; added&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;c:\windows\system32\inetsrv\appcmd.exe set site &amp;quot;mytomcat.com&amp;quot;      &lt;br /&gt;/applicationDefaults.applicationPool:&amp;quot;mytomcat&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;SITE object &amp;quot;mytomcat.com&amp;quot; changed&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Install JRE + Tomcat&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Now we need to install the Java Runtime Environment - I just download the latest one from &lt;a href="http://java.sun.com"&gt;http://java.sun.com&lt;/a&gt; and install with defaults, the version I ended up with was JRE6 update 7 - the offline installation - I then ran the installer like so:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;jre-6u7-windows-i586-p.exe /passive&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Verified that was in place, by looking for the java directories under &lt;strong&gt;\Program Files&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Then just downloaded the latest version of &lt;a target="_blank" href="http://tomcat.apache.org/download-60.cgi?Preferred=http%3A%2F%2Fapache.mirror.aussiehq.net.au"&gt;Apache Tomcat&lt;/a&gt; from my buddies at &lt;a target="_blank" href="http://www.aussiehq.com.au/"&gt;AussieHQ&lt;/a&gt;. There are a couple of ways you can deploy this, by running the installer service/downloading the file - I like to run the installer on a reference machine then copy the contents of the tomcat directory to the server - it seems to clear out all the unnecessary stuff at installation time. I've copied my contents of a reference install to &lt;strong&gt;c:\tomcat&lt;/strong&gt; on &lt;strong&gt;servercore&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Run Tomcat as a service&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Now this took aaaggess as the installation syntax is overly sensitive, case sensitive etc. So to save you the time here is my installation script line to install with all options pointing to my new installation of JRE:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;tomcat6.exe //IS//Tomcat6 --Install=&amp;quot;c:\tomcat\bin\tomcat6.exe&amp;quot; --StartClass=org.apache.catalina.startup.Bootstrap --StopClass=org.apache.catalina.startup.Bootstrap --StartParams=start --StopParams=stop --JvmOptions &amp;quot;-Dcatalina.home=c:\tomcat;-Dcatalina.base=c:\tomcat;-Djava.endorsed.dirs=c:\tomcat\common\endorsed;-Djava.io.tmpdir=c:\tomcat\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=c:\tomcat\conf\logging.properties;&amp;quot; --Jvm=&amp;quot;C:\Program Files\Java\jre1.6.0_07\bin\client\jvm.dll&amp;quot; --JavaHome=&amp;quot;C:\Program Files\Java\jre1.6.0_07&amp;quot; --Classpath=&amp;quot;c:\tomcat\bin\bootstrap.jar&amp;quot; --LogPath=c:\tomcat\logs --StdError=auto --StdOutput=auto --StartPath=c:\tomcat --StopPath=c:\tomcat --StartMode=jvm --StopMode=jvm&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;At this point I found that tomcat would fail to start&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;font face="Courier New"&gt;C&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;:\tomcat\bin&amp;gt;net start tomcat6        &lt;br /&gt;The Tomcat6 service is starting.         &lt;br /&gt;The Tomcat6 service could not be started. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;A service specific error occurred: 0. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;More help is available by typing NET HELPMSG 3547. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;C:\tomcat\bin&amp;gt;C:\tomcat\bin&amp;gt;tomcat6 //TS//Tomcat6      &lt;br /&gt;C:\tomcat\bin&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;hmmm nothing... looking in &lt;strong&gt;tomcat\logs &lt;/strong&gt;folder the &amp;quot;&lt;strong&gt;jakarta_service.log&lt;/strong&gt;&amp;quot; file seemed to be the latest timestamp, opening that in notepad and its full of this:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;2008-09-16 12:39:50] [info] Procrun (2.0.3.0) started      &lt;br /&gt;[2008-09-16 12:39:50] [info] Debugging Service...       &lt;br /&gt;[2008-09-16 12:39:50] [info] Starting service...       &lt;br /&gt;[2008-09-16 12:39:50] [174&amp;#160; javajni.c] [error] The specified module could not be found.       &lt;br /&gt;[2008-09-16 12:39:50] [986&amp;#160; prunsrv.c] [error] Failed creating java C:\Program Files\Java\jre1.6.0_07\bin\client\jvm.dll       &lt;br /&gt;[2008-09-16 12:39:50] [1260 prunsrv.c] [error] ServiceStart returned 1       &lt;br /&gt;[2008-09-16 12:39:50] [info] Debug service finished.       &lt;br /&gt;[2008-09-16 12:39:50] [info] Procrun finished.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;which appears to be a problem finding an api to connect to, but the error is pretty vague as to &lt;strong&gt;what&lt;/strong&gt; its actually trying to do.. &lt;/p&gt;  &lt;p&gt;GROAN - this is the FIRST time i have to logon to the server via RDP/Console.. remember everything else so far has been via a remote &lt;a target="_blank" href="http://blogs.technet.com/server_core/archive/2006/08/11/446122.aspx"&gt;winrs&lt;/a&gt; console...&lt;/p&gt; &lt;a target="_blank" href="http://failblog.org/2008/05/12/plunger-cat/"&gt;&lt;img border="0" alt="Plunger Cat Fail" src="http://failblog.wordpress.com/files/2008/05/plungerfail.jpg?w=500" /&gt;&lt;/a&gt;   &lt;p&gt;Log On... Fire up &lt;a target="_blank" href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx"&gt;sysinternals Process Monitor&lt;/a&gt; (thank you &lt;a target="_blank" href="http://blogs.technet.com/sysinternals/archive/2008/08/08/new-coreinfo-v1-0-updates-process-monitor-v1-37-handle-v3-4-process-explorer-v11-21-debugview-4-75-mark-s-events-keynote-speaker-at-virtualization-congress.aspx"&gt;Mr Russinovich&lt;/a&gt;) to see what this tomcat process is trying to talk to (after some thought, I reckon I could probably spawn this remotely with a backing file to disk and load that on another machine... but too much stuffing around..). After attaching to the tomcat process, aha - there it is:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/9a0bfb6c0d5c_B772/image_2.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/9a0bfb6c0d5c_B772/image_thumb.png" width="451" height="68" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When the tomcat process fires up it pokes around the OS looking for &lt;strong&gt;MSVCR71.dll&lt;/strong&gt; - which is the a bunch of C libraries generally shipped with the Microsoft C runtime library. So all I needed to do is find that file and put it in path - hang- on.. I remembered back to my Java development days in University - pretty sure that the JRE ships with the libraries in tow... ah... looking into the &lt;strong&gt;JRE\bin&lt;/strong&gt; directory of my Java Runtime Environment install, there it is, I'll copy that to my &lt;strong&gt;tomcat\bin&lt;/strong&gt; folder and try again. &lt;/p&gt;  &lt;p&gt;Ok - lets log off that server real quick - and back to our remote shell.&lt;/p&gt;  &lt;p&gt;So I kicked off starting tomcat from the command line again.. success!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/9a0bfb6c0d5c_B772/image_4.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/9a0bfb6c0d5c_B772/image_thumb_1.png" width="463" height="251" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You'll see its started with the default of http listening on port 8080 - so browsing to this (hoping no random proxy in the way) - Yee ha!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/9a0bfb6c0d5c_B772/image_6.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/9a0bfb6c0d5c_B772/image_thumb_2.png" width="460" height="115" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Awesome, now I just have to CTRL-BREAK out of that and start the service:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;C:\tomcat\bin&amp;gt;net start tomcat6     &lt;br /&gt;The Tomcat6 service is starting.      &lt;br /&gt;The Tomcat6 service was started successfully.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;And test again - also a Screen shot to prove it:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/9a0bfb6c0d5c_B772/image_10.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/9a0bfb6c0d5c_B772/image_thumb_4.png" width="478" height="52" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;But this is only the first step - Now I need to serve Tomcat through IIS7.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Setting up the IIS ISAPI Redirector&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Download the IIS Tomcat connector - &lt;a title="http://tomcat.apache.org/download-connectors.cgi" href="http://tomcat.apache.org/download-connectors.cgi"&gt;http://tomcat.apache.org/download-connectors.cgi&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The connector acts as a broker between IIS and Tomcat and as far as IIS is concerned just an &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Isapi"&gt;ISAPI&lt;/a&gt; filter.&lt;/p&gt;  &lt;p&gt;For this example I've grabbed &lt;strong&gt;isapi_redirect-1.2.26.dll&lt;/strong&gt; - and renamed it to &lt;strong&gt;isapi_redirect.dll&lt;/strong&gt; just to make it easy. &lt;/p&gt;  &lt;p&gt;Now this is where your configuration choice can get interesting. Depending on how you're supporting tomcat you have the choice of using the registry for storing configuration information for the &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Isapi"&gt;ISAPI&lt;/a&gt; filter OR using a file. This of course depends on how you intend to host it as well. If you intend host this in a multi-tenant environment with several java sites on the same server and possibly different customers as well I would recommend using a file based approach as you can set a configuration file per site. If you are just looking after one site on the server, registry configuration is fine. One thing to remember though, is when you need to replicate the configuration to another server then you will have to make sure the registry entries follow the site.&lt;/p&gt;  &lt;p&gt;For the purposes of this example, I'm going to attempt a multi-tenant configuration to allow the most flexibility, plus prevents me from having to play in the registry. When you need to create another site on the same server, create a new folder for the site under &lt;strong&gt;tomcat\conf&lt;/strong&gt; and &lt;strong&gt;tomcat\logs&lt;/strong&gt; and simply follow these steps for each new site :) (or script it)&lt;/p&gt;  &lt;p&gt;1. Create a folder under the website root called &lt;strong&gt;jakarta&lt;/strong&gt;     &lt;br /&gt;2. Copy the &lt;strong&gt;isapi_redirect.dll&lt;/strong&gt; into the &lt;strong&gt;jakarta&lt;/strong&gt; folder.     &lt;br /&gt;3. Create a file in the &lt;strong&gt;jakarta&lt;/strong&gt; folder called &lt;strong&gt;isapi_redirect.properties &lt;/strong&gt;(note that the name before the extension MUST match the dll filename)     &lt;br /&gt;4. Edit the isapi_redirect.properties file in notepad (server core IDE) - paste in the following:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;# Configuration file for the Jakarta ISAPI Redirector &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;# The path to the ISAPI Redirector Extension, relative to the website      &lt;br /&gt;# This must be in a virtual directory with execute privileges       &lt;br /&gt;extension_uri=/jakarta/isapi_redirect.dll &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;# Full path to the log file for the ISAPI Redirector      &lt;br /&gt;log_file=c:\tomcat\logs\mytomcat\isapi_redirect.log &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;# Log level (debug, info, warn, error or trace)      &lt;br /&gt;log_level=INFO&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;# Full path to the workers.properties file      &lt;br /&gt;worker_file=c:\tomcat\conf\mytomcat\workers.properties &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;# Full path to the uriworkermap.properties file      &lt;br /&gt;worker_mount_file=c:\tomcat\conf\mytomcat\uriworkermap.properties &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;5. You can see that the&lt;strong&gt; log_file&lt;/strong&gt; directive is going to a folder that doesn't exist so we need to create the folder &lt;strong&gt;tomcat\logs\mytomcat\&lt;/strong&gt; - and also the configuration folder &lt;strong&gt;tomcat\conf\mytomcat\&lt;/strong&gt; - by creating a separate folder for each site you allow the separation of site logging and configuration.     &lt;br /&gt;6. Now we need to create the &lt;strong&gt;workers.properties&lt;/strong&gt; and &lt;strong&gt;uriworkermap.properties&lt;/strong&gt; files under the&lt;strong&gt; tomcat\conf\tomcatsite1\&lt;/strong&gt; folder. Create the worker.properties file first - This controls the configuration of tomcat worker processes allows control of resources to the site - something best left to the server administrators (&lt;a target="_blank" href="http://tomcat.apache.org/connectors-doc/generic_howto/workers.html"&gt;more info on tomcat workers&lt;/a&gt;) - lets create the file &lt;strong&gt;notepad.exe tomcat\conf\mytomcat\workers.properties&lt;/strong&gt; - and populate with the following:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;# list of workers &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;worker.list=mytomcat,ajp13      &lt;br /&gt;worker.mytomcat.type=ajp13       &lt;br /&gt;worker.ajp13.type=ajp13 &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;# worker mytomcat      &lt;br /&gt;worker.mytomcat.host=localhost       &lt;br /&gt;worker.mytomcat.port=8009       &lt;br /&gt;worker.mytomcat.lbfactor=1 &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;# worker ajp13      &lt;br /&gt;worker.ajp13.host=localhost       &lt;br /&gt;worker.ajp13.port=8009       &lt;br /&gt;worker.ajp13.lbfactor=1 &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;# time out          &lt;br /&gt;worker.mytomcat.connection_pool_timeout=600           &lt;br /&gt;worker.mytomcat.socket_timeout=60&lt;/font&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;You can see here we are trying to make sure we keep the naming specific to the site. Save the worker.properties file, then create the &lt;strong&gt;uriworkermap.properties&lt;/strong&gt; file - &lt;strong&gt;notepad.exe tomcat\conf\mytomcat\uriworkermap.properties&lt;/strong&gt; - this is where we map the request to the tomcat worker process. There is a whole level of URI re-mapping you can do here, but for the moment we are just going to take everything that comes to the site is fed to tomcat - just make sure we match up with the worker specified in the &lt;strong&gt;workers.properties&lt;/strong&gt; file.&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;# Use www.foo.org as virtual host      &lt;br /&gt;# /www.foo.org/myapp/*=myworker       &lt;br /&gt;# Normal mapping &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;/mytomcat.com/*=mytomcat      &lt;br /&gt;/mytomcat.com/=mytomcat&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Save that file.&lt;/p&gt;  &lt;p&gt;7. The last bit of hacking around in tomcat is that we need to tell it that we've setup a site for it to to be aware of. To kick this I opened the file &lt;strong&gt;tomcat\conf\server.xml&lt;/strong&gt; in notepad.&lt;/p&gt;  &lt;p&gt;Between the &lt;strong&gt;&amp;lt;Service&amp;gt;&lt;/strong&gt; xml tags another &lt;strong&gt;&amp;lt;Engine&amp;gt;&lt;/strong&gt; tag that describes our site needs to put into place - this is the syntax I entered:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;Engine name=&amp;quot;Catalina&amp;quot; defaultHost=&amp;quot;mytomcat.com&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Host name=&amp;quot;mytomcat.com&amp;quot; appBase=&amp;quot;c:\inetpub\mytomcat&amp;quot; unpackWARs=&amp;quot;true&amp;quot; autoDeploy=&amp;quot;true&amp;quot; xmlValidation=&amp;quot;false&amp;quot; xmlNamespaceAware=&amp;quot;false&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RequestDumperValve&amp;quot;/&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.AccessLogValve&amp;quot; directory=&amp;quot;c:\tomcat\logs\mytomcat&amp;quot; prefix=&amp;quot;mytomcat_access_log.&amp;quot; suffix=&amp;quot;.log&amp;quot; pattern=&amp;quot;common&amp;quot; resolveHosts=&amp;quot;false&amp;quot;/&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Host&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Engine&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;( Note the Valves in place to dump engine logs - http access etc )&lt;/p&gt;  &lt;p&gt;You will need to restart the tomcat service to pick up these changes - if any weirdness happens just run the service from the console to pick up any issues.&lt;/p&gt;  &lt;p&gt;8. Now we need to tell IIS that we're using an ISAPI filter to serve the content - we just need to add the ISAPI filter via APPCMD. First allow the ISAPI filter into the CGI/ISAPI restriction policy - then we unlock the handlers config in applicationhost.config then actually add the &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Isapi"&gt;ISAPI&lt;/a&gt; filter.&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;appcmd.exe set config&amp;#160; -section:system.webServer/security/isapiCgiRestriction      &lt;br /&gt;/+&amp;quot;[path='c:\inetpub\mytomcat\jakarta\isapi_redirect.dll',allowed='True',description='tomcat']&amp;quot; /commit:apphost&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;c:\windows\system32\inetsrv\appcmd.exe unlock config /section:system.webserver/handlers&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;Unlocked section &amp;quot;system.webServer/handlers&amp;quot; at configuration path &amp;quot;MACHINE/WEBROOT/APPHOST&amp;quot;.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;c:\windows\system32\inetsrv\appcmd.exe set config &amp;quot;mytomcat.com&amp;quot;      &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;-section:system.webServer/handlers      &lt;br /&gt;/+&amp;quot;[name='tomcat',path='*',verb='*',       &lt;br /&gt;scriptProcessor='c:\inetpub\mytomcat\jakarta\isapi_redirect.dll']&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;Applied configuration changes to section &amp;quot;system.webServer/handlers&amp;quot; for &amp;quot;MACHIN     &lt;br /&gt;E/WEBROOT/APPHOST/mytomcat.com&amp;quot; at configuration commit path &amp;quot;MACHINE/WEBROOT/APPHOST/mytomcat.com&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;9. One thing I almost forgot is that we need make sure that the context our site is running on has the ability to read the tomcat configuration and files. Because our application pool runs as the built in account - &amp;quot;&lt;strong&gt;Network Service&lt;/strong&gt;&amp;quot; I have to ensure it can read and write in the appropriate locations around tomcat. Now I'm being a little lazy here - if I really wanted to lock it down I would create a user account, remove it from all groups and then sit with &lt;a target="_blank" href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx"&gt;Process Monitor&lt;/a&gt; and find the exact settings required. But this is enough to get me over the hump. Allowing read to all of &lt;strong&gt;tomcat&lt;/strong&gt;, and allowing write to &lt;strong&gt;tomcat\logs&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;cacls c:\tomcat /T /E /C /G &amp;quot;NETWORK SERVICE&amp;quot;:R&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;cacls c:\tomcat\logs /T /E /C /G &amp;quot;NETWORK SERVICE&amp;quot;:C&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;10. Finally we need to drop some content to serve, I'm just going to drop in the examples that ship with the default tomcat build, normally found in the &lt;strong&gt;tomcat\webapps\examples&lt;/strong&gt; folder. I've just copied all the files into the root of my site and now lets browse to my site &lt;strong&gt;http://mytomcat.com&lt;/strong&gt;&lt;a title="http://mytomcat.com/servlets/servlet/HelloWorldExample" href="http://mytomcat.com/servlets/servlet/HelloWorldExample"&gt;&lt;strong&gt;/servlets/servlet/HelloWorldExample&lt;/strong&gt;&lt;/a&gt; (local demo site) ... and:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/9a0bfb6c0d5c_B772/image_8.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/9a0bfb6c0d5c_B772/image_thumb_3.png" width="459" height="140" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Its working - HOORAY!&lt;/p&gt;  &lt;p&gt;Just to verify, looking at my IIS logs you can see the requests coming through to the server:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;008-09-17 00:50:32 192.168.0.2 GET /servlets/servlet/HelloWorldExample - 80 - 127.0.0.1 HTTP/1.1 Mozilla/5.0+(Windows;+U;+Windows+NT+6.0;+en-GB;+rv:1.9)+Gecko/2008052906+Firefox/3.0+(.NET+CLR+3.5.30729) JSESSIONID=A86ABA6C645C8FC922551765899D09A0 - mytomcat.com 200 0 0 511 513 194      &lt;br /&gt;2008-09-17 00:50:32 192.168.0.2 GET /servlets/images/code.gif - 80 - 127.0.0.1 HTTP/1.1 Mozilla/5.0+(Windows;+U;+Windows+NT+6.0;+en-GB;+rv:1.9)+Gecko/2008052906+Firefox/3.0+(.NET+CLR+3.5.30729) JSESSIONID=A86ABA6C645C8FC922551765899D09A0 &lt;/font&gt;&lt;a href="http://mytomcat.com/servlets/servlet/HelloWorldExample"&gt;&lt;font size="2" face="Courier New"&gt;http://mytomcat.com/servlets/servlet/HelloWorldExample&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Courier New"&gt; mytomcat.com 200 0 0 519 538 17      &lt;br /&gt;2008-09-17 00:50:32 192.168.0.2 GET /servlets/images/return.gif - 80 - 127.0.0.1 HTTP/1.1 Mozilla/5.0+(Windows;+U;+Windows+NT+6.0;+en-GB;+rv:1.9)+Gecko/2008052906+Firefox/3.0+(.NET+CLR+3.5.30729) JSESSIONID=A86ABA6C645C8FC922551765899D09A0 &lt;/font&gt;&lt;a href="http://mytomcat.com/servlets/servlet/HelloWorldExample"&gt;&lt;font size="2" face="Courier New"&gt;http://mytomcat.com/servlets/servlet/HelloWorldExample&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Courier New"&gt; mytomcat.com 200 0 0 1460 540 21      &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The request loads through the ISAPI filters, so looking at the tomcat access logs:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;127.0.0.1 - - [17/Sep/2008:10:44:33 +1000] &amp;quot;GET /servlets/servlet/HelloWorldExample HTTP/1.1&amp;quot; 200 359      &lt;br /&gt;127.0.0.1 - - [17/Sep/2008:10:44:38 +1000] &amp;quot;GET /servlets/servlet/HelloWorldExample HTTP/1.1&amp;quot; 200 359       &lt;br /&gt;127.0.0.1 - - [17/Sep/2008:10:44:55 +1000] &amp;quot;GET /servlets/servlet/HelloWorldExample HTTP/1.1&amp;quot; 200 359       &lt;br /&gt;127.0.0.1 - - [17/Sep/2008:10:45:12 +1000] &amp;quot;GET /servlets/servlet/HelloWorldExample HTTP/1.1&amp;quot; 200 359       &lt;br /&gt;127.0.0.1 - - [17/Sep/2008:10:45:57 +1000] &amp;quot;GET /servlets/servlet/HelloWorldExample HTTP/1.1&amp;quot; 200 359&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;Further Security Lock Downs&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;One very important you should to for your site is to ensure that the jakarta folder is blocked from http reading, i.e. just being able to browse to it - this can be controlled by the request filtering feature that is built into IIS7. To protect the folder, very simply appcmd directive:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;appcmd.exe set config &amp;quot;mytomcat.com/jakarta&amp;quot; -section:system.webServer/security/requestFiltering /+&amp;quot;hiddenSegments.[segment='jakarta']&amp;quot;&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Then remember to rollback the WinRM configuration when going into production:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;WinRM set winrm/config/service/auth @{Basic=&amp;quot;false&amp;quot;}&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="5"&gt;&lt;strong&gt;EPIC DONE!&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;And we are done - so this is my no means an exhaustive configuration guide - merely a glimpse of how you can configure some competitive technologies with Windows Server 2008 Core and IIS7.&lt;/p&gt;  &lt;p&gt;- jorke&lt;/p&gt;  &lt;p&gt; p.s. (Fineprint) this whole post is totally without warranty, if you try this and it works or doesn't work its not my fault. If you girlfriend/wife/cat leaves you because of this - believe me it wasn't this - you have something else to worry about..&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e840150e-52f2-41cb-abaf-71c350cdf127" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Server%20Core" rel="tag"&gt;Server Core&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Tomcat" rel="tag"&gt;Tomcat&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Apache%20Tomcat" rel="tag"&gt;Apache Tomcat&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IIS7" rel="tag"&gt;IIS7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows" rel="tag"&gt;Windows&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Java" rel="tag"&gt;Java&lt;/a&gt;,&lt;a href="http://technorati.com/tags/JSP" rel="tag"&gt;JSP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Servlets" rel="tag"&gt;Servlets&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3125150" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jorke/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.technet.com/jorke/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.technet.com/jorke/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://blogs.technet.com/jorke/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.technet.com/jorke/archive/tags/apache/default.aspx">apache</category><category domain="http://blogs.technet.com/jorke/archive/tags/CGI/default.aspx">CGI</category><category domain="http://blogs.technet.com/jorke/archive/tags/core/default.aspx">core</category><category domain="http://blogs.technet.com/jorke/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://blogs.technet.com/jorke/archive/tags/tomcat/default.aspx">tomcat</category></item><item><title>Configuring NFS on Windows Server 2008 core</title><link>http://blogs.technet.com/jorke/archive/2008/09/10/configuring-nfs-on-windows-server-2008-core.aspx</link><pubDate>Wed, 10 Sep 2008 10:07:47 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3121815</guid><dc:creator>jorkeo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jorke/comments/3121815.aspx</comments><wfw:commentRss>http://blogs.technet.com/jorke/commentrss.aspx?PostID=3121815</wfw:commentRss><wfw:comment>http://blogs.technet.com/jorke/rsscomments.aspx?PostID=3121815</wfw:comment><description>&lt;p&gt;Hasn't really changed since 2003 R2, but its all over the command line. From the start:&lt;/p&gt;  &lt;p&gt;Installation of the NFS components:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;start /w ocsetup ServerForNFS-Base&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Make a directory to store your content and ACL it appropriately for NFS - I don't recommend this as best practice, but I'm assuming we're in safe environment, i.e. a management / storage network. Oh and wack a file in to test with:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;mkdir content       &lt;br /&gt;echo hello! &amp;gt; hello.txt        &lt;br /&gt;cacls content /t /e /g:&amp;quot;anonymous logon&amp;quot;:C        &lt;br /&gt;cacls content /t /e /g:everyone:C&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now I just need to start the NFS server &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;nfsadmin server localhost start&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Then just create the NFS share - I'm using the anonymous userid and groupid to 0 which is the root user and group:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;nfsshare nfscontent=c:\content -o root rw anon=yes anonuid=0 anongid=0&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;And then over to our *nix machine to mount the share, first I'll just make sure I can see them, then mount and test to read the file.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;[root@localhost /]# showmount -e servercore       &lt;br /&gt;Export list for servercore:        &lt;br /&gt;/nfscontent (everyone)        &lt;br /&gt;[root@localhost /]# mount -t nfs servercore:/nfscontent /mnt/content        &lt;br /&gt;[root@localhost /]# cat /mnt/content/hello.txt        &lt;br /&gt;Hello!        &lt;br /&gt;[root@localhost /]#&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;easy!&lt;/p&gt;  &lt;p&gt;-jorke&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;     &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1384c2f1-5c32-4f1a-879c-0fb230d6a93e" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/NFS" rel="tag"&gt;NFS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SFU" rel="tag"&gt;SFU&lt;/a&gt;,&lt;a href="http://technorati.com/tags/nfsadmin" rel="tag"&gt;nfsadmin&lt;/a&gt;,&lt;a href="http://technorati.com/tags/nfsshare" rel="tag"&gt;nfsshare&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3121815" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jorke/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://blogs.technet.com/jorke/archive/tags/linux/default.aspx">linux</category></item><item><title>DST changes for Australia in 2008!</title><link>http://blogs.technet.com/jorke/archive/2008/09/05/dst-changes-for-australia-in-2008.aspx</link><pubDate>Fri, 05 Sep 2008 05:17:29 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3122248</guid><dc:creator>jorkeo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jorke/comments/3122248.aspx</comments><wfw:commentRss>http://blogs.technet.com/jorke/commentrss.aspx?PostID=3122248</wfw:commentRss><wfw:comment>http://blogs.technet.com/jorke/rsscomments.aspx?PostID=3122248</wfw:comment><description>&lt;p&gt;Does that mean Queensland will have daylight savings time? NOOOO - fades the curtains apparently...&lt;/p&gt;  &lt;p&gt;Anyway the REST of Australia is making some changes in &lt;strong&gt;October - that's 1 month away!&lt;/strong&gt; - so we all need to update our servers/machines/robots to cope with the time differences. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Key Action: &lt;/strong&gt;&lt;a target="_blank" href="http://download.microsoft.com/documents/australia/timezone/Australia2008DaylightSavingPlanningGuide.doc"&gt;Download the Australia 2008 Daylight Saving Planning Document&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here is the rest of the communication - Make sure you're ready:&lt;/p&gt;  &lt;h4&gt;&lt;u&gt;Daylight Savings Changes &amp;#8211; October 2008 &lt;/u&gt;&lt;/h4&gt;  &lt;p&gt;In October this year, we will again be experiencing Daylight Savings changes in Australia. These changes can have a significant impact on business performance if not dealt with proactively. These effects can range from the incorrect time display on the clock, to calendaring problems, to financial and reputation loss if business critical services fail. &lt;/p&gt;  &lt;p&gt;Daylight saving now commences on the first Sunday in October and ends on the first Sunday in April in Australia Eastern (New South Wales, Victoria, Australian Capital Territory and Tasmania) and Central (South Australia). This change affects Microsoft Windows, Microsoft Office Outlook and other Microsoft, third party and custom applications.&amp;#160; Please find below some of the key things you need to know.&lt;/p&gt;  &lt;h4&gt;What is the impact of Daylight Savings changes?&lt;/h4&gt;  &lt;p&gt;Effects can range from the incorrect time display on the clock, to calendaring problems, to financial and reputation loss if business critical services fail.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;The 5&lt;sup&gt;th&lt;/sup&gt; of October commences the second window of time zone harmonisation for this year, however, we expect a greater impact in October as the change is 21 days difference, whereas the adjustment earlier in the year was only 7 days. &lt;/p&gt;  &lt;h4&gt;What is affected?&lt;/h4&gt;  &lt;p&gt;- All Microsoft Windows PC, server and mobile devices in the affected time zones must be updated to ensure accuracy of internal time zone tables and correct operation of the system clock. &lt;/p&gt;  &lt;p&gt;- Microsoft Office Outlook calendars may need to be adjusted. Client and Server-based tools are available to automate this service. &lt;/p&gt;  &lt;p&gt;- Microsoft, third party and custom applications which schedule events at future dates should be reviewed to ensure they will operate correctly during the extended daylight saving period. Previously scheduled events may also need to be adjusted. &lt;/p&gt;  &lt;p&gt;- Microsoft recommends that all PC and server systems are updated regardless of location to ensure consistency of operation.&lt;/p&gt;  &lt;h4&gt;What do I need to do?&lt;/h4&gt;  &lt;p&gt;Thorough planning and testing for these changes is critical to ensure the change results in minimal user impact, so to help customers prepare Microsoft has developed the &lt;a href="http://download.microsoft.com/documents/australia/timezone/Australia2008DaylightSavingPlanningGuide.doc"&gt;&lt;b&gt;Australia 2008 Daylight Saving Planning&lt;/b&gt;&lt;/a&gt;&lt;b&gt; &lt;/b&gt;document which details the nature and impact of the DST changes, along with planning guidance to avoid user impact. &lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;h4&gt;&lt;a name="_Toc207771108"&gt;What if the systems have been previously patched?&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Where servers, workstations and mobile devices have been added to the infrastructure, organisations will need to audit their environment to ensure all systems are patched according to the organisation&amp;#8217;s Daylight Savings Plan.&lt;b&gt; &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Where the environment does not have a consistent Daylight Savings Time (DST) patch level, appointments may have been created with a mix of correct and incorrect DST transition dates.&amp;#160; Furthermore, Microsoft recommends customers update all systems to ensure consistency of operation, even if none of your systems are in the affected time zones.&lt;/p&gt;  &lt;p&gt;- jorke&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8b102c0a-a5c2-44a2-84c6-983769aaa502" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DST" rel="tag"&gt;DST&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Daylight%20Savings" rel="tag"&gt;Daylight Savings&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Australia" rel="tag"&gt;Australia&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Timezone" rel="tag"&gt;Timezone&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3122248" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jorke/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.technet.com/jorke/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://blogs.technet.com/jorke/archive/tags/Infrastructure/default.aspx">Infrastructure</category></item><item><title>SQL 2005 PHP Driver RTM'd</title><link>http://blogs.technet.com/jorke/archive/2008/08/02/sql-2005-php-driver-rtm-d.aspx</link><pubDate>Fri, 01 Aug 2008 21:49:29 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3096867</guid><dc:creator>jorkeo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jorke/comments/3096867.aspx</comments><wfw:commentRss>http://blogs.technet.com/jorke/commentrss.aspx?PostID=3096867</wfw:commentRss><wfw:comment>http://blogs.technet.com/jorke/rsscomments.aspx?PostID=3096867</wfw:comment><description>&lt;p&gt;We've just shipped the released version for the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=61BF87E0-D031-466B-B09A-6597C21A2E2A&amp;amp;displaylang=en" target="_blank"&gt;SQL Server 2005 Driver extensions for PHP 5&lt;/a&gt; - if you're running the CTP version make sure you update to this version.&lt;/p&gt;  &lt;p&gt;Get the bits here: &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyId=61BF87E0-D031-466B-B09A-6597C21A2E2A&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=61BF87E0-D031-466B-B09A-6597C21A2E2A&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=61BF87E0-D031-466B-B09A-6597C21A2E2A&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I think the coolest thing that comes with this download is the Help file (.chm) that is part of the package and has an insane amount of detail on how to use it and how it actually works.&lt;/p&gt;  &lt;p&gt;to get it working just drop your files into your PHP extension directory - and is based on your chosen distribution of php - make sure you add it into your php.ini as well.v&lt;/p&gt;  &lt;p&gt;&lt;b&gt;php_sqlsrv_ts.dll&lt;/b&gt;     &lt;br /&gt;&lt;strong&gt;php_sqlsrv.dll &amp;lt;--&lt;/strong&gt; non thread safe&lt;/p&gt;  &lt;p&gt;go get it, and &lt;strong&gt;tell me &lt;/strong&gt;how it worked for you!&lt;/p&gt;  &lt;p&gt;-jorke&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;   &lt;div style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px; display: inline" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ec632a74-dbb4-46c3-959c-7949a687f0ef" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SQL%202005" rel="tag"&gt;SQL 2005&lt;/a&gt;,&lt;a href="http://technorati.com/tags/PHP" rel="tag"&gt;PHP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SQL%20driver" rel="tag"&gt;SQL driver&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3096867" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jorke/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.technet.com/jorke/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://blogs.technet.com/jorke/archive/tags/PHP/default.aspx">PHP</category></item><item><title>Microsoft contributing to Open Source</title><link>http://blogs.technet.com/jorke/archive/2008/07/26/microsoft-contributing-to-open-source.aspx</link><pubDate>Sat, 26 Jul 2008 02:21:22 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3093882</guid><dc:creator>jorkeo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jorke/comments/3093882.aspx</comments><wfw:commentRss>http://blogs.technet.com/jorke/commentrss.aspx?PostID=3093882</wfw:commentRss><wfw:comment>http://blogs.technet.com/jorke/rsscomments.aspx?PostID=3093882</wfw:comment><description>&lt;p&gt;&lt;a href="http://port25.technet.com/archive/2008/07/25/oscon2008.aspx" target="_blank"&gt;This is why I love working for Microsoft&lt;/a&gt; - as &lt;a href="http://www.nickhodge.com/blog" target="_blank"&gt;Nick Hodge&lt;/a&gt; often says &amp;quot;This is not your fathers Microsoft&amp;quot;;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://port25.technet.com/archive/2008/07/25/oscon2008.aspx" target="_blank"&gt;Sam Ramji Keynoted at Oscon about 3 very cool things:&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In short we've submitted code to the &lt;a href="http://adodb.sourceforge.net/" target="_blank"&gt;ADOdb&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Database_abstraction_layer" target="_blank"&gt;DAL&lt;/a&gt; library to add support for our &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=85f99a70-5df5-4558-991f-8aee8506833c&amp;amp;displaylang=en" target="_blank"&gt;PHP SQL driver&lt;/a&gt; - AND under a Free Software Foundation license. Of course this helps people deploy onto our platform and but most of all helps those developers using PHP applications with &lt;a href="http://en.wikipedia.org/wiki/Database_abstraction_layer" target="_blank"&gt;DAL&lt;/a&gt; to easily have choice between which platform they wish to deploy on.&lt;/p&gt;  &lt;p&gt;On top of that we're now part of the Apache Software Foundation and we're part of the Communications Protocol Program under the Open Specification Promise (OSP)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.opensource.org/files/garland_logo.png" /&gt; &lt;/p&gt;  &lt;p&gt;- jorke&lt;/p&gt;  &lt;div style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px; display: inline" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a16aaf02-ba3f-4169-bb7d-c25d969cd003" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ADOdb" rel="tag"&gt;ADOdb&lt;/a&gt;,&lt;a href="http://technorati.com/tags/PHP" rel="tag"&gt;PHP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Open%20Source" rel="tag"&gt;Open Source&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows%20Server%202008" rel="tag"&gt;Windows Server 2008&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3093882" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jorke/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.technet.com/jorke/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://blogs.technet.com/jorke/archive/tags/PHP/default.aspx">PHP</category><category domain="http://blogs.technet.com/jorke/archive/tags/community/default.aspx">community</category><category domain="http://blogs.technet.com/jorke/archive/tags/Open+Source/default.aspx">Open Source</category></item><item><title>PHP on IIS7 for Shared Hosting- AWESOME article!</title><link>http://blogs.technet.com/jorke/archive/2008/06/25/php-on-iis7-for-shared-hosting-awesome-article.aspx</link><pubDate>Wed, 25 Jun 2008 08:17:32 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3080660</guid><dc:creator>jorkeo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jorke/comments/3080660.aspx</comments><wfw:commentRss>http://blogs.technet.com/jorke/commentrss.aspx?PostID=3080660</wfw:commentRss><wfw:comment>http://blogs.technet.com/jorke/rsscomments.aspx?PostID=3080660</wfw:comment><description>&lt;p&gt;check it out on &lt;a href="http://iis.net" target="_blank"&gt;IIS.NET&lt;/a&gt; - &lt;a title="http://learn.iis.net/page.aspx/208/fastcgi-with-php/" href="http://learn.iis.net/page.aspx/208/fastcgi-with-php/"&gt;http://learn.iis.net/page.aspx/208/fastcgi-with-php/&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;here are a couple of excerpts from the article that I strongly recommend:&lt;/p&gt;  &lt;p&gt;-----------&lt;/p&gt;  &lt;h5&gt;PHP Security Recommendations&lt;/h5&gt;  &lt;p&gt;The following recommendations describe how to tighten security of PHP in shared hosting environment. To make the recommended changes locate and open php.ini file and edit it as described below:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Disable remote URL's for file handling functions:      &lt;ul&gt;       &lt;li&gt;Set allow_url_fopen=Off &lt;/li&gt;        &lt;li&gt;Set allow_url_include=Off &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Disable register_globals:      &lt;ul&gt;       &lt;li&gt;register_globals=Off &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Restrict where PHP can read and write on a file system, e.g.:      &lt;ul&gt;       &lt;li&gt;open_basedir=&amp;quot;c:\inetpub\&amp;quot; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Disable safe mode:      &lt;ul&gt;       &lt;li&gt;safe_mode=Off &lt;/li&gt;        &lt;li&gt;safe_mode_gid=Off &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Limit script execution time:      &lt;ul&gt;       &lt;li&gt;max_execution_time=30 &lt;/li&gt;        &lt;li&gt;max_input_time=60 &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Limit memory usage and file sizes:      &lt;ul&gt;       &lt;li&gt;memory_limit=16M &lt;/li&gt;        &lt;li&gt;upload_max_filesize=2M &lt;/li&gt;        &lt;li&gt;post_max_size=8M &lt;/li&gt;        &lt;li&gt;max_input_nesting_levels=64 &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Configure error messages and logging:      &lt;ul&gt;       &lt;li&gt;display_errors=Off &lt;/li&gt;        &lt;li&gt;log_errors=On &lt;/li&gt;        &lt;li&gt;error_log=&amp;quot;C:\path\of\your\choice&amp;quot; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Hide presence of PHP:      &lt;ul&gt;       &lt;li&gt;expose_php=Off &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;-----------    &lt;br /&gt;and how to ensure you can configure your own PHP.INI for each site:     &lt;br /&gt;-----------&lt;/p&gt;  &lt;h5&gt;Specifying php.ini location&lt;/h5&gt;  &lt;p&gt;When PHP process starts it determines the location of configuration php.ini file by using various settings. &lt;a href="http://www.php.net/manual/en/configuration.php"&gt;The PHP documentation&lt;/a&gt; provides detailed description of the PHP start up process. Note that one of the places where PHP process searches for php.ini location is the PHPRC environment variable. If PHP process finds a php.ini file in the path specified in this environment variable then it will use it, otherwise it will revert to default location of php.ini. This environment variable can be used to allow hosting customers to use their own versions of php.ini files.&lt;/p&gt;  &lt;p&gt;For example if there are two websites: website1 and website2; located at the following file paths: C:\WebSites\website1 and C:\WebSites\website2 then the php-cgi.exe process pools in &amp;lt;fastCgi&amp;gt; section of applicationHost.config can be configured as below:&lt;/p&gt;  &lt;p&gt;&lt;samp&gt;&amp;lt;fastCgi&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;application fullPath=&amp;quot;C:\PHP\php-cgi.exe&amp;quot; arguments=&amp;quot;-d my.website=website1&amp;quot;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;environmentVariables&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;environmentVariable name=&amp;quot;PHPRC&amp;quot; value=&amp;quot;C:\WebSites\website1&amp;quot; /&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/environmentVariables&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/application&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;application fullPath=&amp;quot;C:\PHP\php-cgi.exe&amp;quot; arguments=&amp;quot;-d my.website=website2&amp;quot;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;environmentVariables&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;environmentVariable name=&amp;quot;PHPRC&amp;quot; value=&amp;quot;C:\WebSites\website2&amp;quot; /&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/environmentVariables&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/application&amp;gt;       &lt;br /&gt;&amp;lt;/fastCgi&amp;gt;&lt;/samp&gt;&lt;/p&gt;  &lt;p&gt;This way owner of website1 can place their own version of php.ini into the C:\WebSites\website1, while the owner of website2 can use their own version of php.ini located in C:\WebSites\website2. This configuration also ensures that if there is no php.ini found in location specified by PHPRC environment variable then PHP will fall back to using the default php.ini file located in the same folder where php-cgi.exe is located.    &lt;br /&gt;-----------&lt;/p&gt;  &lt;p&gt;&lt;a href="http://learn.iis.net/page.aspx/208/fastcgi-with-php/" target="_blank"&gt;Check it out in more detail&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- jorke&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8918467d-4468-4c5c-83ca-9c959c5c47a8" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/PHP%20on%20Windows" rel="tag"&gt;PHP on Windows&lt;/a&gt;,&lt;a href="http://technorati.com/tags/PHP" rel="tag"&gt;PHP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IIS%207" rel="tag"&gt;IIS 7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/FastCGI" rel="tag"&gt;FastCGI&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IIS7" rel="tag"&gt;IIS7&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3080660" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jorke/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.technet.com/jorke/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://blogs.technet.com/jorke/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.technet.com/jorke/archive/tags/PHP/default.aspx">PHP</category><category domain="http://blogs.technet.com/jorke/archive/tags/FastCGI/default.aspx">FastCGI</category><category domain="http://blogs.technet.com/jorke/archive/tags/security/default.aspx">security</category></item><item><title>Installing FTP with IIS7 on 2008 Server Core</title><link>http://blogs.technet.com/jorke/archive/2008/06/05/installing-ftp-with-iis7-on-2008-server-core.aspx</link><pubDate>Thu, 05 Jun 2008 10:36:51 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3080692</guid><dc:creator>jorkeo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/jorke/comments/3080692.aspx</comments><wfw:commentRss>http://blogs.technet.com/jorke/commentrss.aspx?PostID=3080692</wfw:commentRss><wfw:comment>http://blogs.technet.com/jorke/rsscomments.aspx?PostID=3080692</wfw:comment><description>&lt;p&gt;I had a few questions from an old colleague, &lt;a href="http://twitter.com/virgilwashere" target="_blank"&gt;Virgil&lt;/a&gt;, who had just built a 2008 server core machine and was having issues configuring FTP. Without asking I knew &lt;a href="http://twitter.com/virgilwashere" target="_blank"&gt;Virgil&lt;/a&gt; would be chasing an FTP server that would have some method of secure transport such as FTPS and pluggable authentication methods, I know this because he's an interoperable kind of guy :)&lt;/p&gt;  &lt;p&gt;He'd already been trying to configure this with the default install of FTP that comes with Server 2008, but I recommended that he use the downloadable version from the &lt;a href="http://iis.net" target="_blank"&gt;iis.net&lt;/a&gt; website. Only issue here is that you have to uninstall the old FTP server before that will install, then configure the service all over again... so after about 30 minutes of furious IM conversations this is how we did it..&lt;/p&gt;  &lt;p&gt;First we uninstalled the FTP Service that comes with 2008 :&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;start /w pkgmgr /uu:IIS-FTPPublishingService;IIS-FTPServer&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Then downloaded the FTP publishing service for IIS 7, with the friendly name of FTP7;   &lt;br /&gt; - x86 - &lt;a title="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1619" href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1619"&gt;http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1619&lt;/a&gt;    &lt;br /&gt; - x64 - &lt;a title="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1620" href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1620"&gt;http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1620&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;and installed it:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;msiexec /i ftp7_x86_rtw.msi&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Once that was in we simply had add the appropriate bindings to the site, like so (Make sure you close your quotes properly or it goes NUTS!) :&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;c:\windows\system32\inetsrv\appcmd.exe set site /site.name:&amp;quot;Default Web Site&amp;quot; /+bindings.[protocol='ftp',bindingInformation=&amp;quot;*:21:&amp;quot;]&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;then we simply had to set an authorised user to the server:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;c:\windows\system32\inetsrv\appcmd.exe set config &amp;quot;Default Web Site&amp;quot; /sectionystem.ftpserver/security/authorization /+[accessType='Allow',permissions='Read,Write',roles='',users='ftpuser'] /commit:apphost&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;And we were done! (or so we thought!).... On attempting to connect to the FTP server we ended up with the error : &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;534-Policy requires SSL.     &lt;br /&gt; Win32 error:&amp;#160;&amp;#160; Access is denied.      &lt;br /&gt; Error details: SSL policy requires SSL for control channel.      &lt;br /&gt;534 End      &lt;br /&gt;Login failed.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;ahh that's right - by default the FTP install is set to run as FTPS thus requiring a secure connection... to turn off this feature (it was a lab environment and didn't require secure transfer) resulted in a LOT of head scratching, eventually to save time we popped open the applicationhost.config file and and added theses lines in the &amp;lt;site /&amp;gt; tag..:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&amp;lt;ftpServer&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;security&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ssl controlChannelPolicy=&amp;quot;SslAllow&amp;quot; dataChannelPolicy=&amp;quot;SslAllow&amp;quot; /&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/security&amp;gt;        &lt;br /&gt;&amp;lt;/ftpServer&amp;gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Not very elegant but served the purpose - a bit more investigation I eventually fell upon the answer using the &lt;a href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;i=1682&amp;amp;g=6" target="_blank"&gt;IIS7 Administration Pack&lt;/a&gt;, which allowed me to generate the correct script:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;c:\windows\system32\inetsrv\appcmd.exe set config -section:system.applicationHost/sites /[name='Default Web Site'].ftpServer.security.ssl.controlChannelPolicy:&amp;quot;SslAllow&amp;quot; /[name='Default Web Site'].ftpServer.security.ssl.dataChannelPolicy:&amp;quot;SslRequire&amp;quot; /commit:apphost&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;And there we go, FTP7 configured on Windows Server 2008 Core - couldn't be easier to script...&lt;/p&gt;  &lt;p&gt;- jorke&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3ac9393b-0974-4ce0-8cd3-d3ad090f85a6" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Windows%20Server%202008" rel="tag"&gt;Windows Server 2008&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IIS" rel="tag"&gt;IIS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/FTP" rel="tag"&gt;FTP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/FTP7" rel="tag"&gt;FTP7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Server%20Core" rel="tag"&gt;Server Core&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3080692" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jorke/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.technet.com/jorke/archive/tags/Hosting/default.aspx">Hosting</category><category domain="http://blogs.technet.com/jorke/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.technet.com/jorke/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://blogs.technet.com/jorke/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.technet.com/jorke/archive/tags/Infrastructure/default.aspx">Infrastructure</category><category domain="http://blogs.technet.com/jorke/archive/tags/core/default.aspx">core</category><category domain="http://blogs.technet.com/jorke/archive/tags/FTP/default.aspx">FTP</category></item><item><title>reMIX 08 Australia</title><link>http://blogs.technet.com/jorke/archive/2008/04/30/remix-08-australia.aspx</link><pubDate>Wed, 30 Apr 2008 03:10:03 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3047255</guid><dc:creator>jorkeo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jorke/comments/3047255.aspx</comments><wfw:commentRss>http://blogs.technet.com/jorke/commentrss.aspx?PostID=3047255</wfw:commentRss><wfw:comment>http://blogs.technet.com/jorke/rsscomments.aspx?PostID=3047255</wfw:comment><description>&lt;p&gt;&lt;a href="http://www.microsoft.com/australia/remix08/index.aspx" target="_blank"&gt;reMIX&lt;/a&gt; is back this year bigger and faster than ever. I know this is old news but I'm running a little behind at the moment.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/australia/remix08/index.aspx" target="_blank"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="107" alt="image" src="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/reMIX08Australia_8EEC/image_3.png" width="435" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Check out the &lt;a href="http://www.microsoft.com/australia/remix08/index.aspx" target="_blank"&gt;website&lt;/a&gt; and &lt;a href="https://www.local.microsoft.com.au/australia/events/register/home.aspx?levent=226239&amp;amp;linvitation" target="_blank"&gt;Register&lt;/a&gt; now for a bargain price of $199 (Inc GST) - we are doing 1 day in 2 cities:&lt;/p&gt;  &lt;h5&gt;&lt;b&gt;Sydney&lt;/b&gt;&lt;/h5&gt;&amp;#160;&amp;#160;&amp;#160; May 20   &lt;br /&gt;&amp;#160;&amp;#160; Powerhouse Museum  &lt;br /&gt;&amp;#160;&amp;#160; Harris Street, Ultimo   &lt;h5&gt;&lt;b&gt;Melbourne&lt;/b&gt;&lt;/h5&gt;  &lt;p&gt;&amp;#160;&amp;#160; May 22   &lt;br /&gt;&amp;#160;&amp;#160; Melbourne Town Hall    &lt;br /&gt;&amp;#160;&amp;#160; Cnr Swanston &amp;amp; Collins    &lt;br /&gt;&amp;#160;&amp;#160; Street, Melbourne&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/shanemo" target="_blank"&gt;Shanemo&lt;/a&gt; and &lt;a href="http://delicategeniusblog.com/" target="_blank"&gt;delicategenius&lt;/a&gt; are the content head honchos and have done an awesome job of pulling together great speakers and content - &lt;a href="http://www.microsoft.com/australia/remix08/sessions.aspx" target="_blank"&gt;checkout the session list&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;I've managed to land a &lt;a href="http://www.microsoft.com/australia/remix08/bios.aspx" target="_blank"&gt;speaking gig&lt;/a&gt; right before drinks!; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;quot;Bringing Hosters and Developers together with IIS7&amp;quot;*&lt;/strong&gt; - Come learn about all the great new features in Microsoft Internet Information Services 7 for hosters and web farm managers including creating a highly customizable environment for building scalable and reliable media applications.*&lt;/p&gt;  &lt;p&gt;* subject to change!&lt;/p&gt;  &lt;p&gt;Many exciting things happening leading up to this, check &lt;a href="http://blogs.msdn.com/shanemo/archive/2008/04/22/win-a-silverlight-skateboard-oz-remix-silverlight-video-clip-contest.aspx" target="_blank"&gt;out your chance to win free tickets, a zune or a silverlight skateboard&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;- jorke&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7ace2fc0-0d2e-4aa9-b527-dfd0240b3ba8" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/reMIX" rel="tag"&gt;reMIX&lt;/a&gt;,&lt;a href="http://technorati.com/tags/reMIX08" rel="tag"&gt;reMIX08&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Silverlight" rel="tag"&gt;Silverlight&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IIS7" rel="tag"&gt;IIS7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows%20Server%202008" rel="tag"&gt;Windows Server 2008&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3047255" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jorke/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.technet.com/jorke/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://blogs.technet.com/jorke/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.technet.com/jorke/archive/tags/partners/default.aspx">partners</category><category domain="http://blogs.technet.com/jorke/archive/tags/community/default.aspx">community</category><category domain="http://blogs.technet.com/jorke/archive/tags/events/default.aspx">events</category><category domain="http://blogs.technet.com/jorke/archive/tags/reMIX/default.aspx">reMIX</category></item><item><title>Hosting Days Australia - Coming to a City Near you!</title><link>http://blogs.technet.com/jorke/archive/2008/04/30/hosting-days-australia-coming-to-a-city-near-you.aspx</link><pubDate>Wed, 30 Apr 2008 02:36:24 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3047242</guid><dc:creator>jorkeo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jorke/comments/3047242.aspx</comments><wfw:commentRss>http://blogs.technet.com/jorke/commentrss.aspx?PostID=3047242</wfw:commentRss><wfw:comment>http://blogs.technet.com/jorke/rsscomments.aspx?PostID=3047242</wfw:comment><description>&lt;p&gt;via &lt;a href="http://blogs.msdn.com/chlong/archive/2008/04/23/hosting-days-australia.aspx" target="_blank"&gt;Christian&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This years Hosting Days is &amp;quot;Fast Tracking Your Success with FastLane&amp;quot; in a city somewhere close to you, unless you are in Darwin or Alice Springs or &lt;a href="http://en.wikipedia.org/wiki/Cameron%27s_Corner" target="_blank"&gt;Cameron's Corner&lt;/a&gt;....&lt;/p&gt;  &lt;p&gt;Phil and I have the first track, which is the fun track all about the HOW of hosting.&lt;/p&gt;  &lt;p&gt;Go to &lt;a href="https://partner.microsoft.com/australia/40048707"&gt;https://partner.microsoft.com/australia/40048707&lt;/a&gt; to see the agenda and &lt;a href="https://partner.microsoft.com/australia/40048707" target="_blank"&gt;register&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="https://partner.microsoft.com/australia/40048707" target="_blank" border="0"&gt;&lt;img src="https://partner.microsoft.com/binary/Australia/40061339" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;see you there!&lt;/p&gt;  &lt;p&gt;- jorke&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:727e1ada-5753-4de5-82d5-c81a3f956659" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Hosting%20Days" rel="tag"&gt;Hosting Days&lt;/a&gt;,&lt;a href="http://technorati.com/tags/partners" rel="tag"&gt;partners&lt;/a&gt;,&lt;a href="http://technorati.com/tags/events" rel="tag"&gt;events&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3047242" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jorke/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.technet.com/jorke/archive/tags/Hosting/default.aspx">Hosting</category><category domain="http://blogs.technet.com/jorke/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.technet.com/jorke/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://blogs.technet.com/jorke/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.technet.com/jorke/archive/tags/partners/default.aspx">partners</category><category domain="http://blogs.technet.com/jorke/archive/tags/community/default.aspx">community</category><category domain="http://blogs.technet.com/jorke/archive/tags/events/default.aspx">events</category><category domain="http://blogs.technet.com/jorke/archive/tags/Hosting+Days/default.aspx">Hosting Days</category></item><item><title>Hacked Web Applications causing storm - rattling Windows...</title><link>http://blogs.technet.com/jorke/archive/2008/04/29/hacked-web-applications-causing-storm-rattling-windows.aspx</link><pubDate>Mon, 28 Apr 2008 16:01:35 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3046318</guid><dc:creator>jorkeo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/jorke/comments/3046318.aspx</comments><wfw:commentRss>http://blogs.technet.com/jorke/commentrss.aspx?PostID=3046318</wfw:commentRss><wfw:comment>http://blogs.technet.com/jorke/rsscomments.aspx?PostID=3046318</wfw:comment><description>&lt;p&gt;For the past few days a &amp;quot;Cyber attack&amp;quot; has been taking place and according to &lt;a href="http://www.internetnews.com/security/article.php/3742926/HalfMillion+IIS+Servers+Hit+in+Cyber+Attack.htm" target="_blank"&gt;internetnews.com&lt;/a&gt; : &lt;/p&gt;  &lt;p&gt;&lt;em&gt;&amp;quot;number of infected IIS &lt;strong&gt;servers&lt;/strong&gt; at 282,000. Less than a day later, security firm F-Secure wrote its own &lt;/em&gt;&lt;a href="http://www.f-secure.com/weblog/archives/00001427.html"&gt;&lt;em&gt;blog entry&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, putting the infestation at over 500,000&amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;and &lt;a href="http://www.f-secure.com/weblog/archives/00001427.html" target="_blank"&gt;f-secure&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&amp;quot;Performing a Google search results in over &lt;b&gt;510,000 modified pages&lt;/b&gt;.&amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Without pointing out the reporting inconsistencies between &lt;strong&gt;servers&lt;/strong&gt; and &lt;strong&gt;pages&lt;/strong&gt; .... what is actually happening here.. &lt;/p&gt;  &lt;p align="center"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="132" alt="image" src="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/HackedWebApplicationscausingstormrattli_143A9/image_thumb.png" width="194" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;First of all its &lt;strong&gt;not at all&lt;/strong&gt; related to the &lt;a href="http://blogs.technet.com/jorke/archive/2008/04/18/potential-security-vulnerability-for-networkservice-potential-new-iis-exploit.aspx" target="_blank"&gt;security advisory&lt;/a&gt; that was released last week. &lt;u&gt;Nor is it in fact related to any other security issue with IIS, ASP, ASP.NET or Windows.&lt;/u&gt; It's really important to understand that, its all to do with dodgy and insecure development practices.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/HackedWebApplicationscausingstormrattli_143A9/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="110" alt="image" src="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/HackedWebApplicationscausingstormrattli_143A9/image_thumb_1.png" width="394" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Well very simply put its an age old &lt;a href="http://en.wikipedia.org/wiki/Sql_injection" target="_blank"&gt;SQL injection&lt;/a&gt; attack on a web site that modifies the return code adding a hidden link to a site that downloads &lt;a href="http://en.wikipedia.org/wiki/Malware" target="_blank"&gt;malware&lt;/a&gt; to client viewing the web page. Nothing new technology wise here, just a new method of delivery - which really should not affect those who have kept their machines up-to-date.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/HackedWebApplicationscausingstormrattli_143A9/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="89" alt="image" src="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/HackedWebApplicationscausingstormrattli_143A9/image_thumb_2.png" width="324" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In this case the attackers have chosen to target ASP/ASPX based web sites that have poorly written validation methods and deliver their code via a database content management system. The result being that pages on the site will return a hidden script tag that directs to one of the sites listed in the &lt;a href="http://www.f-secure.com/weblog/archives/00001427.html" target="_blank"&gt;earlier articles&lt;/a&gt; - which picks on particular vulnerabilities available on the client machine, not just those related to software developed by Microsoft either.&lt;/p&gt;  &lt;p&gt;Well that's all very nice you say - but &lt;strong&gt;&amp;quot;How do I protect myself against these kind of attacks?&amp;quot;. &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The way I see it, there are three areas of responsibility where lies the ability to protect the world against those few malicious people.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. &lt;/strong&gt;&lt;strong&gt;The Developer - FIX YOUR BROKEN CODE!&lt;/strong&gt; Seriously - check your code for possible attack vectors and test, test test. I've seen heaps of web sites and web servers compromised due to poorly written or no validation checking. Incorrect security settings deploying to high risk environments. Don't always assume you know who is going to access your app. Don't assume that app will exist with everything local to it. Catch those errors - I could go on. There is heaps of guidance around this - here is a few to start you off:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms994921.aspx" target="_blank"&gt;Web Development Best practices&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms998271.aspx" target="_blank"&gt;SQL injection mitigation&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;2.The Client - Keep your machine up-to-date &lt;/strong&gt;- as &lt;a href="http://blogs.msdn.com/acoat" target="_blank"&gt;Coatsy&lt;/a&gt; says &amp;quot;go to &lt;a href="http://update.microsoft.com" target="_blank"&gt;update.microsoft.com&lt;/a&gt; and Download the golden padlock of goodness&amp;quot; from Microsoft Update.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/HackedWebApplicationscausingstormrattli_143A9/image_8.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="103" alt="image" src="http://blogs.technet.com/blogfiles/jorke/WindowsLiveWriter/HackedWebApplicationscausingstormrattli_143A9/image_thumb_3.png" width="291" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3. The System Admin / Hoster / Guy who has to run the web server - &lt;/strong&gt;Hey I sympathise with you most (of course I would!) You have to get a site with poorly written code up and running, and &lt;strong&gt;now what&lt;/strong&gt;? you have to check the thing isn't going to compromise your server? but of course the code supplied doesn't work in your standard low security settings to you need to bend the rules to allow that code to work.. Be Strong! &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/wyts434y.aspx" target="_blank"&gt;ASP.NET trust levels&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms228096.aspx" target="_blank"&gt;Securing ASP.NET in Shared Server&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;But you may have been too late, and you have to clean this mess up on your server - how are you going to prevent this malicious code being delivered to and from your server, while keeping everything up and running?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Stop the attack coming in&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you are using IIS7 or URLScan on IIS6.0/5.1 you can filter the request to prevent the incoming attacks. In IIS7 This is what the configuration string looks like in your server wide applicationhost.config file (based on the info in articles):&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;lt;requestFiltering&amp;gt;     &lt;br /&gt; &amp;lt;denyUrlSequences&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;add sequence=&amp;quot;DECLARE%20@S%20NVARCHAR(4000);SET%20@S=CAST(0x440045004300&amp;quot; /&amp;gt;      &lt;br /&gt; &amp;lt;/denyUrlSequences&amp;gt;      &lt;br /&gt;&amp;lt;/requestFiltering&amp;gt;&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Stop it going out&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This is a little trickier, but due to the awesome modularity of IIS7 (only going to look at this) you can very easily write a module that can look in all the requests scan for the URL sequence in the response and send it to null. More information on doing this &lt;a href="http://learn.iis.net/page.aspx/366/developing-iis7-modules-and-handlers-with-the-net-framework/" target="_blank"&gt;is at the IIS.NET website&lt;/a&gt;. Hey, if I get enough comments I'll write one and post it up here!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Done and Dusted&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;What we all need to remember about these kind of attacks is that vulnerability in the web sites being targeted are not limited to just a particular operating system platform. SQL Injection attacks is rampant in many platform agnostic applications and its such a simple thing to prevent. &lt;/p&gt;  &lt;p&gt;As you have probably guessed I'm pretty passionate about this subject, and when I see such misguided reports and irrational reactions to incorrect or misunderstood information, it inspires me to ensure that the truth of the issue is available. Speaking personally; In my short time at Microsoft, I have never seen such commitment behind ensuring that the Windows Operating System is the most versatile and secure operating system on earth.&lt;/p&gt;  &lt;p&gt;- jorke&lt;/p&gt;  &lt;p&gt;Note: Graphics &amp;quot;borrowed&amp;quot; from &lt;a href="http://www.microsoft.com/japan/security/default.mspx" target="_blank"&gt;Microsoft Japan Security Bulletins&lt;/a&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6dcd4762-273d-4b56-ab20-751ee8adb6f3" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SQL%20Injection" rel="tag"&gt;SQL Injection&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Security%20Vunerability" rel="tag"&gt;Security Vunerability&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IIS" rel="tag"&gt;IIS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows" rel="tag"&gt;Windows&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3046318" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jorke/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.technet.com/jorke/archive/tags/Hosting/default.aspx">Hosting</category><category domain="http://blogs.technet.com/jorke/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.technet.com/jorke/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://blogs.technet.com/jorke/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.technet.com/jorke/archive/tags/.net/default.aspx">.net</category><category domain="http://blogs.technet.com/jorke/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.technet.com/jorke/archive/tags/hosters/default.aspx">hosters</category><category domain="http://blogs.technet.com/jorke/archive/tags/security/default.aspx">security</category><category domain="http://blogs.technet.com/jorke/archive/tags/SQL+Injection/default.aspx">SQL Injection</category></item><item><title>Potential Security Vulnerability for NetworkService / potential new IIS exploit</title><link>http://blogs.technet.com/jorke/archive/2008/04/18/potential-security-vulnerability-for-networkservice-potential-new-iis-exploit.aspx</link><pubDate>Fri, 18 Apr 2008 11:25:39 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3039220</guid><dc:creator>jorkeo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/jorke/comments/3039220.aspx</comments><wfw:commentRss>http://blogs.technet.com/jorke/commentrss.aspx?PostID=3039220</wfw:commentRss><wfw:comment>http://blogs.technet.com/jorke/rsscomments.aspx?PostID=3039220</wfw:comment><description>&lt;p&gt;Important heads up with regards to a potential privilege escalation issue when running under NetworkService &amp;#8211; which we all know is the IIS default.... But also note that it requires native code or full trust .NET. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Hosting Providers with Shared Hosting configurations&lt;/font&gt;&lt;/strong&gt; should pay careful attention to this and ensure that they are running a customised version of medium trust at the very least - &lt;a title="http://msdn2.microsoft.com/en-us/library/ms998341.aspx" href="http://msdn2.microsoft.com/en-us/library/ms998341.aspx"&gt;&lt;strong&gt;http://msdn2.microsoft.com/en-us/library/ms998341.aspx&lt;/strong&gt;&lt;/a&gt;. Also be wary of any custom ISAPI extensions - i.e do a code review.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;High level summary:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Processes running under Network Service identity can elevate to Local System on XP, Win2k3, Vista and Win2k8. Additionally, on Win2k3 any process running with an identity that has SeImpersonatePrivilege can elevate to Local System, and this privilege is required by IIS worker process identity. &lt;b&gt;The Elevation of Privilege requires running native user code or full-trust managed code.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Our guidance is of course to move your app move WPI away from NetworkService to a windows account. Additionally on Win2k3, our guidance includes disabling Distributed Transaction Coordinator service (to close the hole where any identity with SeImpersonatePrivilege can elevate).&lt;/p&gt;  &lt;p&gt;More information here: &lt;a href="http://www.microsoft.com/technet/security/advisory/951306.mspx"&gt;http://www.microsoft.com/technet/security/advisory/951306.mspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Let me know if you have any further questions or require advice.&lt;/p&gt;  &lt;p&gt;- jorke&lt;/p&gt;  &lt;p&gt;UPDATE (6:23pm 18/4/08): &lt;/p&gt; &lt;a href="http://www.adopenstatic.com/cs/blogs/ken/archive/2008/04/17/17399.aspx" target="_blank"&gt;Check out Ken Schaefer's Blog for the origin of this potential issue.&lt;/a&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7f2bf51e-f7f4-4c90-9f8a-49d0dd23ceb1" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Security%20Vunerability" rel="tag"&gt;Security Vunerability&lt;/a&gt;,&lt;a href="http://technorati.com/tags/NetworkService" rel="tag"&gt;NetworkService&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IIS" rel="tag"&gt;IIS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/exploit" rel="tag"&gt;exploit&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3039220" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jorke/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.technet.com/jorke/archive/tags/Hosting/default.aspx">Hosting</category><category domain="http://blogs.technet.com/jorke/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.technet.com/jorke/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://blogs.technet.com/jorke/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.technet.com/jorke/archive/tags/security/default.aspx">security</category></item></channel></rss>