How to install Appaserver: Note: these steps assume you have an application name in mind: $application. Note: for the horizontal menus to work, DynarchMenu must be purchased (~$100) and installed. See http://dynarch.com . 1) Set environment variables in your login profile file: a. APPASERVER_HOME=/foo/appaserver Note: the cpio file does NOT contain a subdirectory root. So $APPASERVER_HOME should either be empty or contain a previous version of Appaserver. b. CGI_HOME=/foo/cgi-bin or CGI_HOME=/foo/cgi c. APPASERVER_LINK_FLAGS=-s <-- Only if CGI_HOME is on a different filesystem than APPASERVER_HOME. <-- If so, ScriptAlias --> FollowSymLinks d. APPASERVER_UNUSED_PARAMETER_FLAG=-Wunused-parameter <-- Only if your c compiler supports it. e. DOCUMENT_ROOT=/foo <-- Not necessary, but convenient. f. DYNARCH_HOME=/foo <-- Not necessary, but convenient. g. PATH=$PATH:$APPASERVER_HOME/utility:$APPASERVER_HOME/src_appaserver 2) Uncpio Appaserver: a. cd $APPASERVER_HOME b. zcat appaserver_$version.cpio.gz | cpio -ivdu Note: the cpio file does NOT contain a subdirectory root. So $APPASERVER_HOME should either be empty or contain a previous version of Appaserver. 3) Compile Appaserver: a. cd $APPASERVER_HOME b. make_appaserver.sh or makeall.sh <-- makeall.sh is archaic. 4) Create the application's directories and check permissions: a. cd $APPASERVER_HOME b. mkdir $application c. make sure $APPASERVER_HOME/$applicaion is writable by apache. d. mkdir data e. make sure $APPASERVER_HOME/data is writable by apache. f. make sure $CGI_HOME is writable by apache. - Appaserver writes messages to $CGI_HOME/appaserver.err . 5) Create some of the necessary links: a. ln -s $APPASERVER_HOME/$applicaion $DOCUMENT_ROOT b. ln -s $APPASERVER_HOME/src_$applicaion $DOCUMENT_ROOT c. ln -s $APPASERVER_HOME/javascript $DOCUMENT_ROOT 6) Generate index.html: a. cd $APPASERVER_HOME b. cp index_template.html $DOCUMENT_ROOT/index.html c. edit $DOCUMENT_ROOT/index.html to taste. 7) Generate style.css a. cd $APPASERVER_HOME b. cp style-generic.css $DOCUMENT_ROOT/$application/style.css c. edit $DOCUMENT_ROOT/$application/style.css to taste. 8) Create the Appaserver configuration file: The Appaserver configuration file contains all of the information necessary to access the database. a. cd $APPASERVER_HOME b. cp appaserver_template.config /etc/appaserver.config c. edit appaserver.config to taste. - Note: make sure cgi_directory maps to httpd.conf --> ScriptAlias. - If ScriptAlias uses /cgi then cgi_directory must be /cgi. - If ScriptAlias uses /cgi-bin then cgi_directory must be /cgi-bin. d. protect appaserver.config to taste. 9) Test the Appaserver configuration file: a. echo "show tables;" | sql 10) Create the Appaserver tables: a. create_$application_appaserver.sh 11) Insert into the Appaserver tables: a. zcat insert_$application_appaserver.sql.gz | sql 12) Create the application tables: a. create_$application.sh 13) Insert into the application tables: a. zcat insert_$application.sql.gz | sql 14) Place the icons: a. cd $APPASERVER_HOME b. cp trashcan.gif magnify_glass.gif $DOCUMENT_ROOT 15) Point your browser to $DOCUMENT_ROOT and login. Note: The initial username and password are nobody/nobody. Login as nobody/nobody and perform the following: a. Insert a new Appaserver User: you. b. Insert a new Appaserver User Role: you -- Appaserver System. c. Delete the Appaserver User: nobody. Debugging: clues to problems can be found in the tail of the following files: 1) $CGI_HOME/appaserver.err 2) /var/log/apache/error.log Note: make sure httpd.conf has CGI turned on: - ScriptAlias --> Options --> +ExecCGI is set. 16) Integrate DynarchMenu (optional): a. Purchase DynarchMenu (~$100) from http://dynarch.com. b. Untar it to $DYNARCH_HOME. c. ln -s $DYNARCH_HOME/hmenu-$version $DOCUMENT_ROOT/hmenu d. Generate the menu stylesheet from one of the samples. - cd $DOCUMENT_ROOT/hmenu/src - cp skin-$favorite.css \ $DOCUMENT_ROOT/$application/skin-$application.css or cp $APPASERVER_HOME/skin-generic.css \ $DOCUMENT_ROOT/$application/skin-$application.css e. The application's stylesheets must be linked to DynarchMenu's tree. - ln -s $DOCUMENT_ROOT/$application/style.css \ $DOCUMENT_ROOT/hmenu/src/style-$application.css - ln -s $DOCUMENT_ROOT/$application/skin-$application.css \ $DOCUMENT_ROOT/hmenu/src/skin-$application.css