]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/tips/dot_cgi.mdwn
Exclude working directory from library path (CVE-2016-1238)
[git.ikiwiki.info.git] / doc / tips / dot_cgi.mdwn
index 9067fbea57c6f3e77cdb2b72d00403a12d096f2c..8667fed41f76de8242d3d90ead89f88ba4fdd14c 100644 (file)
@@ -1,3 +1,5 @@
+[[!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`.
 
 It's common to name the [[cgi]] "ikiwiki.cgi", and put it somewhere
 like `~/public_html/ikiwiki.cgi`, or `/var/www/wiki/ikiwiki.cgi`.
 
@@ -13,9 +15,12 @@ run `.cgi`  programs from anywhere.
 These instructions are for Debian systems, but the basic
 configuration changes should work anywhere.
 
 These instructions are for Debian systems, but the basic
 configuration changes should work anywhere.
 
+[[!toc]]
+
 ## apache 2
 
 ## apache 2
 
-* Make sure the cgi module is loaded. (Ie, `a2enmod cgi`)
+* 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:
 
 * Edit /etc/apache2/apache2.conf (or /etc/apache2/mods-available/mime.conf)
   and add a line like this:
@@ -40,6 +45,8 @@ configuration changes should work anywhere.
 
        ErrorDocument 404 /cgi-bin/ikiwiki.cgi
 
 
        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
 ## lighttpd
 
 Here is how to enable cgi on [lighttpd](http://www.lighttpd.net/) and
@@ -77,6 +84,32 @@ made into a startup script in `init.d`. You may also need to make this file writ
 
     chmod a+w /tmp/fcgi.socket
 
 
     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:
 
 Then you need an nginx config plugged in that wrapper. Here's an
 example virtual host configuration: