Lasso Soft Inc. > Home

  • Articles


Setting up Lasso9 beta with Subversion on OSX

A short guide compiled by Richard Taubo

 

An updated version of this guide is available.

Background

I created this sheet when installing Lasso 9 via the new Subversion method on OS X in place of using a click-and-install package. Subversion allows the developer to obtain releases sooner without waiting for the installer packages to be built, and it avoids going through the hassle of downloading and installing packages.

I decided to install lasso9_beta in /Applications. The full path after you have installed lasso9_beta through Subversion becomes:

/Applications/lasso9_beta

These instructions are based on this filepath.

For an editor, I use nano in the Terminal, but you can use BBEdit or any other text editor. To save a file in then exit from nano, press "CTRL-X", then press "Y", then "ENTER".

When you have downloaded lasso9_beta as described, read the file "README-IMPORTANT.txt", even though these instructions should be sufficient to get you going.

Lastly: Don't blame me if your system gets hiccups after following these instructions! :-)
 

Delete an Existing Lasso 9 Installation

Only for those who have installed Lasso 9 previously.

sudo rm -R /Library/Frameworks/Lasso9.framework
sudo rm /usr/local/bin/lasso*
sudo rm -R "/Library/Application Support/Lasso 9"
sudo rm -R "/Library/Receipts/Lasso 9"*

Install Lasso 9 from the Subversion repository

cd /Applications/
svn co http://download.lassosoft.com/svn/lasso/lasso9_beta/trunk lasso9_beta
cd lasso9_beta

Use Subversion to update Lasso 9

Use Subversion to update your copy of Lasso 9 Beta to the latest version.

cd /Applications/lasso9_beta/
svn update


Update your user profile

Add the LASSO9_HOME environment variable to your user profile.

nano -w ~/.bash_profile


and at the end of this file add:

export LASSO9_HOME="/Applications/lasso9_beta"


Save and close your profile.

Rehash the LASSO9_HOME environment variable so it becomes available immediately without restarting the terminal.

source ~/.bash_profile

Check that the LASSO9_HOME environment variable is set.

echo $LASSO9_HOME

-> /Applications/lasso9_beta

 

Install Dependencies in Finder

Run the Lasso9Dependencies installer, as referred to by the instructions in

/Applications/lasso9_beta/README-IMPORTANT.txt

if you have not done so already, unzip the following.

/Applications/lasso9_beta/Installers/Lasso9Dependencies.osx.pkg.zip


Then double-click to run the Lasso9Dependencies installer.

These dependencies do not change often, so you should only have to run it once, unless you hear otherwise.
 

Make Links to the Lasso 9 frameworks

See the README-IMPORTANT.txt.

Next, in a terminal, cd into the Installers directory and run the "./makelinks" command. This will create a link to the Lasso9.framework directory into your /Library/Frameworks/ directory.

You will only have to do this once, unless you change the path to the Lasso 9 home folder, in which case just run the makelinks command again:

cd /Applications/lasso9_beta/Installers
./makelinks


Create links to the Lasso 9 frameworks

Add links to the LassoExecutables/lasso9 and LassoExecutables/lassoserver commands into /usr/local/bin. This will let you execute these commands from any location.

sudo mkdir /usr/local/bin
cd /usr/local/bin
sudo ln -s /Applications/lasso9_beta/LassoExecutables/lasso9 .
sudo ln -s /Applications/lasso9_beta/LassoExecutables/lassoserver .


Test the Installation

from README-IMPORTANT.txt

In a terminal, cd into the LassoExecutables directory. Test the lasso9 command by having it print out the date

cd /Applications/lasso9_beta/LassoExecutables
echo 'date' | ./lasso9 --


If things are configured properly, you should see the date printed in response.

Configure Apache 2

Open your Apache 2 .conf file.

sudo nano -w /private/etc/apache2/httpd.conf


At the end, if not added already present, add the following.

Include /private/etc/apache2/other/*.conf


Save the file.

Move the Apache .conf file for Lasso 9 from the SVN directory to the apache2 other directory.

sudo mv /Applications/lasso9_beta/Installers/lasso9.apache2.conf  /private/etc/apache2/other/
// all one line



Starting and Stopping Lasso 9

Lasso 9 can be started by two methods. Apache can automatically start Lasso 9 in FastCGI mode, or you can start Lasso 9 from the command line.

Starting Lasso 9 Automatically via Apache

lasso9.apache2.conf includes a line that starts lasso9 directly whenever Apache2 is started or restarted. Edit the following file.

sudo nano -w /private/etc/apache2/users/lasso9.apache2.conf

The line is:

FastCGIServer /usr/local/bin/lassoserver -initial-env LASSOSERVER_FASTCGIPORT=8999
// all one line


If you want to restart lasso9 and this line is uncommented, you must stop lasso9 before you can start it again.

Change the lassoserver executable to have setuid

Apache can only start the process as the www user, which is useless, so you'll add the setuid flag to the lassoserver executable. This allows the Lasso process to run under the lassoserver executable's owner rather than the user Apache starts under. In the terminal, issue the following:

chmod u+s /Applications/lasso9_beta/LassoExecutables/lassoserver

Any time you update your installation with svn update, you'll need to re-run this command.

Check Apache configuration

To test that you've got it right, first check your configuration by typing the following.

sudo apachectl configtest


You will be asked for your password. If the Apache configuration is correct you'll get a message saying so.

Start Apache (and optionally Lasso automatically)

To restart Apache, which in turn should start Lasso automatically.

sudo apachectl graceful

Starting Lasso 9 va the command line

Start the web part of lasso9.

/Applications/lasso9_beta/LassoExecutables/lassoserver

Stop the web part of Lasso 9

Either use the following command

killall lassoserver

or find the process that comes up, and then kill it.

top -l 1 | grep 'lassoserver'
sudo kill "theNumberThatComesUp"


Lasso 9 admin interface

Open the following URL in a web browser.

http://localhost/lasso9/Admin/

Good Luck,

Richard Taubo

(With minor alterations by Jolle Carlestam. See the page history for other contributors.)
 

Troubleshooting

Common problems and their solutions.

Can't get Apache to Start lassoserver

There are various reasons this might be. The first thing to do is check that you can start lassoserver manually from the terminal. Issue the following command to start lassoserver with troubleshooting information (replacing "/path/to/" with the correct path to the lassoserver executable):

env LASSO9_PRINT_FAILURES=1 /path/to/lassoserver


If you can start lassoserver from a terminal, but Apache still has problems, check your Apache error_log to see what sort of diagnostic information it may display. Below are log entries and possible solutions.

[Thu Nov 12 23:05:08 2009] [warn] FastCGI: server "/Applications/Lasso9Beta/LassoExecutables/lassoserver" 
has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds


This is usually a permissions error, the server is running under _www instead of root. To fix this run the following command (replacing "/Lasso9/Home/" with the path to your Lasso9 directory):

sudo chmod u+s /Lasso9/Home/LassoExecutables/lassoserver

[Thu Nov 12 13:02:02 2009] [crit] (22)Invalid argument: FastCGI: can't create server
 "/usr/local/bin/lassoserver": bind() failed [/opt/local/apache2/logs/fastcgi/f8999e7a3bfe6c6e069fc7877f43b4f6]


This is a permissions issue for where Apache is trying to create the fastcgi socket ("/opt/local/apache2/logs/fastcgi/" in the above log). Verify that all the permissions are set correctly so that the apache user (www on Mac OS X 10.5, _www on Mac OS X 10.6) has access to that folder and write access for that folder. If the Unix permissions are all correct and you are still having problems, it is most likely an issue with Access Control Lists (ACLs). To check for ACLs, using the example above, I would do ls -l /opt/local/apache2/logs

drwx------+  4 _www  _www       136 Oct 30 16:38 fastcgi

If you notice the plus sign at the end of the permissions list, that means there are ACLs imposed. To get rid of the ACLs on that folder issue the following command:

sudo echo | sudo chmod -R -E /opt/local/apache2/logs/fastcgi

Note, if you notice ACLs all the way up the chain and want to get rid of them you can issue the following command:

sudo echo | sudo chmod -R -E /opt

Lasso can't read the LASSO9_HOME environment variable

If you've added the LASSO9_HOME variable to your environment (e.g. running `echo $LASSO9_HOME` returns a value) but Lasso fails to start with this error

[Wed Nov 10 14:31:46 2010] [warn] FastCGI: server "/Applications/lasso9_beta/LassoExecutables/lassoserver" 
restarted (pid 3585) Error, unable to find suitable Lasso 9 home directory. Set the LASSO9_HOME env variable to 
the desired location.


you can route around the problem by passing the variable as an argument on startup. This happens when Apache is configured to start lassoserver, in which case any variables you've set for your own environment won't be read.

Edit the following file.

sudo nano -w /private/etc/apache2/users/lasso9.apache2.conf


Change the line starting with "FastCGIServer" to this:

FastCGIServer /usr/local/bin/lassoserver -initial-env 
LASSOSERVER_FASTCGIPORT=8999 -initial-env 
LASSO9_HOME=/Applications/lasso9_beta


Alternatively, you could soft-link to your installation directory from /Library/Lasso, which is where Lasso 9 by default looks for an installation. 

Lasso doesn't start, or the admin interface doesn't show

If you observe any of the following behaviours in your server logs: 

  • Create JVM failed: 17 OS error: 17 File exists", & "FastCGI: server "/usr/local/bin/lassoserver" (pid 311) terminated by calling exit with status '0'"
  • (48)Address already in use: make_sock: could not bind to address 127.0.0.1:9010
  • FastCGI "incomplete headers" errors
  • Apache is running and serving requests, but nothing's showing in the logs
  • http://localhost/lasso9/Admin doesn't work, but http://127.0.0.1/lasso9/Admin does

you likely have multiple parent httpd processes running. This can happen on the Mac if "Web Sharing" in System Preferences > Sharing is checked and you use the apachectl command to manage Apache. To kill all httpd processes and start fresh, 

  1. uncheck "Web Sharing" in System Preferences > Sharing (or, on Mac OS X Server, disable the Web service in Server Admin),
  2. in Terminal, run `sudo killall httpd`
  3. re-enable Web Sharing (which will start Apache on boot) -or- run `sudo apachectl -k start`

Author: Richard Taubo
Created: 12 Feb 2010
Last Modified: 9 Aug 2011

Comments

No comments found
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 2015 | Web Development by Treefrog Inc | PrivacyLegal terms and Shipping | Contact LassoSoft