Building apache and mod_perl, was: Re: Fwd: Re: [bndfc-web-tech] Burngreave Development Server
Alan Dawson
aland at burngreave.net
Wed Jul 28 00:11:33 BST 2004
Quoting Chris Croome <chris at webarchitects.co.uk>:
> Hi
>
> On Fri 23-Jul-2004 at 01:04:29PM +0100, Chris Croome wrote:
> >
> > Bruno has written a MKDoc / apache 1.3 install doc -- is it on the
> > web somewhere?
>
> Hmm, there doesn't seem to be,
There are some reasonable instructions in the mkdoc tarball.
I have a nicely functioning server and a semi fuctioning mkdoc installation.
The style sheet is only applied inconsistently.. in that I have to refresh the
browser several times before it looks ok. Also there are many 500 server
errors.
users_error_log says
"SOFTWARE_ERROR
$VAR1 = {
'SCRIPT_NAME' => '',
'MKD__CACHE_DIR' =>
'/var/www/mkdoc/mkdoc-1.6.26/messenger-dev.aph/cache',
'PATH_INFO' => '/need-to-sleep/.admin.content',
'REQUEST_METHOD' => 'GET',
'HTTP_ACCEPT' =>
'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1',
'SCRIPT_FILENAME' => '/var/www/mkdoc/mkdoc-1.6.26/cgi/mkdoc.cgi',
'SERVER_SOFTWARE' => 'Apache/1.3.29 (Debian GNU/Linux) mod_perl/1.29',
'MKD__PLUGIN_LIST' => '/var/www/mkdoc/mkdoc-1.6.26/conf/users.conf',
'AUTH_TYPE' => 'Basic',
'QUERY_STRING' => '',
'REMOTE_PORT' => '33148',
'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6)
Gecko/20040114',
'SERVER_SIGNATURE' => '<ADDRESS>Apache/1.3.29 Server at
users.messenger-dev.aph Port 80</ADDRESS>
',
'HTTP_ACCEPT_LANGUAGE' => 'en-us,en;q=0.5',
'SITE_DIR' => '/var/www/mkdoc/mkdoc-1.6.26/messenger-dev.aph',
'HTTP_KEEP_ALIVE' => '300',
'PERL5LIB' => '/var/www/mkdoc/mkdoc-1.6.26',
'PATH' => '/bin:/usr/bin:/sbin:/usr/sbin',
'GATEWAY_INTERFACE' => 'CGI-Perl/1.1',
'MKDOC_DIR' => '/var/www/mkdoc/mkdoc-1.6.26',
'DOCUMENT_ROOT' => '/var/www',
'PATH_TRANSLATED' =>
'/var/www/mkdoc/mkdoc-1.6.26/cgi/mkdoc.cgi/need-to-sleep/.admin.content',
'SERVER_NAME' => 'users.messenger-dev.aph',
'HTTP_REFERER' => 'http://users.messenger-dev.aph/.admin.new',
'SERVER_ADMIN' => 'admin at messenger-dev.aph',
'PERL_SEND_HEADER' => 'On',
'HTTP_ACCEPT_ENCODING' => 'gzip,deflate',
'HTTP_CONNECTION' => 'keep-alive',
'USER_DOMAIN' => 'http://users.messenger-dev.aph/',
'HTTP_ACCEPT_CHARSET' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
'REMOTE_USER' => 'aland',
'SERVER_PORT' => '80',
'PUBLIC_DOMAIN' => 'http://www.messenger-dev.aph/',
'REMOTE_ADDR' => '10.10.2.66',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'MKD__TIDY' => '/var/www/mkdoc/mkdoc-1.6.26/tools/whitelist.sh',
'REQUEST_URI' => '/need-to-sleep/.admin.content',
'SERVER_ADDR' => '10.10.2.66',
'HTTP_HOST' => 'users.messenger-dev.aph',
'MOD_PERL' => 'mod_perl/1.29'
};
[PETAL ERROR] Can't locate object method "type" via package "flo::editor::Html"
at /var/www/mkdoc/mkdoc-1.6.26/flo/Editor.pm line 53.
. Debug info written in /tmp/petal_debug.838.1090997417.lcuxlhevap. at
/usr/local/share/perl/5.8.3/Petal.pm line 473.
[Wed Jul 28 07:50:17 2004] [error] Undefined subroutine
&MKDoc::Handler::Authenticate::handler called.\n
"
the debug info is
"messenger-dev:~# cat /tmp/petal_debug.838.1090997417.lcuxlhevap
Error: Can't locate object method "type" via package "flo::editor::Html" at
/var/www/mkdoc/mkdoc-1.6.26/flo/Editor.pm line 53.
Petal object dump:
==================
$VAR1 = bless( {
'language' => 'en',
'file' => 'admin/content/en.html'
}, 'Petal' );
Stack trace:
============
at /usr/local/share/perl/5.8.3/Petal.pm line 373
Petal::process('Petal=HASH(0x9761668)','self','flo::plugin::Admin::Content=HASH(0x976081c)','__input__','XML','__output__','XHTML')
called at /var/www/mkdoc/mkdoc-1.6.26/flo/Plugin.pm line 606
flo::Plugin::render('flo::plugin::Admin::Content=HASH(0x976081c)','self','flo::plugin::Admin::Content=HASH(0x976081c)','__input__','XML','__output__','XHTML')
called at /var/www/mkdoc/mkdoc-1.6.26/flo/Plugin.pm line 557
flo::Plugin::render_http('flo::plugin::Admin::Content=HASH(0x976081c)','self','flo::plugin::Admin::Content=HASH(0x976081c)','__input__','XML','__output__','XHTML')
called at ../flo/plugin/Admin/Content.pm line 67
flo::plugin::Admin::Content::http_get('flo::plugin::Admin::Content=HASH(0x976081c)')
called at /var/www/mkdoc/mkdoc-1.6.26/flo/Plugin.pm line 206
flo::Plugin::run('flo::plugin::Admin::Content=HASH(0x976081c)') called
at /var/www/mkdoc/mkdoc-1.6.26/flo/Plugin.pm line 166
flo::Plugin::main('flo::plugin::Admin::Content') called at
/var/www/mkdoc/mkdoc-1.6.26/MKDoc.pm line 82
MKDoc::main() called at /var/www/mkdoc/mkdoc-1.6.26/MKDoc.pm line 50
MKDoc::process('MKDoc') called at
/var/www/mkdoc/mkdoc-1.6.26/cgi/mkdoc.cgi line 16
eval {...} called at /var/www/mkdoc/mkdoc-1.6.26/cgi/mkdoc.cgi line 16
Apache::ROOTusers_2emessenger_2ddev_2eaph::handler('Apache=SCALAR(0x97b6248)')
called at /usr/lib/perl5/Apache/Registry.pm line 149
eval {...} called at /usr/lib/perl5/Apache/Registry.pm line 149
Apache::Registry::handler('Apache=SCALAR(0x97b6248)') called at
/dev/null line 0
eval {...} called at /dev/null line 0
Template perl code dump:
========================
1. $VAR1 = sub {
2. my $hash = shift;
3. my $res = "";
4. local $^W = 0;
5. $res .= "\<\!DOCTYPE\ html\ PUBLIC\
6. \ \ \"\-\/\/W3C\/\/DTD\ XHTML\ 1\.0\ Transitional\/\/EN\"\
7. \ \ \"http\:\/\/www\.w3\.org\/TR\/xhtml1\/DTD\/xhtml1\-transitional\.dtd\"\
8. \>\
9. \
10. ";
11. $res .= do {
12. my $res = $hash->get_encoded ('set: uri
self/uri');
13. (defined $res) ? $res : "";
14. };
15. $res .= "";
16. $res .= do {
17. my $res = $hash->get_encoded ('set: title
string:Modify the Content of ${self/title}');
18. (defined $res) ? $res : "";
19. };
20. $res .= "";
21. $res .= do {
22. my $res = $hash->get_encoded ('set: dir
self/direction');
23. (defined $res) ? $res : "";
24. };
25. $res .= "";
26. $res .= do {
27. my $res = $hash->get_encoded ('set: align
self/align');
28. (defined $res) ? $res : "";
29. };
30. $res .= "";
31. $res .= do {
32. my $res = $hash->get_encoded ('set: document_uri
self/parent/uri');
33. (defined $res) ? $res : "";
34. };
35. $res .= "";
36. $res .= do {
37. my $res = $hash->get_encoded ('set: document_title
self/parent/title');
38. (defined $res) ? $res : "";
39. };
40. $res .= "";
41. $res .= do {
42. my $res = $hash->get_encoded ('set: document_lang
self/parent/lang');
43. (defined $res) ? $res : "";
44. };
45. $res .= "\<html\ xmlns\=\"http\:\/\/www\.w3\.org\/1999\/xhtml\"\ ";
46. {
47. my $value = $hash->get_encoded ('lang');
48. if (defined($value)) {
49. $res .= "lang=\"$value\""
50. }
51. }
52. $res .= "\ ";
53. {
54. my $value = $hash->get_encoded ('lang');
55. if (defined($value)) {
56. $res .= "xml:lang=\"$value\""
57. }
58. }
59. $res .= "\ ";
60. {
61. my $value = $hash->get_encoded ('dir');
62. if (defined($value)) {
63. $res .= "dir=\"$value\""
64. }
65. }
66. $res .= "\>\
67. \
68. \
69. ";
70. $res .= do {
71. do {
72. my $new_hash = $hash->new();
73. $new_hash->{__included_from__} = 'admin/content/en.html';
74. my $res = eval { Petal->new (file => '/fragments/head_admin/',
lang => 'en')->process ($new_hash) };
75. $res = "<!--\n$@\n-->" if (defined $@ and $@);
76. $res;
77. } || '';
78. };
79. $res .= "\
80. \ \ \
81. \ \ \<body\ ";
82. {
83. my $value = $hash->get_encoded ('lang');
84. if (defined($value)) {
85. $res .= "lang=\"$value\""
86. }
87. }
88. $res .= "\ ";
89. {
90. my $value = $hash->get_encoded ('lang');
91. if (defined($value)) {
92. $res .= "xml:lang=\"$value\""
93. }
94. }
95. $res .= "\ ";
96. {
97. my $value = $hash->get_encoded ('dir');
98. if (defined($value)) {
99. $res .= "dir=\"$value\""
100. }
101. }
102. $res .= "\>\
103. \
104. \ \ \ \ ";
105. $res .= do {
106. do {
107. my $new_hash = $hash->new();
108. $new_hash->{__included_from__} = 'admin/content/en.html';
109. my $res = eval { Petal->new (file => '/fragments/admin/', lang
=> 'en')->process ($new_hash) };
110. $res = "<!--\n$@\n-->" if (defined $@ and $@);
111. $res;
112. } || '';
113. };
114. $res .= "\
115. \
116. \ \ \ \ \<div\ class\=\"admin\-content\"\>\
117. \ \ \ \ \ \ \<h1\ ";
118. {
119. my $value = $hash->get_encoded ('align');
120. if (defined($value)) {
121. $res .= "align=\"$value\""
122. }
123. }
124. $res .= "\ lang\=\"en\"\ xml\:lang\=\"en\"\ dir\=\"ltr\"\>";
125. $res .= do {
126. my $res = $hash->get_encoded ('title');
127. (defined $res) ? $res : "";
128. };
129. $res .= "\<\/h1\>\
130. \
131. \
132. \ \ \ \ \ \ \<form\ accept\-charset\=\"UTF\-8\"\
enctype\=\"multipart\/form\-data\"\ ";
133. {
134. my $value = $hash->get_encoded ('self/uri');
135. if (defined($value)) {
136. $res .= "action=\"$value\""
137. }
138. }
139. $res .= "\ method\=\"post\"\>\
140. \ \ \ \ \ \ \ \ \<p\ ";
141. {
142. my $value = $hash->get_encoded ('align');
143. if (defined($value)) {
144. $res .= "align=\"$value\""
145. }
146. }
147. $res .= "\ lang\=\"en\"\ class\=\"en\"\ xml\:lang\=\"en\"\
dir\=\"ltr\"\>\
148. \ \ \ \ \
149. \ \ \ \ \ \ \ \ \ \ \ Edit\ and\ add\ components\ as\ required\ and\ then\
150. \ \ \ \ \ \ \ \ \ \ \<input\ value\=\"Save\ Changes\"\ name\=\"submit_ok\"\
title\=\"Make\ these\ modifications\ to\ the\ content\ of\ ";
151. $res .= do {
152. my $res = $hash->get_encoded ('self/title');
153. (defined $res) ? $res : "";
154. };
155. $res .= "\"\ type\=\"submit\"\ \/\>\
156. \ \ \ \ \ \ \ \ \ \ \ \.\
157. \ \ \ \ \ \ \ \ \<\/p\>\
158. \ \ \ \ \
159. \ \ \ \ \ \ \ \ ";
160. $res .= do {
161. do {
162. my $new_hash = $hash->new();
163. $new_hash->{__included_from__} = 'admin/content/en.html';
164. my $res = eval { Petal->new (file => '/error/', lang =>
'en')->process ($new_hash) };
165. $res = "<!--\n$@\n-->" if (defined $@ and $@);
166. $res;
167. } || '';
168. };
169. $res .= "\
170. \ \ \ \ \
171. \ \ \ \ \ \ \ \ ";
172. $res .= do {
173. my $res = $hash->get_encoded ('structure self/editor/edit');
174. (defined $res) ? $res : "";
175. };
176. $res .= "\
177. \ \ \ \ \
178. \ \ \ \ \ \ \ \ \<p\ ";
179. {
180. my $value = $hash->get_encoded ('align');
181. if (defined($value)) {
182. $res .= "align=\"$value\""
183. }
184. }
185. $res .= "\>\
186. \ \ \ \ \
187. \ \ \ \ \ \ \ \ \ \ \<input\ value\=\"Save\ Changes\"\ name\=\"submit_ok\"\
title\=\"Make\ these\ modifications\ to\ the\ content\ of\ ";
188. $res .= do {
189. my $res = $hash->get_encoded ('self/title');
190. (defined $res) ? $res : "";
191. };
192. $res .= "\"\ type\=\"submit\"\ \/\>\
193. \ \ \ \ \
194. \ \ \ \ \ \ \ \ \<\/p\>\
195. \ \ \ \ \ \ \ \ \<input\ ";
196. {
197. my $value = $hash->get_encoded ('self/editor/count');
198. if (defined($value)) {
199. $res .= "value=\"$value\""
200. }
201. }
202. $res .= "\ name\=\"component_count\"\ type\=\"hidden\"\ \/\>\
203. \ \ \ \ \ \ \<\/form\>\
204. \ \ \ \ \<\/div\>\
205. \ \ \<\/body\>\
206. \<\/html\>";
207. return $res;
208. };messenger-dev:~#
"
I'm running Debian Sarge, Apache 1.3.29, Mkdoc 1.3.26.
Apache Modules.conf looks like
"messenger-dev:~# cat /etc/apache/modules.conf
# Autogenerated file - do not edit!
# This file is maintained by the apache package.
# To update it, run the command:
# /usr/sbin/modules-config apache
ClearModuleList
AddModule mod_so.c
AddModule mod_macro.c
LoadModule vhost_alias_module /usr/lib/apache/1.3/mod_vhost_alias.so
LoadModule env_module /usr/lib/apache/1.3/mod_env.so
LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so
LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so
LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so
LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so
LoadModule status_module /usr/lib/apache/1.3/mod_status.so
LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so
LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so
LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so
LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so
LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so
LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so
LoadModule access_module /usr/lib/apache/1.3/mod_access.so
LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so
LoadModule anon_auth_module /usr/lib/apache/1.3/mod_auth_anon.so
LoadModule dbm_auth_module /usr/lib/apache/1.3/mod_auth_dbm.so
LoadModule db_auth_module /usr/lib/apache/1.3/mod_auth_db.so
LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so
LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so
LoadModule sys_auth_module /usr/lib/apache/1.3/mod_auth_sys.so
LoadModule perl_module /usr/lib/apache/1.3/mod_perl.so
LoadModule cookie_auth_module /usr/lib/apache/1.3/mod_auth_cookie.so
LoadModule inst_auth_module /usr/lib/apache/1.3/mod_auth_inst.so
LoadModule plain_auth_module /usr/lib/apache/1.3/mod_auth_plain.so
"
The following perl modules are installed.. fresh from CPAN so they should be
current.. (except for Date::Manip which I could only find 5.42a, and
Image::Magick which was downloaded and installed manually.
"messenger-dev:~# cat /root/downloads/mkdoc/mkdoc-1.6.26/MODULES.TXT
# -----------------------------------------------------------------------------
# Required Perl Modules
# -----------------------------------------------------------------------------
#
# In order for MKDoc to work properly, you need to install the following
# list of modules on your server.
#
# -----------------------------------------------------------------------------
# Basic stuff
CGI 2.93
Encode 1.97
# Text, HTML & XML processing:
XML::Parser
XML::RSS 0.97
Petal 0.93
MKDoc::Text::Structured 0.3
# Unicode related:
Text::Unidecode 0.04
Unicode::String 2.06
Unicode::Normalize 0.17
# Database related:
DBI
DBD::mysql
# Mail related:
Mail::IMAPClient 2.2.0
MIME::Base64
# Time & Date manipulation:
Date::Manip v5.52
Time::ParseDate
# Image manipulation:
Image::Magick v5.48
# Cache management
Cache::Cache 1.01
# HTML Tidy extension
MKDoc::XML 0.69
Getopt::Declare
# Ecommerce
Digest::MD5
Petal::Mail
MKDoc::Control_List
Geography::Countries
#
# Note
# ----
# Makefile.PL processes this file to build a list of required modules.
# Any un-commented line will be parsed for module names.
# If a module is optional, enclose it in square braces like [this].
# -- The MKDoc Development Team
#
"
--
"The long revolution is creating small federated microsocieties, true guerilla
cells practising and fighting for this self-management. Effective radicality
authorises all variations and guarantees every freedom. "
More information about the bndfc-web-tech
mailing list