I'm more a webjack-of-all-trades than a webmaster, and
I added mod_perl to my apache installation specifically
to get LXR running. I think I followed the INSTALL
instructions to a T, but when I point my browser at
http://www.SchemaMania.org/lxr/source, I get no joy (as
you can see).
I don't know how to test my installation. I can't tell
if mod_perl is OK and LXR needs tweaking, or if swish-e
is the problem, or what. I do see a bunch of data in
the MySQL tables, and genxref had no complaints (but I
wish its chatty output would go to stdout instead of
stderr. That would make errors easier to see. )
The apache log just shows:
File does not exist:
/usr/local/website/DocumentRoot/lxr/source
Which is quite true; there's no file/directory by that
name. Should there be?
If you'd followed the directions carefully and saw no
"source" document on a new setup, what would you look
at next?
Thank you,
--jkl
Logged In: YES
user_id=215386
My guess would be that you need to configure the lxr
directory in httpd.conf. You should have a directive in
there that looks something like:
Alias /lxr/ "/home/lxr/lxr/"
Alias /lxr "/home/lxr/lxr/source"
<Directory "/home/lxr/lxr">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
This aliases the /lxr URL to the directory in which the lxr
files live, and then sets up permissions for that directory.
You can skip the Alias section if there is some other path
to the files.
Malcolm
Logged In: YES
user_id=350488
Malcom, thanks for the reply. I tried to follow your
advice.
No joy, however. In the interest of clarity, I've appended
most of the configuration information below.
An offer: I will write better documentation. I know how,
see http://www.freetds.org/userguide/
I found the INSTALL file a bit terse, hard to know how
everything ties together. This despite the fact that I've
been using perl for years.
If someone could help me get off the ground, I'm sure I
could add an installation guide to your documentation.
Many thanks for your help. Configuration information
follows.
--jkl
That section of my httpd.conf looks like this:
[httpd.conf]
DocumentRoot "/usr/local/website/DocumentRoot"
Alias /lxr/ "/usr/local/website/DocumentRoot/lxr/"
Alias /lxr "/usr/local/website/DocumentRoot/lxr/source"
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /usr/local/website/DocumentRoot/lxr>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
[ end httpd.conf ]
and the top of my lxr.conf, stripped of comments, like this
[lxr.conf]
'swishindex' => '/usr/local/bin/swish-e',
'swishsearch' => '/usr/local/bin/swish-e',
'ectagsbin' => '/usr/bin/ctags',
'tmpdir' => '/tmp',
'genericconf' =>
'/usr/pkg/lib/perl5/site_perl/5.6.1/i386-netbsd/LXR/Lang/generic.conf'
},
{
'baseurl' => 'http://www.schemamania.org/lxr',
# Put your URL here
'virtroot' => '/lxr', # The
bit after the / above
'variables' => {
'v' => {'name' => 'Version',
'range' => [qw(freetds)],
'default' => 'freetds'},
'a' => {'name' => 'Architecture',
'range' => [qw(i386 alpha arm
m68k mips ppc sparc sparc64)]},
},
'maps' => {
'/include/asm[^\/]*/' => '/include/asm-$a/',
'/arch/[^\/]+/' => '/arch/$a/',
},
'htmlhead' => 'html-head.html',
'htmltail' => 'html-tail.html',
'htmldir' => 'html-dir.html',
'htmlident' => 'html-ident.html',
'sourcehead' => 'html-head.html',
'sourcedirhead' => 'html-head.html',
'stylesheet' => 'lxr.css',
'sourceroot' =>
'/usr/local/website/DocumentRoot/projects/freetds',
'sourcerootname' => 'freetds',
'dbname' => 'dbi:mysql:lxr;host=sandbox',
'swishdir' => '/usr/local/swish-e/',
'incprefix' => ['/usr/include',
'/usr/local/website/DocumentRoot/projects/freetds/include'],
[end lxr.conf]
Logged In: YES
user_id=215386
Hi,
The offer of better documentation is very welcome - you're
not the only person to comment that the current INSTALL
guide leaves something to be desired.
The error I get when I visit the URL you gave is "404 Not
Found", which means to me that apache isn't able to see that
directory/file successfully. Check your error_log to see
what file it is that Apache is trying to serve. If it's the
right one, then check that the permissions are right on the
directory - ie that the user that apache runs at has r-x
permissions on the directory, and r-x on the scripts.
I don't think this is your mod_perl setup - you'd be getting
a different error message if Apache had found the files and
was having problems with mod_perl.
Random thought 3: I've never tried using Alias to map a
directory to where it would be anyway. In your config, the
lxr directory is available directly under the DocRoot, so
there may be no need to have the Alias directives. Chopping
them might help.
So I suggest the following diagnostic procedure:
1. Rename /usr/local/website/DocumentRoot/lxr/ to something
else.
2. Remove the Alias lines from httpd.conf
3. mkdir /usr/local/website/DocumentRoot/lxr/
4. See if you can see it via http://..../lxr
5. If the error is still 404 Not Found, then restart Apache
- your config is hosed
6. If the error is Denied, then setup permissions correctly
7. Keep going till Apache will show you the directory
(optionally put a HTML file in there and make sure you can
see that too).
8. Move the lxr files back into
/usr/local/website/DocumentRoot/lxr/
9. See if Apache will serve them
At the moment the problem you're running into is Apache and
its config, not mod_perl or lxr specifically, at least as
far as I can tell.
Let me know how you get on.
Cheers,
Malcolm