Kepler
The Lua Web Development Platform

Using Kepler with IIS

Kepler can be used with Microsoft IIS with the following launchers:

Each launching method has pros and cons, you should choose with care the best one for your needs. Note that depending on the Windows and IIS version that you are using, your screen may be slightly different.

ISAPI

The ISAPI launcher usually performs better than the CGI launcher and is the preferred installation on IIS servers.

The first step is to copy all dependent libraries to the directory where IIS runs from. This is usually "%SystemRoot%\system32\inetsrv".

The next step is to map the URL extensions that should be associated with CGILua. The procedures described below will configure two extension mappings for the whole Web server. One for .lua URLs and another for .lp URLs. These procedures can also be executed for a single virtual directory instead of the whole server.

First open the IIS manager and go to the Default Web Site properties, as depicted below.

IIS Properties Window

Now click on the "Configuration..." button on the "Home Directory" tab:

IIS Web Site

Then add the two new mappings, ".lua" and ".lp". These mappings must point to the ISAPI launcher module, cgilua_isapi.dll (you may need to enclose the launcher path in quotes).

Depending on your system configuration, all the files in <Kepler Home>\bin may need to be made readable by the IIS anonymous user. Tipically this user is something like IUSR_MACHINENAME. Keep in mind that this may be not the safest solution.

After the above configuration steps, you should be able to execute .lp and .lua URLs. The default Kepler configuration assumes that the web files are located in the <Kepler Home>\web directory (usually in C:\kepler\1.1\web). Assuming you have a file called index.lp placed in \web, you should be able to open the URL localhost/index.lp with your browser.

FastCGI

This part of the documentation is still under development.

CGI

The CGI launcher is the simplest option to deploy a CGILua installation on IIS. It has no external dependencies and runs on every webserver that supports CGI. The main drawback of the CGI launcher is its performance, since usually a new system process is created to handle each request.

There are two ways to install the CGI launcher on IIS, the first is through an extension mapping and the other is executing the launcher directly. If you use an extension mapping a typical URL will be like http://www.mydomain.com/test.lua. If you choose to execute the launcher directly the URL will be something like http://www.mydomain.com/kepler/cgi/cgi.exe/test.lua.

Using CGI Extension mapping

The procedures described below will configure two extension mappings for the whole web server. One for .lua and another for .lp. These procedures can also be executed for a single virtual directory instead of the whole server.

First go to the web site properties, depicted below.

IIS Properties

Now click on the "Configuration..." button on the "Home Directory" tab:

IIS Web Site

Then add the two new mappings, ".lua" and ".lp". These mappings must point to the CGI launcher executable, cgi.exe (you may need to enclose the launcher path in quotes).

Depending on your system configuration, all the files in <Kepler Home>\bin may need to be made readable by the IIS anonymous user. Tipically this user is something like IUSR_MACHINENAME. Keep in mind that this may be not the safest solution.

After the above configuration steps, you should be able to execute .lp and .lua URLs. The default Kepler configuration assumes that the web files are located in the <Kepler Home>\web directory (usually in C:\kepler\1.1\web). Assuming you have a file called index.lp placed in \web, you should be able to open the URL localhost/index.lp with your browser.

Executing the CGI launcher directly

Executing the CGI launcher directly exposes the executable name on the URL, but allows the use of Kepler in systems where you don't have the rights to map extensions.

It may be also a good solution for systems where both the CGI and other(s) launchers are used at the same time.

To use Kepler this way, first create a virtual directory that will hold your application. Let's assume this virtual directory is called kepler and point to the <Kepler Home>\web folder for example.

Then create a virtual directory for the CGI launcher (such as /cgi for example), and point this virtual directory to <Kepler Home>\bin.

You must use use the IIS manager to give execution permission to the /cgi directory.

Finally test your configuration with a URL like http://localhost/kepler/cgi/cgi.exe/test.lua, where the test.lua would be located at your <Kepler Home>\web directory.

Valid XHTML 1.0!

$Id: install.windows.iis.html,v 1.17 2007/10/10 20:10:24 carregal Exp $