Lasso Soft Inc. > Home

  • Articles

Configure Lasso 8 and 9 side-by-side on one server

Lasso 8 and 9 can run simultaneously on a single machine, provided your web server is properly configured.

They key is to locate Lasso 8 and Lasso 9 sites in separate virtual hosts, and then ensure that Lasso 8 is loaded only for specific sites, rather than the entire server. For this article, the paths and filenames will refer to Mac OS X client running the preinstalled Apache 2.2, but the concepts apply to any server or platform. 

Lasso 8 changes

When performing the default installation of Lasso 8, two modifications are made to the Apache configuration:

  • lasso8.conf is placed in /etc/apache2/users
  • a line is appended to /etc/apache2/httpd.conf which loads lasso8.conf

Undo both of these changes by:

  • moving lasso8.conf up one directory to /etc/apache2/lasso8.conf (to prevent other modules from auto-loading it)
sudo mv /etc/apache2/users/lasso8.conf /etc/apache2
  • commenting out or removing the Include directive in httpd.conf appended by Lasso 8's installer (to avoid a "no such file" error when restarting Apache)
sudo perl -i -pe 's/^(Include.*lasso8.conf)$/#$1/' /etc/apache2/httpd.conf

The only Apache configuration change made by the Lasso 9 installer is the addition of a mod_lasso9.conf file (formerly lasso9.apache2.conf or lasso9.manager.conf) in a subdirectory of /etc/apache2. We'll leave it unmodified and in-place to prevent future conflicts (1).

Virtual Host example configuration

First, ensure that virtual hosts are enabled in httpd.conf:

sudo perl -i -pe 's/^#(Include.*vhosts.conf)$/$1/' /etc/apache2/httpd.conf

Next, open your virtual hosts configuration file (/etc/apache2/extra/httpd-vhosts.conf) and replace the sample configurations with something similar to the following, tailored to your situation. 

NameVirtualHost *:80

<Directory "/directory/containing/sites/*">
	Options All
	AllowOverride All
	Order allow,deny
	Allow from all
</Directory>

<VirtualHost *:80>
	ServerName lasso8site.net
	ServerAlias www.lasso8site.net
	DocumentRoot "/directory/containing/sites/lasso8site"
	DirectoryIndex index.lasso index.html
	Include /private/etc/apache2/lasso8.conf
</VirtualHost>

<VirtualHost *:80>
	ServerName lasso9site.org
	ServerAlias www.lasso9site.org
	DocumentRoot "/directory/containing/sites/lasso9site"
	DirectoryIndex index.lasso index.html
</VirtualHost>

<VirtualHost *:80>
	ServerName localhost
	ServerAlias *.*
</VirtualHost>

Notes

  1. Since the contents of this file could change with a future Lasso update, one should avoid making changes to it.
  2. The last VirtualHost block is a catch-all for requests that don't match any previous blocks, and will serve content from the default document root. Otherwise, non-matching requests will be handled by the first virtual host.
  3. If Apache is giving you "403 Forbidden" errors, you may need to make your sites' directories executable by the web server, which can be done with this command:
    sudo find /directory/containing/sites -type d -exec chmod 755 {} \;
  4. Alternatively, you could run Lasso 8 and 9 on the same ServerName by assigning each virtual host a different port number, or even the same VirtualHost by ensuring each file type is handled by only one Lasso version (e.g. change the Lasso 9 conf file so it only handles files ending in .lasso9, leaving .lasso files for Lasso 8). Also, it's possible to have both virtual hosts draw from the same directory, allowing one to check how a single site runs in Lasso 8 and 9 simultaneously. 

 

Author: Eric Knibbe
Created: 11 Aug 2011
Last Modified: 25 Aug 2011

Comments

Lasso 8 & 9 in the Same Virtual Host

by Brad Lindsay, 23 February 2013

if you want to run 8.5 & 9 side-by-side on the *same* virtual host and have one folder for Lasso 8 and one for Lasso 9, then see the example configuration below. For this to work, you must first comment out the <Location ~> directives in both mod_lasso9.conf and lasso8.conf that setup handling the "lasso" extension.

<VirtualHost *:80>
ServerName localhost
DocumentRoot "/Library/WebServer/Documents"
DirectoryIndex index.lasso index.html

# Process .lasso files in this folder as Lasso 8.5
<Location /l8/>
AddHandler lasso8-handler lasso
</Location>

# Process .lasso files in this folder as Lasso 9
<Location /l9/>
AddHandler lasso9-handler lasso
</Location>
</VirtualHost>


Here's a virtual host example that has Lasso 9 as the default for the virtual host, but uses Lasso 8 for certain directories.

<VirtualHost *:80>
ServerName localhost
DocumentRoot "/Library/WebServer/Documents"
DirectoryIndex index.lasso index.html

# Process .lasso files using Lasso 9 by default
AddHandler lasso9-handler lasso

# Process .lasso files in this folder using Lasso 8
<Location /meetings/>
AddHandler lasso8-handler lasso
</Location>

# Process .lasso files in this folder using Lasso 8
<Location /lp8/>
AddHandler lasso8-handler lasso
</Location>
</VirtualHost>

Moving lasso8.conf not required

by Steve Piercy, 31 May 2012

If you currently have Apache configured to load lasso8.conf on a per VirtualHost directive basis, then the above method will add extra work. When you move lasso8.conf out of /private/etc/apache2/users/ to its parent directory, then you also need to modify any existing directives that look for that file. For this case, the following configuration method minimizes the changes that one must make to their existing Apache configuration.



/private/etc/apache2/httpd.conf
----------------------------------------------
Insert the following line at the end of the list of LoadModule directives in httpd.conf. This in combination with another modification in lasso8.conf[1] will avoid warnings about loading this module repeatedly per virtual host.

LoadModule lasso8_module libexec/apache2/Lasso8ConnectorforApache2.2.so

The Lasso 8 installer puts lasso8.conf in /private/etc/apache2/users/, which in turn is loaded by a chain of other directives. To prevent loading this file, and if you do not need user home directories, disable user home directories by commenting out the following line near the end of httpd.conf.

# Include /private/etc/apache2/extra/httpd-userdir.conf

Comment out the following Include directive to prevent loading the lasso8.conf file server-wide. This will allow you to enable Lasso 8 on a per VirtualHost basis.
#Begin: Added by Lasso 8 Installer
#Include /private/etc/apache2/users/lasso8.conf
#End: Added by Lasso 8 Installer



/private/etc/apache2/users/lasso8.conf
----------------------------------------------
[1] Comment out the following line as noted above.
#LoadModule lasso8_module /usr/libexec/apache2/Lasso8ConnectorforApache2.2.so



/private/etc/apache2/extra/httpd-vhosts.conf
/private/etc/apache2/extra/httpd-ssl.conf
and wherever else you define VirtualHost directives
----------------------------------------------
Within each VirtualHost directive you can enable Lasso 8 by adding the following directive.

Include /private/etc/apache2/users/lasso8.conf



To test your Apache configuration, in Terminal:

sudo apachectl configtest

To restart Apache, in Terminal:

sudo apachectl graceful

You must be logged in to comment.

Please note that periodically LassoSoft will go through the notes and may incorporate information from them into the documentation. Any submission here gives LassoSoft a non-exclusive license and will be made available in various formats to the Lasso community.

LassoSoft Inc. > Home

 

 

©LassoSoft Inc 2014 | Web Development by Treefrog Inc | PrivacyLegal terms and Shipping | Contact LassoSoft