<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Helicon Tech Blog</title>
	<atom:link href="http://www.helicontech.com/articles/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.helicontech.com/articles</link>
	<description>Web Server Enhancements</description>
	<lastBuildDate>Thu, 30 May 2013 08:17:52 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.1</generator>
		<item>
		<title>Debugging .htaccess with Helicon Ape</title>
		<link>http://www.helicontech.com/articles/debugging-htaccess-with-helicon-ape/</link>
		<comments>http://www.helicontech.com/articles/debugging-htaccess-with-helicon-ape/#comments</comments>
		<pubDate>Thu, 31 Jan 2013 11:19:00 +0000</pubDate>
		<dc:creator>ruslan</dc:creator>
				<category><![CDATA[Helicon Ape]]></category>
		<category><![CDATA[mod_developer]]></category>

		<guid isPermaLink="false">http://www.helicontech.com/articles/?p=1207</guid>
		<description><![CDATA[Helicon Ape incorporates a profound tool for debugging of web-sites as well as .htaccess files, e.g. rewrite, proxy and other directives in your httpd.conf, .htaccess and .htpasswd files. The debugger will show how the server processes your requests in real &#8230; <a href="http://www.helicontech.com/articles/debugging-htaccess-with-helicon-ape/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Helicon Ape incorporates a profound tool for debugging of web-sites as well as .htaccess files, e.g. rewrite, proxy and other directives in your httpd.conf, .htaccess and .htpasswd files. The debugger will show how the server processes your requests in real time while you are navigating web site in the browser window. For each server request it presents following information:</p>
<ul>
<li>request and response headers,
<li>cookies,
<li>server variables,
<li>environment variables,
<li>merged httpd.conf and .htaccess files,
<li>Ape debugging log messages with maximum verbosity. </li>
</ul>
<p>Debugger shows verbose information not only for successful requests (status code 200), but also all others: redirects 3xx, client-side errors 4xx, server errors 5xx.</p>
<p>This debugger allows you to connect to a remote server and read debug information live. Only your session requests will be presented in the debugger window so other user requests will not be affected. This means you can run debugging in production environment.</p>
<p><span id="more-1207"></span><br />
<h2>Launching the debugger</h2>
<p>To run the debugger mod_developer module should be enabled. The following line in&nbsp; httpd.conf should be uncommented to ensure this:</p>
<pre><code>LoadModule developer_module&nbsp;&nbsp; modules/mod_developer.so</code></pre>
<p>Then:</p>
<ul>
<li>run Helicon Ape Manager
<li>select the site or application to debug
<li>select Tools –&gt; Start Ape Debugger<br /><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="01-start" border="0" alt="01-start" src="http://www.helicontech.com/articles/wp-content/uploads/2013/02/01-start_thumb.png" width="704" height="421"> </li>
</ul>
<p>The result will be the following:</p>
<ul>
<li>a new browser window will open with the site or application selected for debugging; you&#8217;ll be able to browse the pages, perform AJAX-requests etc.
<li>the Debugger tab will be opened in Ape Manager and will show the requests log. </li>
</ul>
<h2>Functionality</h2>
<p>The Debugger tab shows the log of all your requests to the site or application being debugged. The log includes the following info about each request: the path, status code, content-type and processing time in IIS.</p>
<p><a href="http://www.helicontech.com/articles/wp-content/uploads/2013/02/02.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="02" border="0" alt="02" src="http://www.helicontech.com/articles/wp-content/uploads/2013/02/02_thumb.png" width="704" height="421"></a></p>
<p>Click on the line in the log and you&#8217;ll see detailed information about the request: request and response headers, cookies, server variables, environment variables, applied httpd.conf and merged .htaccess rules, corresponding error.log and rewrite.log records (if there are any for that request).</p>
<h3>Headers:</h3>
<h4><a style="font-size: 16px" href="http://www.helicontech.com/articles/wp-content/uploads/2013/02/03.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="03" border="0" alt="03" src="http://www.helicontech.com/articles/wp-content/uploads/2013/02/03_thumb.png" width="704" height="546"></a></h4>
<h3>.htaccess:</h3>
<p><a href="http://www.helicontech.com/articles/wp-content/uploads/2013/02/04.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="04" border="0" alt="04" src="http://www.helicontech.com/articles/wp-content/uploads/2013/02/04_thumb.png" width="704" height="468"></a></p>
<h3>Logs:</h3>
<p><a href="http://www.helicontech.com/articles/wp-content/uploads/2013/02/05.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="05" border="0" alt="05" src="http://www.helicontech.com/articles/wp-content/uploads/2013/02/05_thumb.png" width="704" height="468"></a></p>
<p>The log with all debugging info may be opened directly in browser by clicking on the link ‘Open in browser’. Clicking ‘Clear log’ will remove all log entries.</p>
<p>To stop debugging click ‘Stop debugging’ or in Ape Manager choose Tools –&gt; Stop Ape Debugger.</p>
<h2>Security</h2>
<p>The security of the debugging process is ensured as follows.</p>
<p>When debugging starts the following record is put in .htaccess:</p>
<pre><code>SetEnv mod_developer secure-key-XXXXXXXXXXX</code></pre>
<p>where XXXXXXXXXXX is a secret randomly-generated key for access to debugging info. Upon the first request to debugging session the browser will send this key to the server and will get a cookie with this key and the id of the debugging session. All requests to the server with this cookie are logged. The same cookie is owned by web-interface of debugger&nbsp; (which is shown in Debugger tab). As a result, only authorized clients (browser and debugger) are allowed to make requests to be logged and receive them.</p>
<p>Upon termination of debugging (click on ‘Stop debugging’) the request to the server is sent and session id and all related log records are deleted. The cookie is reset. The previous cookie left in the browser becomes invalid, the logging stops.</p>
<h2></h2>
<h2>Remote debugging</h2>
<p>You can start .htaccess debugging on a server remotely. To do this you need to first put the line which sets mod_developer secure key into .htaccess file on your remote web site.</p>
<pre><code>SetEnv mod_developer secure-key-XXXXXXXXXXX</code></pre>
<p>where XXXXXXXXXXX is any random numbers or text. Then open browser and type a link like this:</p>
<pre><code><a href="http://www.example.com/developer/_ape_start_developer_session?ape_debug=secure-key-XXXXXXXXXXX">http://www.example.com/developer/_ape_start_developer_session?ape_debug=secure-key-XXXXXXXXXXX</a> </code></pre>
<p>and use same value for XXXXXXXXXXX as you used in .htaccess file. This will start debugger window with “Waiting for data” message. This window also sets special cookie in the browser to identify your debugging session. Now open new tab in same browser and navigate to your web site. You will be reading debug information in the debug session window as you navigate through your web site live.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.helicontech.com/articles/debugging-htaccess-with-helicon-ape/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing ContentBox CMS on Windows with IIS</title>
		<link>http://www.helicontech.com/articles/installing-contentbox-cms-on-windows-with-iis/</link>
		<comments>http://www.helicontech.com/articles/installing-contentbox-cms-on-windows-with-iis/#comments</comments>
		<pubDate>Wed, 23 Jan 2013 10:37:25 +0000</pubDate>
		<dc:creator>Slov</dc:creator>
				<category><![CDATA[Helicon Zoo]]></category>

		<guid isPermaLink="false">http://www.helicontech.com/articles/?p=1202</guid>
		<description><![CDATA[ContentBox CMS is a professional open source modular content management engine that allows you to easily build websites, blogs, wikis, complex web applications and even power mobile or cloud applications. In this article you will find an instruction how to &#8230; <a href="http://www.helicontech.com/articles/installing-contentbox-cms-on-windows-with-iis/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gocontentbox.org/">ContentBox</a> CMS is a professional open source modular content management engine that allows you to easily build websites, blogs, wikis, complex web applications and even power mobile or cloud applications. In this article you will find an instruction how to install ContentBox CMS on Microsoft IIS web server using Helicon Zoo.</p>
<p><span id="more-1202"></span></p>
<p>&nbsp;</p>
<h2>Configuring Helicon Zoo</h2>
<p>First we need to get Microsoft Web Platform Installer and configure it with Helicon Zoo:</p>
<ol>
<li>Download and install <a title="Web Platform Installer" href="http://www.microsoft.com/web/downloads/platform.aspx" target="_blank">Web Platform Installer</a>.</li>
<li>Run Web Platform Installer and click “Options”.</li>
<li>Add Helicon Zoo feed into “Display additional scenarios” box: <a href="http://www.helicontech.com/zoo/feed" target="_blank">http://www.helicontech.com/zoo/feed</a>. New “Zoo” tab will appear.</li>
</ol>
<p>If it is a development machine it is convenient to choose IIS Express as a target web server for installations. For production environment please choose IIS.</p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.helicontech.com/articles/wp-content/uploads/2013/01/image.png" alt="image" width="494" height="340" border="0" /></p>
<h2>Installing ContentBox CMS</h2>
<p>In Web Platform Installer go to Zoo –&gt; Applications, select ContentBox, click Add and then Install:</p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.helicontech.com/articles/wp-content/uploads/2013/01/image1.png" alt="image" width="558" height="454" border="0" /></p>
<p>On a clean system installation may take a while as many components needs to be download and installed. These components usually include: Oracle JDK, Jetty, Railo, Helicon Zoo. Web Platform Installer may also install IIS or IIS Express and WebMatrix if they where not installed before. After installation of all required components is completed if you have selected IIS Express as target web server, the web site with ContentBox will be launched automatically. If you have selected IIS, then you will need to complete the form, choosing a location for new application – this could be application folder inside existing web site or a new web site.</p>
<p>On the first launch of web site you will see the <em>Application deployment in progress</em> page, with the progress of downloading and installing ContentBox CMS files.</p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.helicontech.com/articles/wp-content/uploads/2013/01/image2.png" alt="image" width="733" height="598" border="0" /></p>
<p>It will then refresh automatically to the ContentBox installation wizard:</p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.helicontech.com/articles/wp-content/uploads/2013/01/image3.png" alt="image" width="690" height="724" border="0" /></p>
<p>If you don’t have a database server you can use Web Platform Installer, to install MS SQL Server Express, MySQL or PostgreSQL on your system.</p>
<p>Since we’ve just created new Railo application the Railo Web Administrator password is not set yet. You need to navigate to the Railo web administrator page to set it. Use the URL like this: <a title="http://localhost:54973/railo-context/admin/web.cfm" href="http://localhost:54973/railo-context/admin/web.cfm">http://localhost:54973/railo-context/admin/web.cfm</a> Here the host name and port may vary depending on where you have installed ContentBox CMS.</p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.helicontech.com/articles/wp-content/uploads/2013/01/image4.png" alt="image" width="659" height="465" border="0" /></p>
<p>After completing ContentBox installation wizard you should see the web site up and running:</p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.helicontech.com/articles/wp-content/uploads/2013/01/image5.png" alt="image" width="754" height="479" border="0" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.helicontech.com/articles/installing-contentbox-cms-on-windows-with-iis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi technology hosting with Helicon Zoo</title>
		<link>http://www.helicontech.com/articles/multi-technology-hosting-with-helicon-zoo/</link>
		<comments>http://www.helicontech.com/articles/multi-technology-hosting-with-helicon-zoo/#comments</comments>
		<pubDate>Thu, 22 Nov 2012 15:31:56 +0000</pubDate>
		<dc:creator>Slov</dc:creator>
				<category><![CDATA[Helicon Zoo]]></category>

		<guid isPermaLink="false">http://www.helicontech.com/articles/?p=1150</guid>
		<description><![CDATA[When we were making Helicon Zoo our main goal, aside from technology integration, was to create simple and unified solution for hosting providers to offer all mainstream web technologies and application engines to users. And now with better integration into &#8230; <a href="http://www.helicontech.com/articles/multi-technology-hosting-with-helicon-zoo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When we were making Helicon Zoo our main goal, aside from technology integration, was to create simple and unified solution for hosting providers to offer all mainstream web technologies and application engines to users. And now with better integration into WebsitePanel 2.0 we are even closer to that goal. This article will show how to build the most advanced and technology-rich hosting and PaaS solution on a market.</p>
<p>Helicon Zoo is a solution to host web applications written on multiple technologies inside Microsoft IIS and as regular IIS web sites. These technologies include: <b>PHP</b>, <b>Perl</b>, <b>Java</b>, <b>Ruby</b>, <b>Python</b>, <b>Node.js</b>, <b>Erlang</b> and <b>ColdFusion</b>. And when we say, for example, Ruby we mean everything-Ruby. This includes <b>Ruby on Rails</b>, <b>Sinatra</b>, <b>Thin</b>, <b>Goliath</b>, simple <b>Rack</b> or <b>FastCGI</b> applications, etc. The same variety applies to other technologies like Java, Python, etc. Add here native IIS support for <b>ASP</b> and <b>ASP.NET</b> and you’ll get the most technology-packed hosting service available.</p>
<p>All these technologies can be installed on the same server, shared by all users and even mixed within one web site. Consider, for example, users may have their main web site content running on ASP.NET, blog made with WordPress (PHP), forum on DjangoBB (Python), online chat with Node.js, Git repositories with Java, helpdesk solution with Perl and e-commerce solution with Ruby on Rails – all running within the same IIS web site on the same server. Sounds hardly possible? Well, this is nearly how Helicon Tech web site works. Below please find instructions on how to set the same technology on your hosting.</p>
<p><span id="more-1150"></span><br />
<h2>Installing components</h2>
<p>Helicon Zoo is delivered as a custom Microsoft Web Platform Installer repository, so all parts of the solution can be installed from one place and you can be sure that everything is tightly integrated and tested to work together.</p>
<p>New WebsitePanel 2.0 includes support for Web Platform Installer and Helicon Zoo repository is also enabled by default. So if you are using this hosting control panel, you need to simply select the server where you wish to install components and click on Web Platform Installer in the Server tools menu.</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/11/image8.png" width="747" height="607"></p>
<p>This will open Web Platform Installer interface where you can install many useful tools and components on your server, like MySQL, MongoDB, PostgreSQL and various IIS components like WebDeploy, URL Rewrite, etc. But we are here to install web application engines. In the Packages tab you can find complete and ready to use hosting packages for various web technologies.</p>
<p><a href="http://www.helicontech.com/articles/wp-content/uploads/2012/11/image29.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/11/image29_thumb.png" width="736" height="810"></a></p>
<p>Each of these packages includes everything needed to host applications of specific technology on your server and thanks to Web Platform Installer all required dependencies will be detected, downloaded and installed automatically. So select for example PHP Hosting Package, Java Hosting Package and Ruby Hosting Package and click install, then accept licenses and this will start installation process.</p>
<p>To install Java Hosting Package you will need to download and install Oracle JDK 7. Unfortunately, Oracle prohibits direct downloads of Java packages, this means we cannot include JDK into our repository and you will have to go to Oracle web site and run JDK installation manually. Other packages will install dependencies automatically. Ruby package, for example, includes <strong>Ruby 1.8</strong>, <strong>Ruby 1.9</strong>, <strong>Ruby DevKit</strong>, <strong>Thin</strong>, <strong>Sinatra</strong>, <strong>Goliath</strong> and of course <strong>Ruby on Rails 2 &amp; 3</strong>, plus it depends on IIS itself and Helicon Zoo Module.</p>
<p>If you don’t plan to use WebsitePanel 2.0 to manage your server you can install Helicon Zoo hosting packages using Microsoft Web Platform Installer. Simply add this feed in <em>Options</em> dialog and install packages you need: <a href="http://www.helicontech.com/zoo/feed/" target="_blank">http://www.helicontech.com/zoo/feed/</a></p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/11/image9.png" width="588" height="372"></p>
<p>After installation is completed your server is ready to run selected technologies immediately. No other components or configurations are necessary. If you need to configure engines further or restrict customer access to some engines or maybe create custom configurations for running web applications, please read the next chapter.</p>
<h2>Configuring Helicon Zoo</h2>
<p>Helicon Zoo was designed with shared hosting environment in mind and is capable of functioning in a fully automatic mode. It delivers concept of web engines and applications: where web application is something that resides within user’s web site folder and that is executed by web engine, while web engines are declared globally by server administrator and are located in <em>applicationHost.config</em>. Each engine declares commands, options and environment settings which are used to execute application of particular technology. Hosting users can’t change engines; they can only run applications using them.</p>
<p>There is no need to enable Helicon Zoo engines anywhere after installation. The concept is the same as you normally expect from PHP or ASP applications – simply put the application files into the web site folder and they run. But with Helicon Zoo these files also include web.config file which is used to actually configure the application in a folder, so user web.config files should be enabled for this concept to work.</p>
<p>Applications are executed in the context of IIS Application Pool. This means that if you run each user’s web site in a dedicated Application pool (which is default in WebsitePanel), each application is executed in an isolated user’s environment and with restricted permissions. When user creates a web site or application and uses Helicon Zoo new backend application will be created.</p>
<p>Helicon Zoo can talk to backends using <strong>FastCGI</strong> or <strong>HTTP</strong> protocols. “Backends” are for example php.exe or ruby.exe processes. Helicon Zoo will manage backend processes automatically. By default one backend process is started for each application when IIS application starts. Helicon Zoo can then increase the number of backend workers as the load to the application increases to keep response times within reasonable boundaries. It will then shut down excessive workers automatically as load decreases to save server resources.</p>
<p>Engines are configured in <em>applicationHost.config</em> file as <em>&lt;heliconZooServer&gt;</em> <em>&lt;engines&gt;</em> and <em>&lt;userEngines&gt;</em> sections. If you want to edit some engine settings, copy it’s content from &lt;engines&gt; section to &lt;userEngines&gt; section first as engines section can be overwritten when Helicon Zoo Module is upgraded. You can read more about Helicon Zoo Module configuration in the <a href="http://www.helicontech.com/zoo/docs/configuration.htm" target="_blank">product documentation</a>.</p>
<h2>User scenario</h2>
<p>So now we have a web server that supports multiple web application technologies, but how will users actually install their applications to use on your servers? There are several options to do that:</p>
<h3>Web Application Gallery</h3>
<p>If you have WebsitePanel 2 on your hosting services, users can simply use <em>Web Application Gallery</em> to install applications and application templates for particular web technology. For example, assume that user is going to create new Ruby on Rails application. Since we already have Ruby Hosting Package installed on a server, user will open Web App Gallery:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/11/image10.png" width="726" height="532"></p>
<p>Select <em>Templates</em>:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/11/image11.png" width="724" height="611"></p>
<p>Scroll down to the <i>Ruby on Rails project</i> and click <i>Install</i>.</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/11/image12.png" width="724" height="611"></p>
<p>During installation user will have to choose a web site where to install the application and whether to put application into subfolder or web site’s root. After installation is completed application can be launched immediately right from WebsitePanel. After first application launch user can then edit and create files and scripts using normal development techniques for the applications of this type. It will be more convenient to download application files locally and work with them on client’s machine, then uploading files using FTP or WebDeploy.</p>
<p>Helicon Zoo provides templates for various web application technologies. List of these templates is constantly growing and updated. The content of each template project depends on the technology used. These projects usually include configuration files required to run application, some basic folder structure to hold static files, modules, etc., some scripts for application deployment and other useful components. We strongly recommend to use these application templates as a starting point for application development as these templates already include pre configurations and patterns for best development experience. If users already have some applications they want to host on your services, they can use application template available with Web Application Gallery to create a new application and then overwrite files in the template by the files of their actual application.</p>
<h3>Web Platform Installer and WebMatrix</h3>
<p>Another option for the user is to use <em>Web Platform Installer</em> to create a new application or template. The first thing to do here is to get <a href="http://www.microsoft.com/web/downloads/platform.aspx" target="_blank">Web Platform Installer</a> from Microsoft. In <em>Options</em> add <a href="http://www.helicontech.com/zoo/feed/" target="_blank">Helicon Zoo repository feed</a> and select <em>IIS Express</em> as a target web server.</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/11/image13.png" width="494" height="425"></p>
<p>After that user can install any of the <i>Hosting Packages</i> on the client machine and get exactly the same environment as installed on a remote server that will run these applications online. Or user can bypass this step and install project template (like <i>Ruby on Rails project</i>) without installing hosting package, as all required components to run this application template will be downloaded and installed automatically, including WebMatrix and IIS Express itself. This will not probably allow user to run other types of Ruby applications, but the selected applications will run as expected.</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/11/image14.png" width="542" height="386"></p>
<p>After installation is completed WebMatrix will be launched running web application and providing file editors. It is possible to use Visual Studio or any other preferred web application IDE to work with these files.</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/11/image15.png" width="782" height="616"></p>
<p>Then use WebDeploy, FTP access or any other convenient way to upload application to the remote server.</p>
<p>Helicon Zoo applications are normally portable – you can move application from one machine to another simply by copying web application’s folder content, and as long as corresponding Hosting Package is installed on both machines application will run. Obviously if the application connects to a database or other remote services, this has to be taken into account.</p>
<p>One more thing to remember is folder permissions. With IIS Express and WebMatrix applications are usually executed with local user’s permissions (which has full permissions to the application folder), but on remote server applications are run in a restricted environment. Most of the applications require <em>Write</em> permissions to the web site folder for various reasons – write logs, store data, cache, intermediate pre-compiled scripts, save additional modules and components. We recommend enabling <em>Write</em> permissions for entire web site or application folder unless you know exactly which folder permissions should be given to your particular application. Insufficient <em>Write</em> permissions is the most frequent cause of the application failure. With WebsitePanel you can enable <em>Write</em> permissions in the web site’s security options.</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/11/image17.png" width="724" height="611"></p>
<h2>Custom modules</h2>
<p>The application template is installed and running but what happens if we need to install something more complex than a “Hello world” app? Many applications require additional modules to run. With Helicon Zoo we now have a concept where all modules and requirements of the application are installed inside the application work folder, which is usually user’s web site folder.</p>
<p>Previously web hosting administrators had to install a number of modules globally on the server and maintain up-to-date versions of every component, but with growth of web technologies variety, when new modules and versions are released every day, this becomes an overwhelming task. Different applications may require different versions of components and some of these components may conflict with each other. There definitely has to be a way to isolate application environments. Most modern web application frameworks support an ability to isolate applications and Helicon Zoo actively uses this technique. Each application template project available from Zoo repository includes code examples of how to install modules and components into local application folders.</p>
<p>Users have to be aware of these techniques and appropriate documentation has to be available. For example for Python applications users need to list all application dependencies in the <em>requirements.txt</em> file, instead of installing components globally on the development machine. This is a standard technique for application deployment and all components listed in these requirements.txt files will be installed automatically by deployment script. Users only need to understand that they have no permissions to install components on the server, instead they need to install everything inside the application folder.</p>
<h3>Is it safe?</h3>
<p>Frequent question from hosting providers – is it safe to allow users to install their custom components? The short answer is: there’s not more threat than allowing users to run their custom (PHP/ASP) scripts. Helicon Zoo executes everything in the context of IIS Application pool, there are no privileged processes or something that users can hack to gain more permissions than they already have. If you restrict permissions for IIS users on your hosting, then running custom modules is the same as running custom scripts on sites. Modules are installed inside user’s web site folder and executed with App pool permissions, no other user environment or global server settings can be affected.</p>
<h2>Application deployment</h2>
<p>One of the highly important features of Helicon Zoo is Application deployment. Complex applications usually require executing some operations before they could be launched on a server. These operations may include check for installed modules and their versions, download and installation of missing requirements, executing database scripts for data migrations, initialization of application files configurations and data structures. All these operations have to be executed outside of the main application context and before first request to the application will be handled.</p>
<p>Helicon Zoo provides means to execute deployment tasks on a remote server without having RDP or command line access and in restricted user environment. For example if you install one of the web applications available from Zoo repository, like Redmine or DjangoBB, you will see the “Application deployment in progress” message on the first request to the web site:</p>
<p><a href="http://www.helicontech.com/articles/wp-content/uploads/2012/11/image18.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/11/image_thumb1.png" width="756" height="616"></a></p>
<p>This application deployment process actually installs the application. You can see as various modules (gems) are installed, as database is created and configured, etc. And all these steps are taken in a local user’s environment with restricted user’s permissions. These application deployment scripts can configure only things inside web application folder or other resources available to user, but they are safe because they cannot change global components or write into shared or system folders.</p>
<p>Web application templates also include deploy script examples which can be used in the client’s applications. To learn more about application deployment with Helicon Zoo please read <a href="http://www.helicontech.com/zoo/docs/deployment.htm" target="_blank">this documentation chapter</a>.</p>
<h2>Advantages of Helicon Zoo over existing solutions</h2>
<p>Some of the web engines listed in this article can be executed on Windows and IIS without Helicon Zoo services. PHP is traditionally installed on IIS using Microsoft FCGI module, Node.js can run as a separate server or can be configured using iisnode, ColdFusion server supports Windows platform and can proxy sites into IIS using Jakarta connector. We don’t count other old solutions, like running apps as ISAPI modules (PyISAPIe) or executing scripts with CGI protocol as these solutions can’t be treated seriously because of their very poor performance. Here is a list of reasons why we think Helicon Zoo solution is better for providing shared hosting services:</p>
<ul>
<li>Unified environment. Helicon Zoo is a single tool to run all these technologies and it provides single administration point.
<li>Ability to run multiple technologies and versions on the same server and even same web site. For example you may have PHP 5.2, 5.3 and 5.4 installed and used on the same server at the same time.
<li>Better isolation. Every application is executed in the restricted environment with credentials of application pool user. There are no privileged processes (like with traditional ColdFusion). No data, processes or settings are shared between different hosting users.
<li>Custom modules. Users can have their custom modules installed into the application directory. No pain for administrators to maintain modules on the server. Additionally PHP users may have their custom php.ini files to configure PHP engine for their needs.
<li>Automatic process management. Backend processes are created and recycled automatically to satisfy demand of the application and free resources for other users when possible.
<li>Slow client optimization. With growth of the number of slow mobile clients this problem is becoming more significant. Synchronous web engines (like PHP) are very vulnerable to unbuffered slow connections and this vulnerability is often used as a DOS attack. Helicon Zoo buffers client communications protecting backends from slow connection problems.
<li>Application deployment. Ability to execute deployment tasks without having command line or RDP access to the server. </li>
</ul>
<h2>Other things to consider</h2>
<p>Many free and open source web applications where designed with Apache environment in mind as it is currently the most popular web server, especially when it comes to open source. While Helicon Zoo provides environment for running numerous applications on IIS, you can make application fall into thinking that it is executed on Apache by emulating Apache environment inside IIS. <a href="http://www.helicontech.com/ape/">Helicon Ape</a> product does exactly this thing by bringing support for .htaccess and .htpasswd files and emulating most Apache modules inside IIS environment.</p>
<p>These modules are very useful, not only for URL rewriting, proxying or permission control. There are usage scenarios that can improve user experience significantly. Consider, for example, following articles illustrating some basic applications of Helicon Ape product:</p>
<ul>
<li><a href="http://www.helicontech.com/articles/search-engine-friendly-sef-urls-for-phpbb/" target="_blank">Search Engine Friendly (SEF) URLs for phpBB</a> <b>– </b>doing search friendly URLs for phpBB with only several rules while phpBB does not support SEF URLs at all.
<li><a href="http://www.helicontech.com/articles/make-your-websites-work-faster/" target="_blank">Make your websites work faster</a> – with caching and performance improvements.
<li><a href="http://www.helicontech.com/articles/web-interface-for-mod_proxy-load-balancer/" target="_blank">IIS reverse proxy and load balancer with web admin panel</a>.
<li><a href="http://www.helicontech.com/articles/counting-downloads-from-your-site/" target="_blank">Counting downloads from your site</a> – how to make comprehensive counters for specific resources.
<li><a href="http://www.helicontech.com/articles/site-authentication-not-using-windows-users/" target="_blank">Enabling site authentication not using Windows users</a>.
<li><a href="http://www.helicontech.com/articles/prevent-dos-attacks-with-helicon-ape-mod_evasive-module/" target="_blank">Prevent DoS attacks with Helicon Ape mod_evasive module</a>.
<li><a href="http://www.helicontech.com/articles/protecting-image-gallery-with-helicon-ape-mod_hotlink/" target="_blank">Protecting image gallery with Helicon Ape mod_hotlink</a>. </li>
</ul>
<h2>Conclusion</h2>
<p>Integration of Helicon Zoo and WebsitePanel is constantly improving. Our future plans are to integrate web application engines management into WebsitePanel interfaces. So the administrators will be able to choose which web engines users are allowed to run and manage restrictions in hosting plans. While it is possible to do this now by manually editing applicationHost.config files, web interface can significantly improve administrator performance. Users will also be able to turn web engines on or off for particular locations which can also add flexibility to the solution.</p>
<p>We will upgrade this article as new things come out and new questions get answered. Please stay tuned. You can read more articles about Helicon Zoo <a href="http://www.helicontech.com/articles/category/helicon-zoo/">here</a>.</p>
<p>While other companies invest hundreds of thousand dollars into development of their own cloud management solutions, you can already benefit from using free and powerful solution for running web applications on your facilities.</p>
<p>Please send your feedback to our <a href="http://support.helicontech.com/" target="_blank">support service</a> or <a href="http://www.helicontech.com/community/" target="_blank">community forum</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.helicontech.com/articles/multi-technology-hosting-with-helicon-zoo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running Python WSGI applications on Microsoft IIS</title>
		<link>http://www.helicontech.com/articles/running-wsgi-on-iis/</link>
		<comments>http://www.helicontech.com/articles/running-wsgi-on-iis/#comments</comments>
		<pubDate>Tue, 02 Oct 2012 14:16:51 +0000</pubDate>
		<dc:creator>ruslan</dc:creator>
				<category><![CDATA[Helicon Zoo]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[wsgi]]></category>

		<guid isPermaLink="false">http://www.helicontech.com/articles/?p=1060</guid>
		<description><![CDATA[WSGI – is a web-server to web-application interaction protocol used by many applications written on Python. It is in fact a standard for all Python web-applications. Most popular web frameworks, including Django, CherryPy, Tornado, Flask, Google App Engine support WSGI. &#8230; <a href="http://www.helicontech.com/articles/running-wsgi-on-iis/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>WSGI – is a web-server to web-application interaction protocol used by many applications written on Python. It is in fact a standard for all Python web-applications. Most popular web frameworks, including Django, CherryPy, Tornado, Flask, Google App Engine support WSGI. The initial version protocol specification can be referenced here &#8211; <a href="http://www.python.org/dev/peps/pep-0333/">PEP 333</a>. With release of Python 3 there is now updated protocol specification <a href="http://www.python.org/dev/peps/pep-3333/">PEP 3333</a>.</p>
<p>To host WSGI-applications with Microsoft IIS 7+ web server there is a unique and free solution &#8211; <a href="http://www.helicontech.com/zoo/">Helicon Zoo</a>. Helicon Zoo in general is an integration platform to run multiple technology stacks in Microsoft IIS web servers.</p>
<p><span id="more-1060"></span><br />
<h3>Installing Helicon Zoo &amp; template WSGI application</h3>
<p>To ease process of installing various web server products and technologies we are going to&nbsp; Microsoft Web Platform Installer. At first let’s <a href="http://www.microsoft.com/web/downloads/platform.aspx">download</a> and install Web Platform Installer from it’s official page. Then launch it:</p>
<p><img class="alignnone size-full wp-image-1062" title="Web Platform Installer 4.0" alt="Web Platform Installer 4.0" src="http://www.helicontech.com/articles/wp-content/uploads/2012/07/01-webpi.png" width="600" height="342"></p>
<p>click Options and in «Custom Feeds» box enter <a href="http://www.helicontech.com/zoo/feed/">http://www.helicontech.com/zoo/feed/</a> , click «Add feed» and then «Ok»:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="02-webpi-options" border="0" alt="02-webpi-options" src="http://www.helicontech.com/articles/wp-content/uploads/2012/07/02-webpi-options_thumb1.png" width="600" height="411"></p>
<p>Then go to Zoo -&gt; Packages and install <strong>Python Hosting Package</strong>:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="03-python-package" border="0" alt="03-python-package" src="http://www.helicontech.com/articles/wp-content/uploads/2012/07/03-python-package_thumb.png" width="600" height="394"></p>
<p>The installation process may take time and will install all required products and engines to host various Python web applications on your server:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="04-python-package-finish" border="0" alt="04-python-package-finish" src="http://www.helicontech.com/articles/wp-content/uploads/2012/07/04-python-package-finish_thumb.png" width="600" height="411"></p>
<p>After installation is completed your server will be ready to host Python applications simply as any normal IIS web sites. This is really that easy. </p>
<p>Now we are going to create an application to host. There is a collection of project templates in Helicon Zoo feed which you can use as a starting point. Go to Zoo –&gt; Templates and install <em>Python WSGI project</em>.</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="05-select-wsgi-project" border="0" alt="05-select-wsgi-project" src="http://www.helicontech.com/articles/wp-content/uploads/2012/07/05-select-wsgi-project_thumb.png" width="600" height="397"></p>
<p>As you can see, when using WebPI to install project template additional dependencies can be also installed/upgraded. So if you where planning to create one WSGI project you can start right from installing<em> Python WSGI project</em> template instead of installing<em> Python Hosting Package</em> and all required dependencies for this single project will be installed anyway.</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="06-zoo-dependencies" border="0" alt="06-zoo-dependencies" src="http://www.helicontech.com/articles/wp-content/uploads/2012/07/06-zoo-dependencies_thumb.png" width="604" height="415"></p>
<p>After download and install is completed you will be asked to configure WSGI-application. In our case we simply choose a name by which it will be available under Default Web Site:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="07-app-configure" border="0" alt="07-app-configure" src="http://www.helicontech.com/articles/wp-content/uploads/2012/07/07-app-configure_thumb.png" width="600" height="411"></p>
<p>After all the browser will navigate automatically to the start page for application. This is simple stub page with service information.</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="08-wsgi-reponse" border="0" alt="08-wsgi-reponse" src="http://www.helicontech.com/articles/wp-content/uploads/2012/07/08-wsgi-reponse_thumb.png" width="600" height="511"></p>
<h3>How it works?</h3>
<p>Helicon Zoo Module is a native IIS 7+ module which acts as a bridge between web server and application on Python, Ruby, Perl, Node.js and other languages. This module uses FastCGI or HTTP protocol to transfer requests from web server to backend application and get responses to the client. This is asynchronous process that utilizes I/O Completion Port technology to provide highest performance and maximum capacity. Additionally Helicon Zoo Module manages backend applications, starts and stops them automatically based on a current service load and overall server resources. It sets appropriate environment for backend applications to run and monitors their health to provide instant and reliable service for all clients.</p>
<p>Configuration directives in web.config file of the IIS web site can be used to change some Helicon Zoo Module settings and configure appropriate environment for the application. Here is web.config example:</p>
<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;configuration&gt;
  &lt;system.webServer&gt;
    &lt;heliconZoo&gt;
      &lt;application name="WSGI.project" &gt;
        &lt;environmentVariables&gt;
          &lt;add name="PYTHONPATH" value="%APPL_PHYSICAL_PATH%;%APPL_PHYSICAL_PATH%\python_modules\Lib\site-packages;%PYTHONPATH%" /&gt; 
          &lt;add name="DEPLOY_FILE" value="deploy.py" /&gt;
          &lt;add name="ERROR_LOG_DIR"  value="log" /&gt;
          &lt;add name="WSGI_APP" value="wsgi.application" /&gt;
        &lt;/environmentVariables&gt;
      &lt;/application&gt;
    &lt;/heliconZoo&gt;
    &lt;handlers&gt;
      &lt;add name="WSGI.project#x86" scriptProcessor="python.2.7.wsgi"
           path="*" verb="*" modules="HeliconZoo_x86" preCondition="bitness32" resourceType="Unspecified" requireAccess="Script" /&gt;
      &lt;add name="WSGI.project#x64" scriptProcessor="python.2.7.wsgi"
           path="*" verb="*" modules="HeliconZoo_x64" preCondition="bitness64" resourceType="Unspecified" requireAccess="Script" /&gt;
    &lt;/handlers&gt;
  &lt;/system.webServer&gt;
&lt;/configuration&gt;
</code></pre>
<p>&nbsp;</p>
<p>Here you can see two handlers declaration for 32 or 64 bit IIS processes that will call appropriate version of Helicon Zoo Module. Each handlers sets script processor to “python.2.7.wsgi” which instructs Helicon Zoo to use Python WSGI engine to run this application. Names of the handlers minus #suffix are used to identify additional settings for the application in the &lt;heliconZoo&gt; section. There you can define various environment variables that will be set in backend environment and are used to pass additional parameters to Helicon Zoo Module and application itself. Here are some of possible variables:</p>
<ul>
<li>PYTHONPATH – is a path where Python will look for it’s modules and additional files. Here we add current web site physical folder and <em>python_modules\Lib\site-packages</em> folder with modules.
<li>DEPLOY_FILE – name of the deploy script file that will be called on every application start. Usually there are instructions in this file to install required modules, do database migrations and other deployment things.
<li>DEPLOY_LOG – a path to the log file where to save deploy script output. If this variable is not set deploy script output will be sent to the client’s browser.
<li>ERROR_LOG_DIR – a folder where to store various application and error logs.&nbsp;
<li>WATCH_FILE_CHANGES_MASK – set this variable to the file mask, like “*.py” and backend application will be restarted when any *.py file inside web site is changed. Useful in development environment.&nbsp;
<li>WSGI_APP – a <em>python path</em> to the WSGI application to run. In our case this would be a <em>wsgi.py</em> file in the website root with an <em>application</em> function in it.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.helicontech.com/articles/running-wsgi-on-iis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hosting Git, SVN and Hg (Mercurial) repositories on Windows with IIS</title>
		<link>http://www.helicontech.com/articles/hosting-git-svn-and-hg-mercurial-repositories-on-windows-with-iis/</link>
		<comments>http://www.helicontech.com/articles/hosting-git-svn-and-hg-mercurial-repositories-on-windows-with-iis/#comments</comments>
		<pubDate>Thu, 30 Aug 2012 12:51:16 +0000</pubDate>
		<dc:creator>Slov</dc:creator>
				<category><![CDATA[Helicon Zoo]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.helicontech.com/articles/?p=1114</guid>
		<description><![CDATA[Git, SVN and Hg (Mercurial) currently are the most popular version control systems. In this guide we are going to show how to host repositories for these systems on Windows with Microsoft IIS 7+. We will be using a magnificent &#8230; <a href="http://www.helicontech.com/articles/hosting-git-svn-and-hg-mercurial-repositories-on-windows-with-iis/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Git, SVN and Hg (Mercurial) currently are the most popular version control systems. In this guide we are going to show how to host repositories for these systems on Windows with Microsoft IIS 7+.</p>
<p>We will be using a magnificent free and open source tool – <a href="https://bitbucket.org/sdorra/scm-manager/wiki/Home" target="_blank">SCM-Manager</a>. This is simple and nifty looking manager tool for Git, SVN and HG written in Java. Probably the best thing about SCM-Manager is that it includes all dependencies inside and does not require you to download and compile any third party components. You don’t have to install Git or any other kind of servers to host repositories. It does require Python and Hg package to host Mercurial repositories, but these packages can be installed automatically into the SCM-Manager home directory directly form web interface. So if your host support hosting of Java applications you don’t need access to the server console to install some components or run additional commands.</p>
<p><span id="more-1114"></span><br />
<h2>Hosting Java applications with Helicon Zoo</h2>
<p>First of all you need to configure your IIS server to host Java applications. The easiest way to do this is to use Web Platform Installer.</p>
<ol>
<li>Download and install Microsoft Web Platform Installer.
<li>Run Web Platform Installer and click “Options”.
<li>Add Helicon Zoo feed into “Display additional scenarios” box: <a href="http://www.helicontech.com/zoo/feed">http://www.helicontech.com/zoo/feed</a>. New “Zoo” tab will appear.
<li>Go to the Zoo –&gt; Templates and select Java (Jetty) project.
<li>Accept licenses to start installation process. </li>
</ol>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/09/image.png" width="628" height="436"></p>
<p>This will install all dependencies required to run Java application on IIS, including JVM, Helicon Zoo Module, etc. After installation of all dependencies is completed you will be presented with the standard Web Deploy dialog to create new web application:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/09/image1.png" width="564" height="407"></p>
<p>Select “New web site” in the web site field and configure other options as usual.</p>
<p>Another good way to install all required dependencies is to install Zoo –&gt; Packages –&gt; Java Hosting Package. This package is usually installed on servers to allow them to host Java applications. The idea is that Java application can be simply moved from one IIS server to another just by copying web site folder, if both servers has Java Hosting Package installed.</p>
<h2>Installing SCM-Manager</h2>
<p>First you need to download SCM-Manager as a single WAR file here: <a title="https://bitbucket.org/sdorra/scm-manager/wiki/download" href="https://bitbucket.org/sdorra/scm-manager/wiki/download">https://bitbucket.org/sdorra/scm-manager/wiki/download</a> Save this WAR file to the IIS web site folder and edit web.config file as follows:</p>
<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;configuration&gt;
  &lt;system.webServer&gt;
    &lt;heliconZoo&gt;
      &lt;application name="jetty.project" &gt;
        &lt;environmentVariables&gt;
          &lt;add name="CONTEXT_PATH" value="%APPL_VIRTUAL_PATH%" /&gt;
          &lt;add name="WAR_EXTRACT_PATH" value="%APPL_PHYSICAL_PATH%" /&gt;
          &lt;add name="WAR_FILE" value="scm-webapp-1.20.war" /&gt;
          &lt;add name="SCM_HOME" value="%APPL_PHYSICAL_PATH%/.scm" /&gt;
        &lt;/environmentVariables&gt;
      &lt;/application&gt;
    &lt;/heliconZoo&gt;
    &lt;handlers&gt;
      &lt;add name="jetty.project#x86" scriptProcessor="java.jetty"  path="*" verb="*" modules="HeliconZoo_x86"
           preCondition="bitness32" resourceType="Unspecified" requireAccess="Script" /&gt;
      &lt;add name="jetty.project#x64" scriptProcessor="java.jetty"  path="*" verb="*" modules="HeliconZoo_x64"
           preCondition="bitness64" resourceType="Unspecified" requireAccess="Script" /&gt;
    &lt;/handlers&gt;
  &lt;/system.webServer&gt;
&lt;/configuration&gt;</code></pre>
<p>Here the WAR_FILE environment variable contains the downloaded WAR file name. The SCM_HOME points to the /.scm folder under web site home, this will instruct SCM-Manager to store all files and repositories inside a web site folder. Note that write permissions to the web site folder for the user running Web Application Pool are required.</p>
<p>Now navigate to the web site created. The first start usually takes some time as SCM-Manager will create files and folder structures, configurations and Java Virtual Machine also needs time to start-up. After application initialization you should see a login screen. Enter the following default credentials to log in:</p>
<pre><code>login: scmadmin
password: scmadmin</code></pre>
<p>Don’t forget to change default password later. Now welcome to the dashboard:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/09/image2.png" width="946" height="406"></p>
<h2>Working with SCM-Manager</h2>
<p>After installation you can immediately start creating empty Git and SVN repositories. To start using Hg open Repository Types page under config section and start Configuration Wizard for Mercurial. Select “download and install” and required packages will be installed into /.scm folder under web site automatically.</p>
<p>More often users ask how to import your existing repositories into SCM-Manager. All repositories are stored in the folder<em> /.scm/repositories</em> inside your web site. If you have FTP access to these folders you can simply copy entire directory structure of your repositories to the corresponding folders under <em>/.scm/repositories</em>. For SVN this is the only viable option to import repository as it uses central repository storage. Then click on Import Repositories link on the dashboard and your repositories will be imported into SCM-Manager.</p>
<p>Since Git and Hg uses decentralized repository storage, you can simply create empty repositories with web interface and then push your local repositories to the new location.</p>
<p>Now you can create users and groups, manage permissions, view commits and sources. And the most important feature of SCM-Manager is that it provides central point to administer all of your repositories from different source controls on a remote servers and over internet. And it is so easy to start work with!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.helicontech.com/articles/hosting-git-svn-and-hg-mercurial-repositories-on-windows-with-iis/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Running Railo on Windows with IIS in production</title>
		<link>http://www.helicontech.com/articles/running-railo-on-iis-in-production/</link>
		<comments>http://www.helicontech.com/articles/running-railo-on-iis-in-production/#comments</comments>
		<pubDate>Tue, 29 May 2012 14:38:27 +0000</pubDate>
		<dc:creator>Slov</dc:creator>
				<category><![CDATA[Helicon Zoo]]></category>
		<category><![CDATA[CFML]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.helicontech.com/articles/?p=1040</guid>
		<description><![CDATA[Railo is a free, open source CFML engine, that&#160; is released under the GNU license. It is known to be highly performing and supported CFML engine available.&#160; Most existing ColdFusion applications will work on it. This article provides simple instructions &#8230; <a href="http://www.helicontech.com/articles/running-railo-on-iis-in-production/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Railo is a free, open source CFML engine, that&nbsp; is released under the GNU license. It is known to be highly performing and supported CFML engine available.&nbsp; Most existing ColdFusion applications will work on it. This article provides simple instructions how to install Railo on IIS web server in production. This solution can be used to run CFML applications on your Windows servers or provide CFML hosting to others.</p>
<p><span id="more-1040"></span><br />
<h2>Environment installation</h2>
<p>First we need to configure the Windows server to run CFML applications. Please follow these instructions:</p>
<ol>
<li>Download and install Microsoft <a title="Web Platform Installer" href="http://www.microsoft.com/web/downloads/platform.aspx" target="_blank">Web Platform Installer</a>.
<li>Run Web Platform Installer and click “Options”.
<li>Add Helicon Zoo feed into &#8220;Display additional scenarios&#8221; box: <a href="http://www.helicontech.com/zoo/feed">http://www.helicontech.com/zoo/feed</a>. New “Zoo” tab will appear.
<li>Go to the <em>Zoo –&gt;</em> <em>Engines </em>and install <em>Railo 3 </em>or <em>Railo 4</em> (or both).</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/11/image.png" width="728" height="569"></p>
<p>Alternatively you can install <em>Zoo –&gt; Packages –&gt; CFML Hosting Package</em>. This will install both Railo 3 and 4 and all other requirements to host CFML applications on IIS.</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/11/image1.png" width="728" height="569">
<li>Accept licenses to start installation process.</li>
</ol>
<p>All required packages and dependencies will be downloaded and installed. Whole installation process may take time. After installation is completed your server is ready to run CFML applications as usual IIS web sites.</p>
<h2>Usage</h2>
<p>To create new Railo web site you can use Web Platform Installer again. Go to <em>Zoo –&gt; Templates</em> and install Railo 3 or Railo 4 project.</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.helicontech.com/articles/wp-content/uploads/2012/11/image2.png" width="728" height="569"></p>
<p>You can set either IIS or IIS Express as target environment for this project and if you have not installed CFML Hosting Package, then all required dependencies will be installed automatically. After installation is completed Railo web site will start working immediately.</p>
<p><a href="http://www.helicontech.com/articles/wp-content/uploads/2012/11/railo-start-page.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="railo-start-page" border="0" alt="railo-start-page" src="http://www.helicontech.com/articles/wp-content/uploads/2012/11/railo-start-page_thumb.png" width="566" height="458"></a></p>
<p>If you want to create Railo web site manually, please add an empty IIS web site for your application:</p>
<p>&nbsp;</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="new-site-iis" border="0" alt="new-site-iis" src="http://www.helicontech.com/articles/wp-content/uploads/2012/05/new-site-iis.png" width="591" height="443"></p>
<p>Create web.config file in the web site folder and put the following content into it:</p>
<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;configuration&gt;
  &lt;system.webServer&gt;
    &lt;heliconZoo&gt;
      &lt;application name="railo.project"&gt;
        &lt;environmentVariables&gt;
        &lt;/environmentVariables&gt;
      &lt;/application&gt;
     &lt;/heliconZoo&gt;
    &lt;handlers&gt;
      &lt;add name="railo.project#x86.cfm"   scriptProcessor="railo" 
        path="*.cfm"   verb="*" modules="HeliconZoo_x86" 
        preCondition="bitness32" resourceType="Unspecified" 
        requireAccess="Script" /&gt;
      &lt;add name="railo.project#x86.cfc"   scriptProcessor="railo" 
        path="*.cfc"   verb="*" modules="HeliconZoo_x86" 
        preCondition="bitness32" resourceType="Unspecified" 
        requireAccess="Script" /&gt;
      &lt;add name="railo.project#x86.cfml"  scriptProcessor="railo" 
        path="*.cfml"  verb="*" modules="HeliconZoo_x86" 
        preCondition="bitness32" resourceType="Unspecified" 
        requireAccess="Script" /&gt;
      &lt;add name="railo.project#x86.cfr"   scriptProcessor="railo" 
        path="*.cfr"   verb="*" modules="HeliconZoo_x86" 
        preCondition="bitness32" resourceType="Unspecified" 
        requireAccess="Script" /&gt;
      &lt;add name="railo.project#x86.cfswf" scriptProcessor="railo" 
        path="*.cfswf" verb="*" modules="HeliconZoo_x86" 
        preCondition="bitness32" resourceType="Unspecified" 
        requireAccess="Script" /&gt;
      
      &lt;add name="railo.project#x64.cfm"   scriptProcessor="railo" 
        path="*.cfm"   verb="*" modules="HeliconZoo_x64" 
        preCondition="bitness64" resourceType="Unspecified" 
        requireAccess="Script" /&gt;
      &lt;add name="railo.project#x64.cfc"   scriptProcessor="railo" 
        path="*.cfc"   verb="*" modules="HeliconZoo_x64" 
        preCondition="bitness64" resourceType="Unspecified" 
        requireAccess="Script" /&gt;
      &lt;add name="railo.project#x64.cfml"  scriptProcessor="railo" 
        path="*.cfml"  verb="*" modules="HeliconZoo_x64" 
        preCondition="bitness64" resourceType="Unspecified" 
        requireAccess="Script" /&gt;
      &lt;add name="railo.project#x64.cfr"   scriptProcessor="railo" 
        path="*.cfr"   verb="*" modules="HeliconZoo_x64" 
        preCondition="bitness64" resourceType="Unspecified" 
        requireAccess="Script" /&gt;
      &lt;add name="railo.project#x64.cfswf" scriptProcessor="railo" 
        path="*.cfswf" verb="*" modules="HeliconZoo_x64" 
        preCondition="bitness64" resourceType="Unspecified" 
        requireAccess="Script" /&gt;
    &lt;/handlers&gt;
    &lt;defaultDocument&gt;
      &lt;files&gt;
        &lt;remove value="index.cfm" /&gt;
        &lt;add value="index.cfm" /&gt;
      &lt;/files&gt;
    &lt;/defaultDocument&gt;
  &lt;/system.webServer&gt;
&lt;/configuration&gt;</code></pre>
<p>This will enable Railo 3 to process requests for the registered file extensions in this IIS web application folder. To use Railo 4 set <em>scriptProcessor=&#8221;railo.4&#8243;</em> instead. As there is no currently application files in this folder navigating to the root of the web site will trigger 403 error. So please navigate to the <strong>http://localhost/railo-context/admin.cfm</strong> to open Railo administration interface. For the first start you will be asked to create server and web administrator passwords.</p>
<p>After that you may just put your CFML application into this IIS web site folder.</p>
<h2>Manual installation</h2>
<p>Sometimes you may need to install specific version of Railo, or you may only want to install Railo for a specific IIS web site instead of installing it on a server globally. There could be a case when your hosting service does nto provide Railo support, but instead has support for generic Java applications. In this situation please follow this instruction:</p>
<p>If you are installing on your own server first you need to follow first three steps from “Environment install” chapter to get Helicon Zoo feed in Web Platform Installer. Now go to <em>Zoo</em> –&gt; <em>Packages</em> and install <em>Java Hosting Package</em>. This will install support for generic Java applications for IIS.</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="zoo-packages-java" border="0" alt="zoo-packages-java" src="http://www.helicontech.com/articles/wp-content/uploads/2012/05/zoo-packages-java.png" width="574" height="402"></p>
<p>Then go to the <a href="http://www.getrailo.org/index.cfm/download/" target="_blank">Railo Download page</a> and get the WAR archive distribution version. Put this WAR file into IIS web site root folder and create a <strong>web.config</strong> file there with the following content:</p>
<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;configuration&gt;
  &lt;system.webServer&gt;
    &lt;heliconZoo&gt;
      &lt;application name="jetty.project" &gt;
        &lt;environmentVariables&gt;
          &lt;!-- Uncomment line below if you want to set contexts directory --&gt;
          &lt;!--  &lt;add name="CONTEXTS_DIR" value="%APPL_VIRTUAL_PATH%" /&gt; --&gt;

          &lt;!-- Optional variables: --&gt;
          &lt;!-- &lt;add name="CONTEXT_PATH" value="%APPL_VIRTUAL_PATH%" /&gt; --&gt;
          &lt;!-- &lt;add name="WAR_EXTRACT_PATH" value="%APPL_PHYSICAL_PATH%" /&gt; --&gt;

          &lt;!-- A WAR file or start directory to run --&gt;
          &lt;add name="WAR_FILE" value="railo-3.3.1.000.zip" /&gt;
        &lt;/environmentVariables&gt;
        &lt;/application&gt;
    &lt;/heliconZoo&gt;

        &lt;handlers&gt;
          &lt;add name="jetty.project#x86" scriptProcessor="java.jetty" 
            path="*" verb="*" modules="HeliconZoo_x86" 
            preCondition="bitness32" resourceType="Unspecified" 
            requireAccess="Script" /&gt;
          &lt;add name="jetty.project#x64" scriptProcessor="java.jetty" 
            path="*" verb="*" modules="HeliconZoo_x64" 
            preCondition="bitness64" resourceType="Unspecified" 
            requireAccess="Script" /&gt;
        &lt;/handlers&gt;
  &lt;/system.webServer&gt;
&lt;/configuration&gt;</code></pre>
<p>Note the name of the file here is <em>railo-3.3.1.000.zip</em>. You may need to change it if your version of Railo is different. Also as you can see handlers are mapped to the asterisk – &#8220;*&#8221;, which mean every request to this web site will be processed by Java, including static files. Sometimes this is a good idea, especially if you are using some kind of URL rewriting or request filtering tools in your Java or CFML application. We have chosen to use asterisk map as it is more generic and will provide better application compatibility. But if you feel confident in server configuration, mapping handlers to specific file extensions (as it is done in web.config from automatic installation chapter) will give you some performance points, as static files will be processed directly by IIS.</p>
<p>Now you can navigate your browser to the web site root, which will bring you Railo welcome page. Then simply put your CFML application in this IIS web site folder to start working with Railo!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.helicontech.com/articles/running-railo-on-iis-in-production/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Perl Dancer on Windows with IIS</title>
		<link>http://www.helicontech.com/articles/installing-perl-dancer-on-windows-with-iis/</link>
		<comments>http://www.helicontech.com/articles/installing-perl-dancer-on-windows-with-iis/#comments</comments>
		<pubDate>Tue, 15 May 2012 14:21:56 +0000</pubDate>
		<dc:creator>Slov</dc:creator>
				<category><![CDATA[Helicon Zoo]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.helicontech.com/articles/?p=1013</guid>
		<description><![CDATA[Dancer is a popular open source web application framework written in Perl and inspired by Ruby&#8217;s Sinatra. Here is a simple step-by-step guide to install Perl Dancer on IIS for production use. Environment installation First we need to configure our &#8230; <a href="http://www.helicontech.com/articles/installing-perl-dancer-on-windows-with-iis/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dancer is a popular open source web application framework written in Perl and inspired by Ruby&#8217;s Sinatra. Here is a simple step-by-step guide to install Perl Dancer on IIS for production use.</p>
<p><span id="more-1013"></span><br />
<h2>Environment installation</h2>
<p>First we need to configure our Windows server to run Java Servlet applications. This is easily doable using following instructions.</p>
<ol>
<li>Download and install <a title="Web Platform Installer" href="http://www.microsoft.com/web/downloads/platform.aspx" target="_blank">Web Platform Installer</a>.
<li>Run Web Platform Installer and click “Options”.
<li>Add Helicon Zoo feed into &#8220;Display additional scenarios&#8221; box:&nbsp; <a href="http://www.helicontech.com/zoo/feed">http://www.helicontech.com/zoo/feed</a>. New “Zoo” tab will appear.
<li>Go to the <em>Zoo -&gt;</em> <em>Packages</em> and install <em><strong>Perl Hosting Package</strong></em>.
<li>Accept licenses to start installation process. </li>
</ol>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML4c01b6" border="0" alt="SNAGHTML4c01b6" src="http://www.helicontech.com/articles/wp-content/uploads/2012/05/SNAGHTML4c01b6.png" width="795" height="555"></p>
<p>After installation is completed your server is ready to run Perl applications using either FastCGI or Plack/PSGI protocol. Perl Hosting Package includes Strawberry Perl and some other modules, like CPAN Minus, etc.</p>
<h2>Creating Perl Dancer web site</h2>
<p>For the beginning create a new web site or application in IIS Manager. Either IIS or IIS Express are supported. Let’s name this site “dancer” and folder for it will be “C:\intepub\dancer\”. Now navigate to this folder using command line and run following commands in it:</p>
<pre><code>cpanm -n -L .\perl Dancer</code></pre>
<p>Installation process may take time and after it we will have Dancer compiled and installed with all dependencies in the “C:\intepub\dancer\perl” folder. Local installation is preferable as when you&#8217;ll need to deploy your application to the production server your site will have no dependencies, except for Perl Hosting Package from Helicon Zoo.</p>
<p>Now let’s create new Dancer application and call it “mysite”. This is done with the following two commands in the same location:</p>
<pre><code>set PERL5LIB=.\perl\lib\perl5\
perl\bin\dancer.bat -a mysite
</code></pre>
<p>&nbsp;</p>
<p>After site is created we need to provide write permissions to the&nbsp; “C:\intepub\dancer\mysite\logs\” folder. Dancer requires this permissions to run. Since we already have command line open in the right location, let’s use Windows “icacls” tool for it. Run the following two commands:</p>
<pre><code>md mysite\logs\
icacls mysite\logs\ /t /grant:r "IIS_IUSRS:M"</code></pre>
<p>&nbsp;</p>
<p>As the last step we need to create <strong>web.config</strong> file in the root of the web site &#8211; “C:\intepub\dancer\web.config”. Put this code into the web.config file to activate Helicon Zoo for this location:</p>
<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;configuration&gt;
  &lt;system.webServer&gt;
    &lt;heliconZoo&gt;

      &lt;application name="dancer"&gt;
        &lt;environmentVariables&gt;
          &lt;add name="APP_WORKER" value="%APPL_VIRTUAL_PATH%mysite\bin\app.pl" /&gt;
          &lt;add name="PERL5LIB" value="%APPL_PHYSICAL_PATH%\perl\lib\perl5" /&gt;

        &lt;/environmentVariables&gt;
      &lt;/application&gt;

    &lt;/heliconZoo&gt;

    &lt;handlers&gt;
      &lt;add name="dancer#x86" scriptProcessor="perl.5.12.psgi" path="*" verb="*" modules="HeliconZoo_x86"
           preCondition="bitness32" resourceType="Unspecified" requireAccess="Script" /&gt;
      &lt;add name="dancer#x64" scriptProcessor="perl.5.12.psgi" path="*" verb="*" modules="HeliconZoo_x64"
           preCondition="bitness64" resourceType="Unspecified" requireAccess="Script" /&gt;
    &lt;/handlers&gt;

  &lt;/system.webServer&gt;
&lt;/configuration&gt;</code></pre>
<p>&nbsp;</p>
<p>A little portion of magic and we have it all set. Just point your browser to the web site created and you should see a Dancer welcome page:</p>
<p><img style="display: inline" title="SNAGHTML69f1a0" alt="SNAGHTML69f1a0" src="http://www.helicontech.com/articles/wp-content/uploads/2012/05/SNAGHTML69f1a0.png" width="560" height="589"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.helicontech.com/articles/installing-perl-dancer-on-windows-with-iis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Deploying Java Servlet applications on Windows with IIS</title>
		<link>http://www.helicontech.com/articles/deploying-java-servlet-applications-on-windows-with-iis/</link>
		<comments>http://www.helicontech.com/articles/deploying-java-servlet-applications-on-windows-with-iis/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 14:41:25 +0000</pubDate>
		<dc:creator>Slava</dc:creator>
				<category><![CDATA[Helicon Zoo]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.helicontech.com/articles/?p=926</guid>
		<description><![CDATA[Java platform is extremely successful in building robust and high performance web applications. Platform independence is one of the strength of Java engine and Helicon Zoo now provides a convenient way to deploy and run Java web applications on Windows &#8230; <a href="http://www.helicontech.com/articles/deploying-java-servlet-applications-on-windows-with-iis/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Java platform is extremely successful in building robust and high performance web applications. Platform independence is one of the strength of Java engine and Helicon Zoo now provides a convenient way to deploy and run Java web applications on Windows platform with Microsoft IIS. To deploy Java Servlet application on IIS 7 you will only need to follow this simple instruction:</p>
<p><span id="more-926"></span><br />
<h2>Platfrom installation</h2>
<ol>
<li>Download and install <a title="Web Platform Installer" href="http://www.microsoft.com/web/downloads/platform.aspx" target="_blank">Web Platform Installer</a>.
<li>Run Web Platform Installer and click “Options”.
<li>Add Helicon Zoo feed into <em>Display additional scenarios</em> box:&nbsp; <a href="http://www.helicontech.com/zoo/feed" target="_blank">http://www.helicontech.com/zoo/feed</a>. New “Zoo” tab will appear.
<li>Go to the <em>Zoo</em>, <em>Packages</em> and install <em>Java Hosting Package</em>.
<li>Accept licenses to start installation process. </li>
</ol>
<p><img class="alignnone size-full wp-image-983" title="java-hosting-package" alt="" src="http://www.helicontech.com/articles/wp-content/uploads/2012/04/java-hosting-package.png" width="780" height="540"></p>
<p>Alternatively, instead of installing <em>Java Hosting Package</em> you can install <em>Modules –&gt; Helicon Zoo Module</em> and <em>Engines –&gt; Jetty</em> separately. This is minimal requirement to run Java Servlet applications under Microsoft IIS web server. If you want to run Java Servlets under IIS Express and WebMatrix in your development environment, then you will also need to install <em>Helicon Zoo Module for IIS Express</em> form Engines section.</p>
<p><img class="alignnone size-full wp-image-904" title="webpi-jetty" alt="" src="http://www.helicontech.com/articles/wp-content/uploads/2012/04/webpi-jetty.jpg" width="640" height="465"></p>
<p>This is enough configuration to run most of Java Servlet applications directly form IIS.</p>
<h2>Installing application</h2>
<p>Launch IIS Manager and create new web-site or an application within a web-site. Copy your Java application into the root folder of this IIS application. Java application could be either a single .war file or set of unpacked files with directory structure, including web-inf folder. Then just create the following web.config:</p>
<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;configuration&gt;
  &lt;system.webServer&gt;
    &lt;heliconZoo&gt;
      &lt;application name="jetty.project" &gt;
        &lt;environmentVariables&gt;
          &lt;!-- Uncomment line below if you want to set contexts directory --&gt;
          &lt;!--  &lt;add name="CONTEXTS_DIR" value="%APPL_VIRTUAL_PATH%" /&gt; --&gt;

          &lt;!-- Optional variables: --&gt;
          &lt;!-- &lt;add name="CONTEXT_PATH" value="%APPL_VIRTUAL_PATH%" /&gt; --&gt;
          &lt;!-- &lt;add name="WAR_EXTRACT_PATH" value="%APPL_PHYSICAL_PATH%" /&gt; --&gt;

          &lt;!-- A WAR file or start directory to run --&gt;
          &lt;add name="WAR_FILE" value="my_application.war" /&gt;
        &lt;/environmentVariables&gt;
        &lt;/application&gt;
    &lt;/heliconZoo&gt;

        &lt;handlers&gt;
          &lt;add name="jetty.project#x86" scriptProcessor="java.jetty" 
            path="*" verb="*" modules="HeliconZoo_x86" 
            preCondition="bitness32" resourceType="Unspecified" 
            requireAccess="Script" /&gt;
          &lt;add name="jetty.project#x64" scriptProcessor="java.jetty" 
            path="*" verb="*" modules="HeliconZoo_x64" 
            preCondition="bitness64" resourceType="Unspecified" 
            requireAccess="Script" /&gt;
        &lt;/handlers&gt;
  &lt;/system.webServer&gt;
&lt;/configuration&gt;</code></pre>
<p>Please take a look at &lt;environmentVariables&gt; section.</p>
<ul>
<li>CONTEXTS_DIR — optional path to directory with .xml files which describe Jetty contexts. If this variable isn’t set, Zoo looks for “contexts” folder in the root of application. If no such folder found, Zoo presumes the application has single context and uses variables described below.
<li>CONTEXT_PATH — optional virtual path of the application. Default value is taken from APPL_VIRTUAL_PATH variable.
<li>WAR_FILE — optional path to a .war file or directory with extracted application.
<li>WAR_EXTRACT_PATH — optional .war file extraction path. Is set to application’s root folder by default.</li>
</ul>
<p>Here is an example of context.xml file that you may use instead of setting WAR file name explicitly. This allows to run multiple applications and contexts in a single IIS web site.</p>
<h3>contexts/context.xml</h3>
<pre><code>&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"&gt;

&lt;Configure class="org.eclipse.jetty.webapp.WebAppContext"&gt;

   &lt;Set name="contextPath"&gt;/application&lt;/Set&gt;
   &lt;Set name="war"&gt;my_application.war&lt;/Set&gt;
   &lt;Set name="tempDirectory"&gt;application_dir&lt;/Set&gt;

&lt;/Configure&gt;</code></pre>
<p><font color="#ff0000"><strong>WARNING</strong></font>: Since WAR files need to be extracted before execution you will need to have a folder with write permissions.&nbsp; In default IIS installation all application pools are executed with permissions of IIS_IUSRS group which does not have write permissions to the web application folders. You will need to provide write permissions to the user running Application Pool or IIS_IUSRS group to the folder containing Java application or specify other folder using WAR_EXTRACT_PATH variable with write permissions provided.</p>
<p>Now you can open IIS web site in the browser and see your Java web application running.</p>
<p>That’s it! Installation process is clear and automatic and will only take several minutes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.helicontech.com/articles/deploying-java-servlet-applications-on-windows-with-iis/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Installing Magnolia CMS on Windows with IIS.</title>
		<link>http://www.helicontech.com/articles/installing-magnolia-cms-on-windows-with-iis/</link>
		<comments>http://www.helicontech.com/articles/installing-magnolia-cms-on-windows-with-iis/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 13:49:58 +0000</pubDate>
		<dc:creator>Slava</dc:creator>
				<category><![CDATA[Helicon Zoo]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.helicontech.com/articles/?p=872</guid>
		<description><![CDATA[Magnolia CMS is probably the most popular Java-based content management system. There are free and commercial versions available. We are going to show you an easy way to deploy Magnolia on Microsoft IIS web server using Helicon Zoo with a &#8230; <a href="http://www.helicontech.com/articles/installing-magnolia-cms-on-windows-with-iis/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Magnolia CMS is probably the most popular Java-based content management system. There are free and commercial versions available. We are going to show you an easy way to deploy Magnolia on Microsoft IIS web server using Helicon Zoo with a single .war file.</p>
<p><span id="more-872"></span>
<p><font color="#ff0000" size="2"><strong>This instruction is outdated as Helicon Zoo repository now include Magnolia CMS Community Edition, that you can easily install by choosing Zoo –&gt; Applications –&gt; Magnolia CMS.</strong></font></p>
<h2>Platform installation</h2>
<p>First we need to configure our Windows server to run Java Servlet applications. Follow these steps to accomplish this task.</p>
<ol>
<li>Download and install <a title="Web Platform Installer" href="http://www.microsoft.com/web/downloads/platform.aspx" target="_blank">Web Platform Installer</a>.
<li>Run Web Platform Installer and click “Options”.
<li>Add Helicon Zoo feed into “Display additional scenarios” box:&nbsp; <a href="http://www.helicontech.com/zoo/feed" target="_blank">http://www.helicontech.com/zoo/feed</a>. New “Zoo” tab will appear.
<li>Go to the “Zoo” tab and find “Jetty” among the products list. Click on “Add” against “Jetty”.
<li>Also find “Helicon Zoo Module” or “Helicon Zoo Module for IIS Express” depending on the server you are using. Click “Add” respectively.
<li>Click “Install” to start installation process. </li>
</ol>
<p><img class="alignnone size-full wp-image-904" title="webpi-jetty" alt="" src="http://www.helicontech.com/articles/wp-content/uploads/2012/04/webpi-jetty.jpg" width="640" height="465"></p>
<p>Alternatively, instead of installing Helicon Zoo Module and Jetty separately you may just go to Packages section of Zoo tab and install Java Hosting Package. This will install Helicon Zoo Module for IIS, Jetty and all other requirements to run Java Servlet applications under Microsoft IIS web server. If you want to run Java Servlets under IIS Express and WebMatrix in your development environment, then you need to install Helicon Zoo Module for IIS Express form Engines section.</p>
<p>This is enough configuration to run most of Java Servlet applications directly form IIS.</p>
<h2>Magnolia installation</h2>
<p>There are many ways to install Magnolia. Some of them you may find in <a title="Magnolia documentation" href=" http://documentation.magnolia-cms.com/ " target="_blank">the documentation</a>. We are going to use a free Community edition which can be downloaded here <a title="http://sourceforge.net/projects/magnolia/files/magnolia/" href="http://sourceforge.net/projects/magnolia/files/magnolia/">sourceforge.net/projects/magnolia/files/magnolia/</a><br />Please download “magnolia-bundled-webapp…” package as it already contains required components to run Magnolia CMS. Open folder with latest version of CMS and download the .war file available. After downloading .war file, please launch IIS Manager and create new web-site or application. Copy downloaded .war file into this web-site’s root folder and create the following web.config near it:</p>
<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;configuration&gt;
  &lt;system.webServer&gt;
	&lt;heliconZoo&gt;
	  &lt;application name="magnolia.project" &gt;
	      &lt;environmentVariables&gt;
		  &lt;add name="WAR_FILE" value="magnolia-bundled-webapp-4.5.1.war" /&gt;
		  &lt;add name="WAR_EXTRACT_PATH" value="%APPL_PHYSICAL_PATH%" /&gt;
		&lt;/environmentVariables&gt;
        &lt;/application&gt;
	&lt;/heliconZoo&gt;

    	&lt;handlers&gt;
      	&lt;add name="magnolia.project#x86" scriptProcessor="java.jetty" path="*" verb="*" modules="HeliconZoo_x86"
             preCondition="bitness32" resourceType="Unspecified" requireAccess="Script" /&gt;
      	&lt;add name="magnolia.project#x64" scriptProcessor="java.jetty" path="*" verb="*" modules="HeliconZoo_x64"
             preCondition="bitness64" resourceType="Unspecified" requireAccess="Script" /&gt;
    	&lt;/handlers&gt;
  &lt;/system.webServer&gt;
&lt;/configuration&gt;</code></pre>
<p>Please take a look at &lt;environmentVariables&gt; section. Only &#8220;WAR_FILE&#8221; variable is required and should contain either path to a WAR file or to a folder containing unpacked Java Servlet application.<br />WAR_EXTRACT_PATH variable can be used to configure location where to unpack WAR file content. By default it is IIS application root folder. CONTEXT_PATH variable needed by Java application and contains IIS application virtual path by default.</p>
<p><img class="alignnone size-medium wp-image-905" title="magnolia-app-folder" alt="" src="http://www.helicontech.com/articles/wp-content/uploads/2012/04/magnolia-app-folder.jpg" width="640" height="461"></p>
<p>That’s it. You may now open the web-site in browser to start Magnolia. Please note, first launch is going to be long and will start with installation page:</p>
<p><img class="alignnone size-full wp-image-911" title="before-install" alt="" src="http://www.helicontech.com/articles/wp-content/uploads/2012/04/before-install.jpg" width="640" height="510"></p>
<p>Click “Start install” to begin installation:</p>
<p><img class="alignnone size-full wp-image-912" title="installation-progress" alt="" src="http://www.helicontech.com/articles/wp-content/uploads/2012/04/installation-progress.jpg" width="640" height="377"></p>
<p>When installation is complete, click “Start up Magnolia” and you’ll see login form. Enter default login “superuser” and password “superuser”.</p>
<p><img class="alignnone size-full wp-image-909" title="admin-panel" alt="" src="http://www.helicontech.com/articles/wp-content/uploads/2012/04/admin-panel.jpg" width="640" height="431"></p>
<p>Magnolia comes with demo data and templates:</p>
<p><img class="alignnone size-full wp-image-913" title="cms" alt="" src="http://www.helicontech.com/articles/wp-content/uploads/2012/04/cms.jpg" width="640" height="492"></p>
<h3>Resume</h3>
<p>As you can see we’ve installed Magnolia CMS easily in very few steps. Naturally you may deploy any .war file in the same way.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.helicontech.com/articles/installing-magnolia-cms-on-windows-with-iis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Open Blue Dragon on Windows with IIS.</title>
		<link>http://www.helicontech.com/articles/installing-open-blue-dragon-on-iis/</link>
		<comments>http://www.helicontech.com/articles/installing-open-blue-dragon-on-iis/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 11:27:16 +0000</pubDate>
		<dc:creator>Slava</dc:creator>
				<category><![CDATA[Helicon Zoo]]></category>
		<category><![CDATA[CFML]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.helicontech.com/articles/?p=915</guid>
		<description><![CDATA[OpenBD (Open Blue Dragon) is a powerful open-source CFML engine. Here we are going to show you how to deploy it on IIS with the help of Helicon Zoo. Environment installation First we need to configure our Windows server to &#8230; <a href="http://www.helicontech.com/articles/installing-open-blue-dragon-on-iis/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>OpenBD (Open Blue Dragon) is a powerful open-source CFML engine. Here we are going to show you how to deploy it on IIS with the help of Helicon Zoo.</p>
<p><span id="more-915"></span><br />
<h2>Environment installation</h2>
<p>First we need to configure our Windows server to run Java Servlet applications. This is easily doable using following instructions.</p>
<ol>
<li>Download and install <a title="Web Platform Installer" href="http://www.microsoft.com/web/downloads/platform.aspx" target="_blank">Web Platform Installer</a>.
<li>Run Web Platform Installer and click “Options”.
<li>Add Helicon Zoo feed into &#8220;Display additional scenarios&#8221; box:&nbsp; <a href="http://www.helicontech.com/zoo/feed">http://www.helicontech.com/zoo/feed</a>. New “Zoo” tab will appear.
<li>Go to the <em>Zoo -&gt;</em> <em>Packages</em> and install <em>Java Hosting Package</em>.
<li>Accept licenses to start installation process. </li>
</ol>
<p>&nbsp;</p>
<ol>
<p><img class="alignnone size-full wp-image-983" title="java-hosting-package" alt="" src="http://www.helicontech.com/articles/wp-content/uploads/2012/04/java-hosting-package.png" width="780" height="540"></p>
<p>&nbsp;</p>
<p>Alternatively, instead of installing <em>Java Hosting Package</em> you can install <em>Modules –&gt; Helicon Zoo Module</em> and <em>Engines –&gt; Jetty</em> separately. This is minimal requirement to run Java Servlet applications under Microsoft IIS web server. If you want to run Java Servlets under IIS Express and WebMatrix in your development environment, then you will also need to install <em>Helicon Zoo Module for IIS Express</em> form Engines section.</p>
<p>&nbsp;</p>
<p><img class="alignnone size-full wp-image-904" title="webpi-jetty" alt="" src="http://www.helicontech.com/articles/wp-content/uploads/2012/04/webpi-jetty.jpg" width="640" height="465"></p>
<p>This is enough configuration to run most of Java Servlet applications directly form IIS.</p>
</ol>
<h2>OpenBD installation</h2>
<p>Download “J2EE Standard WAR” on <a href="http://www.openbluedragon.org/download/" target="_blank">http://www.openbluedragon.org/download/</a>. Launch IIS Manager and create new web-site or an application. Copy downloaded .war file into your web-site’s or application’s root folder and create the following web.config:</p>
<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;configuration&gt;
  &lt;system.webServer&gt;
    &lt;heliconZoo&gt;
      &lt;application name="openbd.project" &gt;
        &lt;environmentVariables&gt;
          &lt;!-- Uncomment line below if you want to set contexts directory --&gt;
          &lt;!--  &lt;add name="CONTEXTS_DIR" value="%APPL_VIRTUAL_PATH%" /&gt; --&gt;

          &lt;!-- Optional variables: --&gt;
          &lt;!-- &lt;add name="CONTEXT_PATH" value="%APPL_VIRTUAL_PATH%" /&gt; --&gt;
          &lt;!-- &lt;add name="WAR_EXTRACT_PATH" value="%APPL_PHYSICAL_PATH%" /&gt; --&gt;

          &lt;!-- A WAR file or start directory to run --&gt;
          &lt;add name="WAR_FILE" value="openbd.zip" /&gt;
        &lt;/environmentVariables&gt;
        &lt;/application&gt;
    &lt;/heliconZoo&gt;

        &lt;handlers&gt;
          &lt;add name="openbd.project#x86" scriptProcessor="java.jetty"
            path="*" verb="*" modules="HeliconZoo_x86"
            preCondition="bitness32" resourceType="Unspecified"
            requireAccess="Script" /&gt;
          &lt;add name="openbd.project#x64" scriptProcessor="java.jetty"
            path="*" verb="*" modules="HeliconZoo_x64"
            preCondition="bitness64" resourceType="Unspecified"
            requireAccess="Script" /&gt;
        &lt;/handlers&gt;
  &lt;/system.webServer&gt;
&lt;/configuration&gt;</code></pre>
<p>Please take a look at &lt;environmentVariables&gt; section. Only &#8220;WAR_FILE&#8221; variable is required and should contain either path to a WAR file or to a folder containing unpacked Java Servlet application.<br />WAR_EXTRACT_PATH variable can be used to configure location where to unpack WAR file content. By default it is IIS application root folder. CONTEXT_PATH variable needed by Java application and contains IIS application virtual path by default.</p>
<p><font color="#ff0000"><strong>WARNING</strong></font>: Since WAR files need to be extracted before execution you will need to have a folder with write permissions.&nbsp; In default IIS installation all application pools are executed with permissions of IIS_IUSRS group which does not have write permissions to the web application folders. You will need to provide write permissions to the user running Application Pool or IIS_IUSRS group to the folder containing OpenBD application or specify other folder using WAR_EXTRACT_PATH variable with write permissions provided.</p>
<p><img class="alignnone size-full wp-image-918" title="openbd-app-folder" alt="" src="http://www.helicontech.com/articles/wp-content/uploads/2012/04/openbd-app-folder.jpg" width="640" height="443"></p>
<p>That’s it. You may now start OpenBD by opening IIS web site in the browser:</p>
<p><img class="alignnone size-full wp-image-919" title="openbd-start" alt="" src="http://www.helicontech.com/articles/wp-content/uploads/2012/04/openbd-start.jpg" width="640" height="459"></p>
<p>You can copy CFML applications into “webapps” folder of OpenBD web site. There are “manual” and “bluedragon” already. The latter one is actually an administration panel for your OpenBD installation:</p>
<p><img class="alignnone size-full wp-image-917" title="openbd-admin" alt="" src="http://www.helicontech.com/articles/wp-content/uploads/2012/04/openbd-admin.jpg" width="640" height="409"></p>
<h3>Resume</h3>
<p>As you can see we’ve installed OpenBD easily in very few steps. Naturally you may deploy any .war file in the same way.<br />Cheers <img src='http://www.helicontech.com/articles/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.helicontech.com/articles/installing-open-blue-dragon-on-iis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
