Hi CGI on OS X testers

To get the 2.9 cgi engine on Mac OS X you need to look in your Revolution installation. there's several possible engines, and some work for some people, and others work for other people. So it's best to try em all.

The engines to try are the ones Rev uses to build it's apps. They're found at: Applications/Revolution Enterprise (or Studio)/2.9.0-gm-1/Runtime/Mac OS X

Copy the "Revolution" executable files found in the subfolders (only those that can run on your processor) to your cgi-executables directory, naming them appropriately:
Library/Webserver/CGI-Executables

If all these won't work, then another possible engine to try is the executable within the bundle. So right click (control click) your "Revoluion" IDE application, and choose "show package contents". Next navigate to "contents/MacOS" and copy the executable.

Now make the files executable, using the terminal, or your favourite tool:
chmod 755 Library/Webserver/CGI-Executables/Revolution

The actual cgi code goes into a text file (I normally just use TextEdit), and that too needs the same execute permissions.

There's two things to look out for:
The first line of your code needs to reference the engine, and include a parameter to tell it not to load any graphical user interface. A simple test cgi could look like this:

--- start code below this line
#Revolution -ui

on startup
  put "hello world" into buffer
  put "Content-Type: text/plain; charset=ISO-8859-1"  & cr
  put "Content-Length:" && the length of buffer & cr & cr
  put buffer
end startup
--- end code above this line

Try out the relevant engines, and make sure that you picked one that does indeed work. Also don't forget to start websharing in the Mac OS X Preferences, and that you enter "localhost/cgi-bin/ your_cgi_filename.cgi" in your web browser (not "localhost/cgi- executables/...").

To work with a database, you need to fiddle even more around, so make sure everything already works perfectly well, before you continue on. And you need even more files, namely those found in the Revolution folder where you got your working engine from. you need the "revdb.bundle" one, and the relevant contents of the "database" folder (not the folder itself). Copy it all into the CGI-Executables folder. If you want to use any database other then SQLite, then you need to install that one too. For MySQL, the server needs to run already, and several setup tasks have to be made, but it's well documented, and there are several helper applications to ease this, so I won't go into those details.

For referencing the database, you'll need to include them as externals in the cgi code. an example code could look like this (untested):

--- start code below this line
#Revolution -ui

on startup
  --setup mySQL
set the externals of the templateStack to "/Library/Webserver/CGI- Executables/revdb.bundle"
  create stack "externals"
  start using stack "externals"
  revSetDatabaseDriverPath "/Library/Webserver/CGI-Executables/"

  --use "try" to output errors to the browser
  try
put revOpenDatabase("mysql", "localhost", "aDB", "aUser", "aPW", 0) into connID
    put "All is working well:" && connID into buffer
  catch buffer
    put "Error:" && connID & return & buffer into buffer
  end try

  put "Content-Type: text/plain; charset=ISO-8859-1"  & cr
  put "Content-Length:" && the length of buffer & cr & cr
  put buffer

  --extremely important:
  close stack "externals"
end startup
--- end code above this line

If you leave stacks open (even unsaved ones), then the cgi will not run at all (an alternative to "close stack" could be "quit", or "delete stack"). Note that for security purpose, you might want to not put the externals into the cgi folder, and although that should work, I never tried it myself.

If you do not want to use "try", you can also see most problems in the console application (found in the utility folder). Look for the apache error logs, they're in different locations for every Mac OS X version, for me it's at:
"LOG FILES" -> "var/log" -> "apache2" -> "error_log"

Of course there's even more things that can and will go wrong, and there's subtle differences to get things running on a virtual host, but for local Mac OS X installations these steps should work.

Have Fun
Björnke

On 29 Aug 2008, at 07:13, Jim Ault wrote:

I am using Rev 2.6.1 to develop some cgi stacks.. because
I want to test the environment of scripts, stack and libraries on Mac OSX
web server.

a) my current web host does not work for Rev 2.6.1, 2.7.2, 2.9

b) the lastest Eev for OSX seems to be 2.1.2

c)  using 2.6.1 saves in legacy format

I plan to move to DreamHost when my client is satisfied with the deveilpment
betas, so mySql will be the database available.

I will be using the MAMP install of Apache, Mysql, Php on OSX for testing.

Checking the archives and such did not give a clear picture, nor do I know
where to download the drivers for older versions of Rev.
_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to