summaryrefslogtreecommitdiff
path: root/doc/bugs/CGI_problem_with_some_webservers.mdwn
blob: 3f80bbbd69075351bf48fdca6e01cdf43fb77d82 (plain)

The "ikwiki.cgi?page=index&do=edit" function has a problem when running with [[!debpkg thttpd]] or [[!debpkg mini-httpd]]: for some reason the headers ikiwiki outputs are transmitted as the page content. Surprisingly, the "do=prefs" function works as expected.

Here is what it looks like in iceweasel:

Set-Cookie: ikiwiki_session_apnkit=99dad8d796bc6c819523649ef25ea447; path=/
Date: Tue, 14 Aug 2007 17:16:32 GMT
Content-Type: text/html; charset=utf-8

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
(...)

Ikiwiki runs fine with [[!debpkg boa]].

--[[JeremieKoenig]]

It doesn't work for signin either. What is the reason for these "header => 1" in FormBuilder initialisations? Why do they appear two times with conflicting values in the very same hashes?

--[[JeremieKoenig]]

Clearly those duplicate header settings are a mistake. But in all cases, the header => 0 came second, so it should override the other value and can't be causing this problem. (cgi_signin only sets it to 0, too).

What version of formbuilder are you using? If you run ikiwiki.cgi at the command line, do you actually see duplicate headers? I don't:

joey@kodama:~/html>REQUEST_METHOD=GET QUERY_STRING="page=index&do=edit" ./ikiwiki.cgi
Set-Cookie: ikiwiki_session_joey=41a847ac9c31574c1e8f5c6081c74d12; path=/
Date: Tue, 14 Aug 2007 18:04:06 GMT
Content-Type: text/html; charset=utf-8

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

Do thttpd and mini-httpd perhaps not realize that Set-Cookis is the start of the headers? --[[Joey]]

Thanks for your help: I think I found the problem! Ikiwiki outputs (in my case) the following error message on stderr, followed by an empty line:

/srv/ikiwiki/wc/index.mdwn:  (Not a versioned resource)

Probably thttpd and mini-httpd read stderr as well as stdout, while apache and boa don't. When using a shell-script wrapper as the CGI, which redirects ikiwiki's error output to /dev/null, it works better.

The edit still fails to commit, because in my wiki, index.mdwn is pulled from the base wiki and somehow ikiwiki wants to change it rather that create it.

--[[JeremieKoenig]]

If thttpd and mini-httpd interpret CGI's stderr as stdout, then they're not properly following the CGI spec, and will break with tons of cgi scripts besides ikiwiki. And of course there are many many cases where ikiwiki might output to stderr, and that's the right thing to do. So I don't see any way to address this in ikiwiki. --[[Joey]]

(reported as [[!debbug 437927]] and [[!debbug 437932]]) --[[JeremieKoenig]]

Marking [[done]] since it's not really an ikiwiki bug. --[[Joey]]


I'm getting some odd behaviour with boa. When I edit a page and click "Save Page", the URL I get taken to produces a 403 - Forbidden error until I recompile the wiki. For example, after editing the root page of the wiki it brings me back to http://localhost/~pdw/iki/?updated, and I see a 403 error message. Then, if I open up a terminal and type ikiwiki --setup ikiwiki.setup, and then go back to the browser and hit Ctrl-R, the page displays correctly, with the same URL that gave an error a moment ago. This is with boa 0.94.14rc21-3 and Firefox 3.0.11 on Ubuntu 9.04. I get the feeling I'm doing something wrong somewhere; any suggestions where to start looking? This is a very basic setup, so feel free to ask. --Paul

Tried setting up a git repository back-end for the wiki, in case the post-update hook caused the right updates to happen; it didn't. (But I do now have my wiki in git!)

Turns out that .../destdir/index.html was being recreated after a web edit, or at least having its permissions modified, and being left without world-read permissions. Boa was then rightly refusing to serve the page. Adding the umask 022 config option to ikiwiki.setup fixed everything, and all appears to be working fine now. --Paul.

Since others seem to have gotten ikiwiki working with boa, I'm guessing that this is not a generic problem with boa, but that your boa was started from a shell that had an unusual umask and inherited that. --[[Joey]]

(I'm new to wiki etiquette - would it be more polite to leave these details on the wiki, or to remove them and only leave a short summary? Thanks. --Paul)

Well, I just try to keep things understandable and clear, whether than means deleting bad old data or not. That said, this page is a bug report, that was already closed. It's generally better to open a new bug report rather than edit an old closed one. --[[Joey]]