This week I wrote a module for Webmin called Lasso Sites Manager.
Webmin is a really cool browser based server administration tool. It comes with dozens of modules for managing everything from user accounts to server software, package updates and disk quotas.
Lasso Server 9 is the latest release of the Lasso middleware application from LassoSoft. Lasso 9 lacks a key feature which the last release, 8.5, did have: an easy, graphical way to define multiple Lasso Sites.
Lasso 9 does support this feature, but with a very different implementation from Lasso 8. Instead of spawning its own site processes, Lasso 9 now integrates into Apache via FastCGI. FastCGI can now be configured to connect to a specific Lasso installation. Thus, the sites are much better integrated with Apache and the OS, which yields much more flexibility.
Inspired by discussions on the Lasso Talk mailing list, I decided to have a go at writing a Webmin module to manage multiple Lasso Sites in Lasso Server 9. I’m releasing the module here as free software with no license restrictions.
Feedback, improvements, and a Mac port would all be very welcome. If there is enough interest from other developers in maintaining and improving the module, I’ll probably put it up somewhere like Sourceforge or Google Code.
Lasso 9 supports multiple installations of Lasso Server on a single host. Each installation (“Site”) requires a unique installation directory and FastCGI port number. The lassoserver process needs to be told where its home is by being passed the LASSO9_HOME environment variable at startup.
Multiple Apache virtual hosts can connect to a single Lasso Site, or you can define 1 Lasso Site per virtual host.
Each Lasso Site can run under a different Unix user, providing much increased security, especially when implemented together with Apache’s suEXEC module. Lasso Sites Manager webmin module supports suEXEC and will even apply the correct Apache configuration and file permissions for you.
Module features in brief:
- Create, update and delete Lasso Sites
- Install from local copy of Lasso Server, a pre-configured template, or from SVN
- Auto-selection of available FastCGI port
- Configure Lasso Site to auto-start Lasso Server via Apache FastCGIServer
- Or manually control stop/start of Lasso Server via the module
- Automatic integration with Apache virtual hosts
- Ability to run Lasso sites under any Unix user (also without suEXEC, by setting setuid bit)
- Enable/disable Lasso Server error log (LASSO9_PRINT_FAILURES directed to a file)
- Integration with suEXEC (off by default, enable via module config)
- Open Lasso Admin for any Site directly from the module
Some currently known issues are:
- Only tested on CentOS Linux 5.4 – anyone interested in contributing Mac OS X support please contact me
- Auto-start not working in combination with suEXEC
- May have issues when turning suEXEC support on or off after you have already defined sites. Saving each site config (just click on the name and hit Save) should fix this
- Install from SVN at your own risk, may require some manual tweaking
An issue to be aware of that isn’t a bug: when using suEXEC on CentOS, the Lasso Site _must_ be located within /var/www. This path is hard-coded into the suEXEC module as the doc-root. If you want to change this, you need to recompile FastCGI with a different AP_DOC_ROOT.
On to To Do list:
- Ability to update one/all sites from updated local installation or from SVN
- Port to Mac OS X client and server. Anyone who can contribute to this port, or provide access to an OS X Server installation, please contact Chris Wik.
Download and Installation
Pre-requisites: a working installation of CentOS 5 with Webmin, Apache 2.2, Lasso Server 9, and subversion (‘yum -y install subversion’ on CentOS). Built/tested with Webmin 1.500.
Please install and test that Lasso Server 9 works BEFORE installing this module. Eg: turn off selinux, install Lasso Server RPM, install FastCGI (using the provided script at /usr/local/lib/lasso/Apache2Conf/install_mod_fastcgi)
You can download the module here. To install, go to Webmin -> Webmin Configuration -> Webmin Modules. Select “From uploaded file”, choose the file, and click Install Module. The module will now appear under the Servers category in Webmin.
This module comes with no guarantees, use it at your own risk.