New Railo and Mura installer for the Microsoft Web Platform

Railo Add comments

Some weeks back I was talking with HeliconTech after they kindly donated a license for their Helicon APE product for use on cfmldeveloper.com my free CFML developer hosting community. And the topic of Railo came up as they noticed I also support Railo on cfmldeveloper, and they were telling me how they like to support niche technologies like this on Windows/IIS and were looking to add some new Java solutions, so we started discussing the requirements of a new Helicon ZOO module for Railo and what it lacked on the IIS platform.
I explained to them how ColdFusion worked out of the box and the disadvantage of Railo requiring all the extra manual config of a Jakarta vDir, isapi Plugins, handler mappings and virtual hosts in the Servlet engine in order to make it work, and how a simpler ColdFusion like solution was needed, ideally using the Microsoft Web Platform Installer.
They also asked for a popular open source app that they could also build an installer for and bundle with Railo, so I suggested Mura CMS.

After only 1 month and a few more email exchanges, I am excited to announce that HeliconTech have already completed the new Installer module for both Railo and MuraCMS and added them to the Web Platform Installer, now that is fast work I must say, I was impressed.

Unlike other installations, there is no windows service required, Helicon Zoo manages processes automatically. With a windows service you cannot get this kind of flexibility, instead each website  will  have  it's  own java.exe instance running, Helicon  Zoo  will  start  it,  stop  it  when  needed  and restart if detecting any problems or during normal application recycling. Web applications will be isolated, running in separate processes, with separate  java.exe  instances,  under probably different user accounts (depends  on  IIS  settings).  A crash  inside  one application therefore will not affect other applications, additionally one hosting user cannot access other user's data or files or applications.

Installing Railo with Helicon Zoo

There is nothing official on their website yet, so here are the instructions of how to install Railo with the Helicon ZOO module.

If you already have a version of Railo installed at c:\railo then you will need to remove or rename it first as that is where the Helicon installer will try to install Railo.

  1. Download and install Microsoft Web Platform Installer
  2. Run Web Platform Installer and click "Options"

    Web Platform Installer, click Options

  3. Add Helicon Zoo feed: http://www.helicontech.com/zoo/feed

    Web Platform Installer Options, add Helicon Zoo feed

  4. You should now have a new "Zoo" option in the WPI, select this and you will see all the new Zoo modules.

    image

  5. Select Railo and click options, now choose which web server you want to install to. Be sure not to choose IIS Express if you use IIS otherwise it will get installed as well.
    Now click ok.


    image

  6. Now click Install

    image

    Then click "I accept"

    image

  7. Installation will now begin

    image

Setting up a new Railo site in IIS

  1. Just create your website folder as you normally would, e.g.
    c:\inetput\wwwroot\mysite\wwwroot
  2. Now setup the site in IIS as normal. Open IIS Manager, right click on sites and select "Add New"

    image
  3. You now need to create a web.config file in the root of your website to enable the new Helicon Zoo modules. This is kinda like using the ColdFusion web server config tool to enable CF on specific sites.
     <?xml version="1.0" encoding="UTF-8"?>
    
    <configuration>
    
    <system.webServer>
    
    <heliconZoo>
    
    <application name="railo.project">
    
    <environmentVariables>
    
    </environmentVariables>
    
    </application>
    
    </heliconZoo>
    
    <handlers>
    
    <add name="railo.project#x86.cfm" scriptProcessor="railo" path="*.cfm" verb="*" modules="HeliconZoo_x86" preCondition="bitness32" resourceType="Unspecified" requireAccess="Script" />
    
    <add name="railo.project#x86.cfc" scriptProcessor="railo" path="*.cfc" verb="*" modules="HeliconZoo_x86" preCondition="bitness32" resourceType="Unspecified" requireAccess="Script" />
    
    <add name="railo.project#x86.cfml" scriptProcessor="railo" path="*.cfml" verb="*" modules="HeliconZoo_x86" preCondition="bitness32" resourceType="Unspecified" requireAccess="Script" />
    
    <add name="railo.project#x86.cfr" scriptProcessor="railo" path="*.cfr" verb="*" modules="HeliconZoo_x86" preCondition="bitness32" resourceType="Unspecified" requireAccess="Script" />
    
    <add name="railo.project#x86.cfswf" scriptProcessor="railo" path="*.cfswf" verb="*" modules="HeliconZoo_x86" preCondition="bitness32" resourceType="Unspecified" requireAccess="Script" />
    
    
    
    <add name="railo.project#x64.cfm" scriptProcessor="railo" path="*.cfm" verb="*" modules="HeliconZoo_x64" preCondition="bitness64" resourceType="Unspecified" requireAccess="Script" />
    
    <add name="railo.project#x64.cfc" scriptProcessor="railo" path="*.cfc" verb="*" modules="HeliconZoo_x64" preCondition="bitness64" resourceType="Unspecified" requireAccess="Script" />
    
    <add name="railo.project#x64.cfml" scriptProcessor="railo" path="*.cfml" verb="*" modules="HeliconZoo_x64" preCondition="bitness64" resourceType="Unspecified" requireAccess="Script" />
    
    <add name="railo.project#x64.cfr" scriptProcessor="railo" path="*.cfr" verb="*" modules="HeliconZoo_x64" preCondition="bitness64" resourceType="Unspecified" requireAccess="Script" />
    
    <add name="railo.project#x64.cfswf" scriptProcessor="railo" path="*.cfswf" verb="*" modules="HeliconZoo_x64" preCondition="bitness64" resourceType="Unspecified" requireAccess="Script" />
    
    </handlers>
    
    <defaultDocument>
    
    <files>
    
    <add value="index.shtml" />
    
    <add value="index.cfm" />
    
    </files>
    
    </defaultDocument>
    
    </system.webServer>
    
    </configuration> 
    
    

    Just paste the above into your web.config file and save. Save this as a template to use for any new sites.

That's it, no Jakarta virtual directory to create, no ISAPI filters, no virtual host files to create in the servlet engine, it just works.

This installation uses Jetty, so if you need to make any customisation then you should refer to the Jetty documentation or any docs on the Railo wiki specific to Jetty.

I will be posting some follow up articles about enabling SEO URL's etc which wont work out of the box, but I have suggested to Helicon to add this functionality into the installer, so check back here every so often for updates.

Installing MuraCMS

I have not bothered to document the installation of MuraCMS as it is so simple and self explanatory that it requires no explanation.
You simply click Add and then install from the Web Platform  Installer and follow the instructions.
The only issue you may have is if you install it to a sub-directory of a site which you have already railo enabled as above, then you will need to remove the web.config as it will conflict with the one in the root and will throw an error.

FAQ's

 

  • How do I restart Railo ?

    Simply recycle the websites application pool, by default each site should have its own application pool
  • My SES URL's are not working, I get a Jetty 404 error

    You need to add some adiditonal url patterns to servlet mapping. Open c:\railo\etc\webdefault.xml in a text editor, and find the following section
    
    <servlet-mapping>
    
        <servlet-name>CFMLServlet</servlet-name>
    
        <url-pattern>*.cfm</url-pattern>
    
        <url-pattern>*.cfml</url-pattern>
    
        <url-pattern>*.cfc</url-pattern>
    
        <url-pattern>*.cfm/*</url-pattern>
    
        <url-pattern>*.cfml/*</url-pattern>
    
        <url-pattern>*.cfc/*</url-pattern>
    
      </servlet-mapping>
    
    


    You need to add your custom URL's here, for example if you installed muraCMS in a sub directory and your url's look like www.mysite.com/MuraCMS/index.cfm/page-name, then you should add the following 
    <url-pattern>MuraCMS/index.cfm/*</url-pattern>


    Yes this is a pain in the back side, and obviously not very doable on shared hosting, so the only other solution is using server side URL rewriting instead with Apache APE or ISAPI_REWRITE. I am however looking for another solution.

8 responses to “New Railo and Mura installer for the Microsoft Web Platform”

  1. Eli Says:
    Im very happy to hear about this new solution stack up on Windows Platform Installer. One of the main reasons that I didn't offer Railo Server to customer was because of the tedious configuration. But now with Railo 3.3 now supporting ORM hibernate and this easy install this will be one of my top offerings to customers of all sizes.
  2. John Whish Says:
    This is pretty cool - do you know if Helicon pulls the latest stable version or is setup to work with a specific version?

    How are you finding Jetty in production? I've only ever used it in development. I know it has a small footprint, but does it handle load well?
  3. Josh S. Says:
    Thanks for the write up. I'm a Railo newby and am having some trouble here. I've followed the instructions. Although, when executing any .cfm file, I get a 'HTTP 503 javax.servlet.ServletException' error. Any suggestions?
  4. Russ Says:
    John, based on their other products, they do seem to keep them up to date. But as you can update Railo yourself mega easily from within the Railo admin I don;t think it is that important.

    Josh, check the application pool that your site is running under, make sure it is in integrated pipeline mode.
  5. Yaroslav Says:
    Josh, one more thing - make sure IIS pool user (usually IIS_IUSRS) has write permission to the web site folder. Railo requires write permission to save some configuration and cache files.
  6. Yaroslav Says:
    John, we do our best to keep latest stable versions of all products in our repository.

    Russ, integrated pipeline mode is not required by Helicon Zoo. It is required by Helicon Ape, but Zoo should work in both modes.
  7. Jani Says:
    I’m not that much of a online reader to bbe honest but your blogs really nice, keep it up!
    I'll go ahead and bookmark your site to come
    back later. All the best
  8. Nenad Says:
    Hi There, I followed this tutorial and I have error 500.19 when trying to browse my website that I created on IIS 7.5. Any thoughts?
    Yes I checked the permissions. IIS_USRS are allowed to modify this folder.
    Thank You!

Leave a Reply

Leave this field empty

Powered by Mango Blog. Design and Icons by N.Design Studio