LINUX.ORG.RU

помогите донастроить LXR


0

1

привет.

для своих нужд установил и почти настроил LXR. конкретно, выполнил все до настройки web-сервера(http://lxr.sourceforge.net/en/1-0-InstallSteps/1-0-install5server.shtml). и тут я запутался %)

у меня установлен апатч2. директории '/etc/httpd/conf.d/' не существовало. создал. закинул в нее 'apache-lxrserver.conf'. файл проверил. вроде все валидно. перезапускаю апатч2 - стартует. при попытке открыть liveworkspace.org/lxr/gcc-4.7.0, получаю 404.

что делать дальше - не знаю.

благодарен.

★★★

Последнее исправление: niXman (всего исправлений: 1)
Ответ на: комментарий от niXman

Т.е. модуль подключен. Мой тестовый конфиг рабочий

<VirtualHost *:80>
	ServerAdmin webmaster@localhost

	DocumentRoot /var/www
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>

	AliasMatch ^/lxr/[^/]+/(.*) "/usr/local/share/lxr/$1"
#	Alias /lxr/ "/usr/local/share/lxr/"
	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Все работает (кроме перла который я не подключал).

at ★★
()
Ответ на: комментарий от stevejobs

Нет. Утилитка осталась со времен совместного использования первого и второго апача, где надо было прописывать по своему. Используется в основном в posinstall пакета, которому надо сконфигурировать апач.

at ★★
()
Ответ на: комментарий от at

ну вот как оно у меня выглядит:

<VirtualHost 89.149.223.110:80>
	ServerName liveworkspace.org
	DocumentRoot /var/www/nixman/data/www/liveworkspace.org
	SuexecUserGroup nixman nixman 
	CustomLog /var/www/httpd-logs/liveworkspace.org.access.log combined
	ErrorLog /var/www/httpd-logs/liveworkspace.org.error.log
	ServerAlias www.liveworkspace.org
	AliasMatch ^/lxr/[^/]+/(.*) "/usr/local/share/lxr/$1"
	....
</VirtualHost>
вроде все так же..

niXman ★★★
() автор топика
Ответ на: комментарий от niXman

скажите, судя по этим ошибкам, получается так, что апатч все равно не понял алиаса и пытается искать lxr в другом месте?

[Mon Sep 17 15:04:12 2012] [error] [client 1.2.3.4] File does not exist: /var/www/nixman/data/www/liveworkspace.org/lxr
[Mon Sep 17 15:04:17 2012] [error] [client 1.2.3.4] File does not exist: /var/www/nixman/data/www/liveworkspace.org/lxr
[Mon Sep 17 15:04:25 2012] [error] [client 1.2.3.4] File does not exist: /var/www/nixman/data/www/liveworkspace.org/lxr

niXman ★★★
() автор топика
Ответ на: комментарий от at

алиас сработал?

похоже на то...

а ведь на самом деле этого файла не должно быть по тому пути. как оно без него будет работать? или я что-то еще и с путями установки lxr накосячил?

зы: скажите, Вы таки установили lxr на свой локальный комп? у вас все заработало?

niXman ★★★
() автор топика
Ответ на: комментарий от niXman

а ведь на самом деле этого файла не должно быть по тому пути. как оно без него будет работать? или я что-то еще и с путями установки lxr накосячил?

Нет. Здесь дело в том, что используется регулярное выражение

AliasMatch ^/lxr/[^/]+/(.*) "/usr/local/share/lxr/$1"
То есть при запросе на адреса вида домен/lxr/foo или домен/lxr/ искать файлы в /usr/local/share/lxr/. Если foo не указан, используется index.html или index.php (это настройки апача). Т.е. надо либо всегда использовать завершающий слеш, либо заменить регулярное выражение на
^/lxr/[^/]+/?(.*)
Вопросительный знак после слеша означает, что он не обязательный.

at ★★
()
Ответ на: комментарий от at

P.S. В случае замены рег. выражения будут работать ссылки вида домен/lxrfoo, что не совсем то что нужно.

at ★★
()
Ответ на: комментарий от niXman

Нет прав. Либо у апача, либо это настройки апача. Первое проще всего проверить через

su www-data 
cd /usr/local/share/lxr/
ls
Второе настраивается через Directory и т.д. Они у вас уже есть
<Directory "%LXRroot%">
	Options FollowSymLinks
	AllowOverride FileInfo Limit Options
	Order allow,deny
	Allow from all
</Directory>
Должны быть в настройках в-хоста. %LXRroot% надо заменить на реальный путь.

at ★★
()
Ответ на: комментарий от at

первый способ вывел содержимое каталога /usr/local/share/lxr

Должны быть в настройках в-хоста.

это где? )

niXman ★★★
() автор топика
Ответ на: комментарий от niXman

первый способ вывел содержимое каталога /usr/local/share/lxr

Ок. То есть у апача есть доступ в эту директорию.

это где? )

в

<VirtualHost 89.149.223.110:80>
 ...
</VirtualHost>

at ★★
()
Ответ на: комментарий от at

да, я понял. вставил это:

	<Directory "/usr/local/share/lxr">
		Options FollowSymLinks
		AllowOverride FileInfo Limit Options
		Order allow,deny
		Allow from all
	</Directory>

апатч перезапустил. все по прежнему.

я тут вот что заметил... чуть выше секции '<VirtualHost 89.149.223.110:80>', есть секция <Directory ...>:

<Directory /var/www/nixman/data/www/liveworkspace.org>
	php_admin_value open_basedir "/var/www/nixman/data:."
</Directory>

не в этом ли причина?

niXman ★★★
() автор топика
Ответ на: комментарий от niXman

не в этом ли причина?

Нет. Их может быть несколько (каждая для своей директории).

апатч перезапустил. все по прежнему.

Что в логах?

at ★★
()
Ответ на: комментарий от at

в логах это:

[Mon Sep 17 16:58:56 2012] [error] [client 1.2.3.4] File does not exist: /var/www/nixman/data/www/liveworkspace.org/lxr
[Mon Sep 17 16:59:01 2012] [error] [client 1.2.3.4] client denied by server configuration: /usr/local/share/lxr/index.html
[Mon Sep 17 16:59:01 2012] [error] [client 1.2.3.4] client denied by server configuration: /usr/local/share/lxr/index.cgi
[Mon Sep 17 16:59:01 2012] [error] [client 1.2.3.4] client denied by server configuration: /usr/local/share/lxr/index.pl
[Mon Sep 17 16:59:01 2012] [error] [client 1.2.3.4] client denied by server configuration: /usr/local/share/lxr/index.php
[Mon Sep 17 16:59:01 2012] [error] [client 1.2.3.4] client denied by server configuration: /usr/local/share/lxr/index.xhtml
[Mon Sep 17 16:59:01 2012] [error] [client 1.2.3.4] client denied by server configuration: /usr/local/share/lxr/index.htm
[Mon Sep 17 16:59:12 2012] [error] [client 1.2.3.4] File does not exist: /var/www/nixman/data/www/liveworkspace.org/lxr

на эту ссылку 'liveworkspace.org/lxr' получаю 404. на эту 'liveworkspace.org/lxr/' получаю 404. на эту 'liveworkspace.org/lxr/index.html' получаю 404. на эту 'liveworkspace.org/lxr/gcc-4.7.0' получаю 404. на эту 'liveworkspace.org/lxr/gcc-4.7.0/' получаю 403.

niXman ★★★
() автор топика
Ответ на: комментарий от at

ничего вроде того самопального index.html не показывает.

niXman ★★★
() автор топика
Ответ на: комментарий от at

в самом начале темы я писал о том, что закинул сгенеренный конфиг 'apache-lxrserver.conf' в '/etc/apatche2/conf.d/'

его там и надо оставить?

содержимое такое:

#
#	Web server configuration for LXR server
#
#	$Id: apache-lxrserver.conf,v 1.1 2012/01/29 07:36:40 ajlittoz Exp $
#
#	Some lines need to be modified to reflect the location of
#	the LXR root directory. They are marked as follows for manual
#	change:
# ----------------> ** Explanatory text **
#


# =================================================
#
# ------- URL black magic for multiple trees ------
#
#	Uncomment for multiple trees operation
# ----------------> absolute path to the LXR root directory
	AliasMatch ^/lxr/[^/]+/(.*) "/usr/local/share/lxr/$1"


# =================================================
#
# -------    Simple URL for a single tree    ------
#
#	Uncomment for single tree operation
# ----------------> absolute path to the LXR root directory
#=s=	Alias ^/lxr "/usr/local/share/lxr"


# =================================================
#
# -----------    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/lxrconf.d/apache2-require.pl
	</IfDefine>
	<IfDefine !MODPERL2>
	# ----------------> absolute path to the LXR root directory
		PerlRequire /usr/local/share/lxr/lxrconf.d/apache2-require.pl
	</IfDefine>
</IfModule>



# =================================================
#
# -----------    LXR directory access   -----------
#
# ----------------> absolute path to the LXR root directory
<Directory "/usr/local/share/lxr">
	Options FollowSymLinks
	AllowOverride FileInfo Limit Options
	Order allow,deny
	Allow from all
</Directory>

niXman ★★★
() автор топика
Ответ на: комментарий от niXman
[Mon Sep 17 16:58:56 2012] [error] [client 1.2.3.4] File does not exist: /var/www/nixman/data/www/liveworkspace.org/lxr

Это без слеша, алиас не используется. Файла действительно нет.

[Mon Sep 17 16:59:01 2012] [error] [client 1.2.3.4] client denied by server configuration: /usr/local/share/lxr/index.html
Доступ клиенту запрещен конфигом сервера.

at ★★
()
Ответ на: комментарий от niXman

То, что находится в '/etc/apatche2/conf.d/' применяется ко всем в-хостам, То, что находится в конфиге в-хоста применается только к нему. Должно работать и так и так. У меня работает (кроме перла, к которому алергия).

Пытаюсь понять, почему не работает у Вас.

at ★★
()
Ответ на: комментарий от niXman

Вариант здесь один. Влияет уже имеющиеся конфигурация апача. У Вас (наколько понял) апач конфигурировал ispmanager. Т.е. она отличается от дефолтной. Стоит посмотреть директивы <Directory>, <DirectoryMatch>, <Files>, <FilesMatch> <Location> и <LocationMatch> которые могут влиять на этот путь. Как они работают http://httpd.apache.org/docs/2.2/sections.html

at ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.