summaryrefslogtreecommitdiff
path: root/doc/tips/apache_cgi.mdwn
blob: f10baed2e699f934b584d1b98ff8f9a711e8a150 (plain)

Many ikiwiki examples name the [[cgi]] "ikiwiki.cgi", and put it somewhere like ~/public_html/ikiwiki.cgi, or /var/www/wiki/ikiwiki.cgi.

If you follow those examples, you may find that when trying to edit a page in your wiki, you see the raw contents of the ikiwiki.cgi program. Or get a permission denied problem.

This is because apache is generally not configured to run cgi scripts unless they're in /usr/lib/cgi-bin/. While you can put ikiwiki.cgi in there if you like, here's how to configure apache (version 2) to run .cgi programs from anywhere.

These instructions are for Debian systems, but the basic apache configuration should work anywhere.

  • Edit /etc/apache2/apache2.conf and add a line like this:

    AddHandler cgi-script .cgi

  • Find the "Options" line for the directory where you've put the ikiwiki.cgi, and add "ExecCGI" to the list of options. For example, if ikiwiki.cgi is in /var/www/, edit /etc/apache2/sites-enabled/000-default and add it to the "Options" line in the "Directory /var/www/" stanza. Or, if you've put it in a ~/public_html, edit /etc/apache2/mods-available/userdir.conf.