[Lxr-general] Correct path to access index result?
Brought to you by:
ajlittoz
|
From: Ulf S. <ulf...@er...> - 2016-05-30 07:42:28
|
Have finally got a web page up with LXR-2.1.0, but no useable contents.
Generated an index for the project "vlmctrl" located in
/home/eulfsam/projects/LXR/vlmctrl
Databases in /etc/local/db/glimpse
./scripts/configure-lxr.pl -vv # Documentation is no longer correct.
./custom.d/initdb.sh
cp custom.d/lxr.conf .
./genxref --url=http://localhost/lxr --version=vlmctrl
./genxref --url=http://localhost/lxr --version=v1
sudo a2enconf apache-lxrserver.conf
sudo a2dismod mpm*
sudo apt-get install apache2-mpm-worker
sudo a2enmod mpm_worker
# Version not available in Ubuntu 14.04
/etc/init.d/apache2 restart
The LXR web page comes up at "http://localhost/lxr/source/lxr/",
and there is a link "vlmctrl", but nothing happens when I click on it.
This is not surprising since the link point at itself.
I have tried
* http://localhost/lxr => Forbidden
* http://localhost/lxr/source => Perl source code
* http://localhost/lxr/source/lxr => Seems to be the correct web page,
with appropriate menus, and a drop down list where I can select vlmctrl,
but when selecting "vlmctrl", nothing happens.
There is a "vlmctrl" link, which points at the same page.
There is a red error message:
/The directory / does not exist, is empty or is hidden by an exclusion
rule./
So what is supposed to be the correct link to access the tree?
I enclose the setup.
==================================================================================
lxr.conf
# -*- mode: perl -*-
# LXR master configuration file
#
(
################################
# Global configuration section #
################################
{
#
# Master mode (where to find the tree name) #
#===========================================#
# Possible values are:
# - 'single' single-tree context, no tree name (implicit)
# - 'host' one host per tree
# - 'prefix' generic host prefixed with tree name
# - 'section' one section per tree (to be handled through symbolic
# links or duplication)
# - 'embedded' tree name embedded in section path
# - 'argument' first argument is tree name [PREFERRED]
# CAUTION!
# Changing this parameter after initial configuration may
# require adjustements to other parameters!
'routing' => 'argument'
# Auxiliary tools subsection #
#============================#
, 'tmpdir' => '/tmp'
, 'glimpsebin' => '/usr/local/bin/glimpse'
, 'glimpseindex' => '/usr/local/bin/glimpseindex'
, 'glimpsedirbase' => '/usr/local/db/glimpse'
#@U , 'swishbin' => '%swish%'
#@U , 'swishdirbase' => '%swishdirbase%'
, 'swishconf' => '/usr/local/share/lxr/templates/swish-e.conf'
, 'ectagsbin' => '/usr/bin/ctags'
, 'ectagsconf' => '/usr/local/share/lxr/templates/ectags.conf'
, 'cvspath' => '/bin:/usr/local/bin:/usr/bin:/usr/sbin'
, 'gitpath' => '/bin:/usr/local/bin:/usr/bin:/usr/sbin'
, 'hgpath' => '/bin:/usr/local/bin:/usr/bin:/usr/sbin'
, 'svnpath' => '/bin:/usr/local/bin:/usr/bin:/usr/sbin'
# Path to "magic" file to guess file content
# CAUTION!
# This is a Fedora path; may be different under
# other distributions.
# # # BUG # # #
# A bug in File::MMagic version 1.27 prevents from using this
# system magic file because it starts with a newline.
# Parameter is commented out. Your alternate choice is:
# 1) remove the initial offending empty lines,
# 2) use another file without initial blank lines,
# 3) default to the old magic file shipping with the release,
# 4) work without any magic file to revert to internal tables.
# , 'magicmime' => '/usr/share/misc/magic'
# Computer DNS names subsection #
#================================
, 'host_names' => [ 'http://localhost'
# Put here aliases for host name, such as
# , '//localhost'
# , 'https://192.168.1.1'
# , 'http://mycomputer.outside.domain:12345'
]
# HTML subsection #
#=================#
# All paths in this subsection are relative to LXR root directory
# Templates used for headers and footers
, 'htmlfatal' => '/usr/local/share/lxr/templates/html/html-fatal.html'
, 'htmlhead' => '/usr/local/share/lxr/templates/html/html-head-btn.html'
, 'htmltail' => '/usr/local/share/lxr/templates/html/html-tail.html'
, 'htmldir' => '/usr/local/share/lxr/templates/html/html-dir-indexing.html'
# If you do not need the "last indexed" column in directory
# display (e.g. for a stable unchanging tree), erase the
# '-indexing' suffix above.
, 'htmlident' => '/usr/local/share/lxr/templates/html/html-ident.html'
, 'htmlsearch' => '/usr/local/share/lxr/templates/html/html-search-glimpse.html'
, 'htmlconfig' => '/usr/local/share/lxr/templates/html/html-config.html'
# htmlhead and htmltail can be customised for the various
# LXR operations. Just replace html by source (listing file),
# sourcedir (displaying directory), diff (difference markup),
# ident (identifier search), search (free-text search)
# as below (which changes nothing):
# , 'sourcehead' => '/usr/local/share/lxr/templates/html/html-head.html'
# , 'sourcedirhead' => '/usr/local/share/lxr/templates/html/html-head.html'
# showconfig script is a bit special since "version" has
# no meaning for it. Better to wipe out the 'variables' selection
# links with an adequate header:
, 'showconfighead' => '/usr/local/share/lxr/templates/html/config-head-btn-smaller.html'
# Default character width of left version (for diff)
, 'diffleftwidth' => 50
# Default identifier search constraint (for ident)
# , 'identdefonly' => 1
# CSS style sheet
, 'stylesheet' => 'templates/lxr.css'
, 'alternate_stylesheet' => [ 'templates/classic.css' ]
# Default character encoding
, 'encoding' => 'utf-8'
# File management subsection #
#============================#
# Which files should be excluded from indexing (and display).
, 'ignorefiles' =>
'^\\.|~$|\\.(o|a|orig)$|^CVS$|^core$'
# Which extensions to treat as images when browsing. If a file is an image,
# it is displayed.
, 'graphicfile' =>
'bitmap|bmp|gif|icon?|jp2|jpe?g|pjpe?g|png|svg|tiff?|xbm|xpm'
# Which file extensions are associated with which icon
# Below is an example using 'Oxygen' theme available with KDE
# small-icons/ is a symbolic link to
# /usr/share/icons/oxygen/22x22/
# (This location is valid for Fedora distributions,
# check for others)
# , 'iconfolder' => 'small-icons/'
# Don't forget the final / above.
# , 'icons' =>
# { '[gm]?awk' => 'mimetypes/application-x-awk.png'
# , 'c|pc' => 'mimetypes/text-x-csrc.png'
# , 'h|hh' => 'mimetypes/text-x-chdr.png'
# , 'c\+\+|cc|cpp|cxx' => 'mimetypes/text-x-c++src.png'
# , 'hpp|hxx|h\+\+' => 'mimetypes/text-x-c++hdr.png'
# , 'java' => 'mimetypes/text-x-java.png'
# , 'js' => 'mimetypes/application-x-javascript.png'
# , 'ma?k' => 'mimetypes/text-x-makefile.png'
# , 'plx?|pm|perl' => 'mimetypes/application-x-perl.png'
# , 'php3?|phtml' => 'mimetypes/application-x-php.png'
# , 'py|python|px' => 'mimetypes/text-x-python.png'
# , 'sh|ba?sh|ksh|zsh|m4' => 'mimetypes/text-x-script.png'
# , 's?html?' => 'mimetypes/text-html.png'
# , 'css' => 'mimetypes/text-css.png'
# , 'p|pas' => 'mimetypes/text-x-pascal.png'
# , 'patch' => 'mimetypes/text-x-patch.png'
# , 'pdf' => 'mimetypes/application-pdf.png'
# , 'sql|pk(s|b)' => 'mimetypes/text-x-sql.png'
# , 'rb|ruby' => 'mimetypes/application-x-ruby.png'
# , 'txt' => 'mimetypes/text-plain.png'
# , 'ui' => 'mimetypes/text-xml.png'
# , '.*\~' => 'mimetypes/application-x-trash'
# }
# , 'graphicicon' => 'mimetypes/image-x-generic.png'
# , 'defaulticon' => 'mimetypes/unknown.png'
# , 'diricon' => 'mimetypes/inode-directory.png'
# , 'parenticon' => 'actions/go-up.png'
, 'filetypeconf' => '/usr/local/share/lxr/templates/filetype.conf'
, 'genericconf' => '/usr/local/share/lxr/lib/LXR/Lang/generic.conf'
# "Common factor" subsection #
#============================#
# In case your LXR installation controls several trees,
# put here what you consider common parameters between
# your source trees.
# A parameter is "common" if its value must be simultaneously
# adjusted in every tree.
# Virtual root shared by all trees (or hosts)
, 'virtroot' => '/lxr'
# Pattern for extracting tree name from URL, since all
# trees are usually served from the same physical server.
# Meaningful only in multiple trees context. Example for
# built-in method where tree id is last before script name
# , 'treeextract' => '([^/]*)/[^/]*$'
, 'dbuser' => 'lxr'
, 'dbpass' => 'lxrpw'
, 'dbprefix' => 'lxr_'
}
# ------------------------------------------------------------------------
###############################
# Tree configuration sections #
###############################
# ------------------------------------------------------------------------
, {
# Server configuration subsection #
#=================================#
'caption' => 'Linux Kernel'
, 'shortcaption' => 'Kernel'
, 'treename' => 'lxr'
# a link of the form (prefix)($filepath)(postfix) is generated when viewing a file
# example for cvsweb:
# , 'cvswebprefix' => 'http://cvs.myhost.com/cgi-bin/cvsweb.cgi'
# , 'cvswebpostfix' => '?cvsroot=rootname'
# example for viewcvs:
# , 'cvswebprefix' => 'http://cvs.myhost.com/cgi-bin/viewcvs.cgi/myroot'
# , 'cvswebpostfix' => ''
# Tree location subsection #
#==========================#
# sourceroot - where to get the source files from
, 'sourceroot' => '/home/eulfsam/projects/LXR'
# The string to display as the base part of every path in the tree
, 'sourcerootname' => '$v'
# Version selection subsection #
#==============================#
, 'variables' =>
# Define typed variable "v".
{ 'v' =>
{ 'name' => 'Version'
# This is the list of versions to index.
, 'range' => [qw(
vlmctrl
)]
# The default version to display
# If not specified, first in 'range' used
# , 'default' => 'v3.1'
}
# Other variables may be defined for use by rewrite rules
# in the subdirectory section.
# These variable definitions are needed for Linux kernel
# browsing. Read carefully the User's Manual.
# Alternately, use template lxrkernel.conf dedicated to kernel
# configuration.
}
# Subdirectory subsection #
#=========================#
# Tree-specific files to ignore (in every directory of the tree)
# Extend and uncomment the following copy of the global
# parameter to override:
# , 'ignorefiles' =>
# '^\\.|~$|\\.(o|a|orig)$|^CVS$|^core$'
# Directories to always ignore. These usually are the SCM's
# private directories which possibly may contain non-public
# project history. Note that .xxx directories are hidden
# by an internal hard-coded rule. Redundant example:
# , 'ignoredirs' => ['CVSROOT', 'CVS', '.git']
, 'ignoredirs' => [qw(
.git
)]
# Where to look for include files inside the sourcetree.
# This is used to hyperlink to included files. Example:
, 'incprefix' => [qw(
/include
/include/linux
)]
# These do funky things to paths in the system - you probably don't need them.
# They are used to simulate compiler behaviour to various options
# to rewrite short paths from (#)include statement and get the
# real "physical" path to the file.
# , 'maps' => # $a means substitute with current value of variable 'a'
# [ '/include/asm[^\/]*/' => '/include/asm-$a/'
# , '/arch/[^\/]+/' => '/arch/$a/'
# ],
# Having a fully functional set of 'incprefix'/'maps' directives
# for the kernel is not a trivial task. It requires defining many
# auxiliary variables which are dependent on the current development
# state of the kernel.
# Use template lxrkernel.conf.
# Data storage subsection #
#=========================#
# The DBI identifier for the database to use
# For MySQL, the format is dbi:mysql:dbname=<name>
# for Postgres, it is dbi:Pg:dbname=<name>;host=localhost
# for Oracle, it is dbi:Oracle:host=localhost;sid=DEVMMS;port=1521
# for SQLite, it is dbi:SQLite:dbname=<filename>
, 'dbname' => 'dbi:mysql:dbname=wrl60'
# If you need to specify the username or password for the database connection,
# uncomment the following two lines
# , 'dbuser' => 'lxr'
# , 'dbpass' => 'lxrpw'
# If you need multiple lxr configurations in one database, set different table
# prefixes for them.
# , 'dbprefix' => 'lxr_'
# The following two parameters are now automatically
# generated from 'glimpsedirbase' or 'swishdirbase' and
# 'virtroot'.
# They may nevertheless be overridden here by uncommenting
# them and filling-in an appropriate absolute path.
# For using glimpse, the directory to store the .glimpse files in is required
# , 'glimpsedir' => '/path/to/glimpse/databases'
# Location of swish-e index database files if using swish-e
# , 'swishdir' => '/path/to/swish/databases'
}
#@here_tree:
)
==================================================================================
.htaccess
#
# Web server configuration for LXR root directory
#
# Content of this file is independent of the location of
# the LXR root directory.
# Need for user-customization should be very limited.
# Eventually, access to LXR root directory can be relaxed.
# Default is very restrictive.
#
# Enable CGI script execution and use of symlinks
Options ExecCGI FollowSymlinks
<IfModule mod_version.c>
<IfVersion < 2.4>
Order deny,allow
</IfVersion>
</IfModule>
<IfModule !mod_version.c>
<IfModule !mod_authz_core.c>
Order deny,allow
</IfModule>
</IfModule>
# =================================================
#
# ----------- Access restrictions -----------
#
# Do not allow to list directories content
# NOTE: remove - sign when debugging LXR installation so that you
# can see what's really in the directories.
Options -Indexes
# Forbid direct access to any file in LXR root and its subdirectories
<FilesMatch ".">
<IfModule mod_version.c>
<IfVersion < 2.4>
Deny from all
</IfVersion>
<IfVersion >= 2.4>
Require all denied
</IfVersion>
</IfModule>
<IfModule !mod_version.c>
<IfModule !mod_authz_core.c>
Deny from all
</IfModule>
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
</IfModule>
</FilesMatch>
# But allow access to style sheets
<FilesMatch "\.css$">
<IfModule mod_version.c>
<IfVersion < 2.4>
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</IfModule>
<IfModule !mod_version.c>
<IfModule !mod_authz_core.c>
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</IfModule>
</FilesMatch>
# and graphic files (for icons)
<FilesMatch "\.(bmp|gif|icon?|jpe?g|png|svg|tiff?)$">
<IfModule mod_version.c>
<IfVersion < 2.4>
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</IfModule>
<IfModule !mod_version.c>
<IfModule !mod_authz_core.c>
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</IfModule>
</FilesMatch>
# =================================================
#
# ----------- LXR scripts configuration -----------
#
#
<Files ~ (search|source|ident|diff|showconfig)$>
<IfModule mod_version.c>
<IfVersion < 2.4>
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</IfModule>
<IfModule !mod_version.c>
<IfModule !mod_authz_core.c>
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</IfModule>
# Access granted to everybody
# *** mod_perl use ***
<IfModule mod_perl.c>
SetHandler perl-script
# Configuration parameters changed between mod_perl versions:
<IfDefine MODPERL2>
PerlOptions +ParseHeaders
# Apache can dispatch execution according to 2 modes.
# mod_perl initialization differs slightly:
<IfModule prefork.c>
PerlHandler ModPerl::RegistryPrefork
</IfModule>
<IfModule worker.c>
PerlHandler ModPerl::Registry
</IfModule>
</IfDefine>
<IfDefine !MODPERL2>
PerlSendHeader On
PerlHandler Apache::Registry
</IfDefine>
</IfModule>
# *** CGI use ***
<IfModule !mod_perl.c>
SetHandler cgi-script
</IfModule>
</Files>
==================================================================================
apache-lxrserver.conf
#
# LXR Apache server configuration
#
# =================================================
# ------- Port list -------
#
# (only if different from 80, 8080 or 443)
# NOTE: remove duplicate ports since they cause trouble
# and uncomment the remaining ones.
#@here_ports:
#@here_hosts:
# =================================================
#
# ------- URL mapping to LXR directory ------
#
Alias /lxr "/usr/local/share/lxr"
#@here_alias:
# =================================================
#
# ----------- Perl security checks -----------
#
# If these checks cause trouble (i.e. too many
# error or warning messages in Apach#
# LXR Apache server configuration
#
# =================================================
# ------- Port list -------
#
# (only if different from 80, 8080 or 443)
# NOTE: remove duplicate ports since they cause trouble
# and uncomment the remaining ones.
#@here_ports:
#@here_hosts:
# =================================================
#
# ------- URL mapping to LXR directory ------
#
Alias /lxr "/usr/local/share/lxr"
#@here_alias:
# =================================================
#
# ----------- Perl security checks -----------
#
# If these checks cause trouble (i.e. too many
# error or warning messages in Apache's error log),
# comment out the lines.
<IfDefine MODPERL2>
PerlSwitches -T
</IfDefine>
<IfDefine !MODPERL2>
PerlTaintCheck On
</IfDefine>
# =================================================
#
# ----------- LXR startup configuration -----------
#
# This is valid only for Apache 2.x
# Apache 1.x requires manual modification of Perl library.
# See LXR installation manual
<IfModule mod_version.c>
# Assume Apache 2.x and above since mod_version appeared in 2.0
# This is safer than using <IfVersion> since this tag
# causes an error with 1.x
# However, when this configuration file is parsed,
# mod_perl may not yet be loaded; consequently, the older
# directive is used. Happily, it is still recognised by newer
# versions of mod_perl.
<IfDefine MODPERL2>
# ----------------> absolute path to the LXR root directory
PerlPostConfigRequire /usr/local/share/lxr/custom.d/apache2-require.pl
</IfDefine>
<IfDefine !MODPERL2>
# ----------------> absolute path to the LXR root directory
PerlRequire /usr/local/share/lxr/custom.d/apache2-require.pl
</IfDefine>
</IfModule>
# =================================================
#
# ----------- LXR directory access -----------
#
# ----------------> absolute path to the LXR root directory
<Directory "/usr/local/share/lxr">
Options FollowSymLinks
AllowOverride AuthConfig FileInfo Limit Options
<IfModule mod_version.c>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</IfModule>
<IfModule !mod_version.c>
<IfModule !mod_authz_core.c>
Order allow,deny
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</IfModule>
</Directory>e's error log),
# comment out the lines.
<IfDefine MODPERL2>
PerlSwitches -T
</IfDefine>
<IfDefine !MODPERL2>
PerlTaintCheck On
</IfDefine>
# =================================================
#
# ----------- LXR startup configuration -----------
#
# This is valid only for Apache 2.x
# Apache 1.x requires manual modification of Perl library.
# See LXR installation manual
<IfModule mod_version.c>
# Assume Apache 2.x and above since mod_version appeared in 2.0
# This is safer than using <IfVersion> since this tag
# causes an error with 1.x
# However, when this configuration file is parsed,
# mod_perl may not yet be loaded; consequently, the older
# directive is used. Happily, it is still recognised by newer
# versions of mod_perl.
<IfDefine MODPERL2>
# ----------------> absolute path to the LXR root directory
PerlPostConfigRequire /usr/local/share/lxr/custom.d/apache2-require.pl
</IfDefine>
<IfDefine !MODPERL2>
# ----------------> absolute path to the LXR root directory
PerlRequire /usr/local/share/lxr/custom.d/apache2-require.pl
</IfDefine>
</IfModule>
# =================================================
#
# ----------- LXR directory access -----------
#
# ----------------> absolute path to the LXR root directory
<Directory "/usr/local/share/lxr">
Options FollowSymLinks
AllowOverride AuthConfig FileInfo Limit Options
<IfModule mod_version.c>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</IfModule>
<IfModule !mod_version.c>
<IfModule !mod_authz_core.c>
Order allow,deny
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</IfModule>
</Directory>
==================================================================================
/usr/local/db/glimpse$ ls -l
total 4
drwxrwxrwx 3 eulfsam rnd 4096 May 27 16:15 lxr
==================================================================================
~/projects/LXR $ ls
vlmctrl
~/projects/LXR $
--
Best Regards
Ulf Samuelsson
ulf...@er...
+46 722 427 437
|