response
[ikiwiki] / doc / bugs / CGI_problem_with_some_webservers.mdwn
1 The "ikwiki.cgi?page=index&do=edit" function has a problem
2 when running with [[!debpkg thttpd]] or [[!debpkg mini-httpd]]:
3 for some reason the headers ikiwiki outputs are transmitted
4 as the page content. Surprisingly, the "do=prefs" function
5 works as expected.
6
7 Here is what it looks like in iceweasel:
8
9     Set-Cookie: ikiwiki_session_apnkit=99dad8d796bc6c819523649ef25ea447; path=/
10     Date: Tue, 14 Aug 2007 17:16:32 GMT
11     Content-Type: text/html; charset=utf-8
12     
13     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
14      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
15     <html>
16     (...)
17
18 Ikiwiki runs fine with [[!debpkg boa]].
19
20 --[[JeremieKoenig]]
21
22 It doesn't work for signin either.
23 What is the reason for these "header => 1" in FormBuilder initialisations?
24 Why do they appear two times with conflicting values in the very same hashes?
25
26 --[[JeremieKoenig]]
27
28 > Clearly those duplicate header settings are a mistake. But in all cases, the
29 > `header => 0` came second, so it _should_ override the other value and
30 > can't be causing this problem. (cgi_signin only sets it to 0, too).
31
32 > What version of formbuilder are you using? If you run ikiwiki.cgi at the
33 > command line, do you actually see duplicate headers? I don't:
34
35         joey@kodama:~/html>REQUEST_METHOD=GET QUERY_STRING="page=index&do=edit" ./ikiwiki.cgi
36         Set-Cookie: ikiwiki_session_joey=41a847ac9c31574c1e8f5c6081c74d12; path=/
37         Date: Tue, 14 Aug 2007 18:04:06 GMT
38         Content-Type: text/html; charset=utf-8
39         
40         <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
41
42 > Do thttpd and mini-httpd perhaps not realize that Set-Cookis is the start of
43 > the headers? --[[Joey]]
44
45 >> Thanks for your help: I think I found the problem!
46 >> Ikiwiki outputs (in my case) the following
47 >> error message on stderr, followed by an empty line:
48
49     /srv/ikiwiki/wc/index.mdwn:  (Not a versioned resource)
50
51 >> Probably thttpd and mini-httpd read stderr as well as stdout, while apache
52 >> and boa don't. When using a shell-script wrapper as the CGI,
53 >> which redirects ikiwiki's error output to /dev/null, it works better.
54
55 >> The edit still fails to commit, because in my wiki, index.mdwn is
56 >> pulled from the base wiki and somehow ikiwiki wants to change it
57 >> rather that create it.
58
59 >> --[[JeremieKoenig]]
60
61 >>> If thttpd and mini-httpd interpret CGI's stderr as stdout, then
62 >>> they're not properly following the CGI spec, and will break with tons
63 >>> of cgi scripts besides ikiwiki. And of course there are many many cases
64 >>> where ikiwiki might output to stderr, and that's the right thing to do.
65 >>> So I don't see any way to address this in ikiwiki. --[[Joey]]
66
67 >>>> (reported as [[!debbug 437927]] and [[!debbug 437932]]) --[[JeremieKoenig]]
68
69 Marking [[done]] since it's not really an ikiwiki bug. --[[Joey]]
70
71 ----
72
73 I'm getting some odd behaviour with boa.  When I edit a page and click "Save
74 Page", the URL I get taken to produces a 403 - Forbidden error until I recompile
75 the wiki.  For example, after editing the root page of the wiki it brings me back to
76 `http://localhost/~pdw/iki/?updated`, and I see a 403 error message.  Then, if
77 I open up a terminal and type `ikiwiki --setup ikiwiki.setup`, and then go back
78 to the browser and hit Ctrl-R, the page displays correctly, with the same URL
79 that gave an error a moment ago.  This is with boa 0.94.14rc21-3 and Firefox
80 3.0.11 on Ubuntu 9.04.  I get the feeling I'm doing something wrong somewhere;
81 any suggestions where to start looking?  This is a very basic setup, so feel
82 free to ask. --Paul
83
84 Tried setting up a git repository back-end for the wiki, in case the `post-update`
85 hook caused the right updates to happen; it didn't.  (But I do now have my wiki
86 in git!)
87
88 Turns out that `.../destdir/index.html` was being recreated after a web edit, or
89 at least having its permissions modified, and being left without world-read
90 permissions.  Boa was then rightly refusing to serve the page.  Adding the
91 `umask 022` config option to `ikiwiki.setup` fixed everything, and all
92 appears to be working fine now.  --Paul.
93
94 > Since others seem to have gotten ikiwiki working with boa, 
95 > I'm guessing that this is not a generic problem with boa, but that
96 > your boa was started from a shell that had an unusual umask and inherited
97 > that. --[[Joey]] 
98
99 (I'm new to wiki etiquette - would it be more polite to leave these details on the
100 wiki, or to remove them and only leave a short summary?  Thanks.  --Paul)
101
102 > Well, I just try to keep things understandable and clear, whether than
103 > means deleting bad old data or not. That said, this page is a bug report,
104 > that was already closed. It's generally better to open a new bug report
105 > rather than edit an old closed one. --[[Joey]]