GOLF(2gg)

NAME
CGI - Golf documentation (running-application)

DESCRIPTION
You can run Golf application as a CGI (Common Gateway Interface) program, if your web server supports CGI. This is not recommended in general, as CGI programs do not exhibit great performance. However in some cases you may need to use CGI, such as when performance is not of critical importance, or when other methods of execution are not feasible.

To run your application with CGI, use command-line program. Since Golf applications require running in the security context of the user who owns the application, you must use "suexec" (or similar feature) of your web server.

The following script sets up an application named "func_test" (any kind of application will do) to run as CGI (after it's been compiled with gg) on Apache web server running on Ubuntu 18 and up. For other web servers/distros, consult their documentation on how to setup CGI for a program.

        #prep repos
            sudo apt update

        #enable CGI on apache
            sudo a2enmod cgid
            sudo service apache2 restart

        #Install suexec-custom for Apache
            sudo apt-get -y install apache2-suexec-custom
            sudo a2enmod suexec
            sudo service apache2 restart

        #setup a "gg" directory under cgi-bin where your application can run
            sudo mkdir -p /usr/lib/cgi-bin/gg
            sudo chown $(whoami):$(whoami)  /usr/lib/cgi-bin/gg
            sudo sed -i '1c\/usr/lib/cgi-bin/gg' /etc/apache2/suexec/www-data

        #copy your program to "gg" directory
            sudo mv $GG_ROOT/var/lib/gg/bld/func-test/func-test /usr/lib/cgi-bin/gg
            sudo chown $(whoami):$(whoami)  /usr/lib/cgi-bin/gg/func-test
            sudo chmod 700  /usr/lib/cgi-bin/gg/func-test

        #add user/group of Gliim application user to suexec
            sudo sed -i "/SuexecUserGroup/d" /etc/apache2/sites-enabled/000-default.conf
            sudo sed -i "s/<\/VirtualHost>/SuexecUserGroup $(whoami) $(whoami)\n<\/VirtualHost>/g" /etc/apache2/sites-enabled/000-default.conf
            sudo service apache2 restart

        #the application is at http://127.0.0.1/cgi-bin/gg/func-test?...
        #substitute 127.0.0.1 for your web address

SEE ALSO
 Running application

application-setup CGI command-line service See all documentation