+[[!meta date="2009-01-12 20:01:03 -0500"]]
+
It's common to name the [[cgi]] "ikiwiki.cgi", and put it somewhere
like `~/public_html/ikiwiki.cgi`, or `/var/www/wiki/ikiwiki.cgi`.
These instructions are for Debian systems, but the basic
configuration changes should work anywhere.
+[[!toc]]
+
## apache 2
-* Edit /etc/apache2/apache2.conf and add a line like this:
+* Make sure the cgi module is loaded. (Ie, `a2enmod cgi`).
+ Note that the cgid module will not work.
+
+* Edit /etc/apache2/apache2.conf (or /etc/apache2/mods-available/mime.conf)
+ and add a line like this:
AddHandler cgi-script .cgi
Or, if you've put it in a `~/public_html`, edit
`/etc/apache2/mods-available/userdir.conf`.
- You may also want to install some dependencies to enable CGI in apache2 setup as: `libcgi-formbuilder-perl` and `libcgi-session-perl`.
-
* If your wiki is in `~/public_html` and does not appear when you enter the URL given by the installer, check that you have
the userdir mod enabled (there should be simlinks to userdir.load and userdir.conf in /etc/apache2/modes-enabled). If not,
run `a2enmod userdir` and reload apache2.
ErrorDocument 404 /cgi-bin/ikiwiki.cgi
+* On Fedora (and RHEL, CentOS, and derivatives) you may need to change CGI mode from `06755` to `755` as suid/sgid bit is prohibited by `suexec`. ([Bug 1341568](https://bugzilla.redhat.com/show_bug.cgi?id=1341658))
+
## lighttpd
Here is how to enable cgi on [lighttpd](http://www.lighttpd.net/) and
chmod a+w /tmp/fcgi.socket
+If you have [systemd](https://en.wikipedia.org/wiki/Systemd), you may use a service file like so:
+
+Edit/create a service file (in Debian it would be: `sudo vim /lib/systemd/system/ikiwiki.service`
+
+Content of `ikiwiki.service`:
+
+ [Unit]
+ Description=Ikiwiki fcgi socket wrap
+ After=network.target
+
+ [Service]
+ Type=simple
+ User=www-data
+ Group=www-data
+ ExecStart=/usr/bin/spawn-fcgi -s /tmp/fcgi.socket -n -- /usr/sbin/fcgiwrap
+
+ [Install]
+ WantedBy=multi-user.target
+
+Then run:
+
+ # This enables the service at startup
+ sudo systemctl enable ikiwiki.service
+ # This attempts to start the service
+ sudo systemctl start ikiwiki.service
+
Then you need an nginx config plugged in that wrapper. Here's an
example virtual host configuration:
Also, note that the `/tmp/fcgi.socket` file needs to be writable by the webserver. I am also unsure as to the security of this setup, as I am using this only on my dev server. Needless to say that [[real fastcgi support|todo/fastcgi_or_modperl_installation_instructions]] would be great. ;) --[[anarcat]]
+2016-09-23 [[alexjj]]: On Debian Jessie creating the fcgi ikiwiki.service is not necessary. Install fcgiwrap, it'll auto start the fcgiwrap systemd service and then add the parameters in the virtual host:
+
+ location / {
+ try_files $uri $uri/ =404;
+ }
+
+ # Max size of file upload
+ client_max_body_size 10m;
+
+ location ~ .cgi {
+ #gzip off is recommended in /usr/share/doc/fcgiwrap/README.Debian
+ gzip off;
+ fastcgi_pass unix:/var/run/fcgiwrap.socket;
+ include /etc/nginx/fastcgi_params;
+ }
+
+Here's a [[complete site.conf|tips/nginx]] for nginx if that helps.
+
## boa
Edit /etc/boa/boa.conf and make sure the following line is not commented: