CGI is a protocol to transfer information between a webserver and an application. Information about the request is send from the webserver to the application and the applicatio returns the result of the request (most of the time HTML), which the webserver sends back to the client.
PHP is a scripting language which understands the CGI protocol, so a lot of things are done for you as a programmer. If you would be using C as the language to build your web application, you would have to read the POST data from stdin, parse environment variables, etc. PHP does that for you. For example, all form data is placed in the $_POST variable and ready to use.
Although CGI is nothing than a protocol, the term is often used to indicate a 'web application'. PHP is just another web application language.
To use GuppyCMS, start with the following configuration.
CGIhandler = /usr/bin/php5-cgi:php
Hostname = your.hostname.com
WebsiteRoot = /path/to/guppycms
ExecuteCGI = yes
UseToolkit = guppycms
ToolkitID = guppycms
Match \.(inc|dtb) DenyAccess
Remember, the configuration above is just to get you started. Read to HOWTO
pages for more information about configuring Hiawatha.