Wednesday, November 14, 2007

Migrating to Seaside 2.8

I've been developing my web app with Squeak 3.9 and Seaside 2.7. This month, Seaside 2.8 was released and it promised faster rendering speed and lower memory consumption. So I decided to migrate my application over to it. But it was not without incident...

It turns out that in order for my web app to function properly using Apache2 and SSL, Seaside 2.8 requires the Server Port and Protocol for my app to be set to 443 and https, respectively. It's curious that this was not necessary under Seaside 2.7.

For some reason, I could not get my app to work initially with the Server Port and Protocol changes. After some tinkering, I managed to eventually get it working, but then it broke Apache2 load balancing! This became very frustrating.

So I decided to start from scratch and very carefully work my way to the finishing line. Methodically and meticulously, I built the Seaside images for my app (both 2.7 and 2.8 versions) and then small step by small step I configured Apache2 to run the apps. I was looking for clues as to what was wrong.

Well, to my pleasant surprise, everything worked! There was no problem! The lesson here is that one needs to be very, very careful in how one constructs the server environment for running a Seaside app with Apache2. One of the things I was particularly cautious of was to not do *anything* with Seaside's built-in WAKom web server--I left it in its default configuration. Under Linux, I was going to start the Seaside app by explicitly specifying the port number as in

squeak MyApp.image "" port 9090 &

and I was hoping that Apache could live with it. This may have been my best decision.

No comments: