LINUX.ORG.RU

mod_perl не находит файлы


0

0

http://localhost:8005/perl/veruser.pl
veruser.pl не находит файл, находящийся в том же каталоге.
Не находит и файл "../t/veruser.t".

Конфиг Apache:
Listen 8005
<VirtualHost localhost:8005>
DocumentRoot /var/www/inter

PerlRequire /var/www/inter/perl/hand_session.pl
PerlModule Template
PerlModule Apache::DBI

PerlTransHandler hand_session::trans
PerlFixupHandler hand_session::fixup

<Directory /var/www/inter/html>
Options -Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>

<Directory /var/www/inter/perl>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI -Indexes
Order allow,deny
Allow from all
</Directory>

<Directory /var/www/inter/t>
Options -Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>

LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
</VirtualHost>


anonymous

Ответ на: комментарий от roller

Apache в логах пишет, что файл не найден в @INC.
В @INC перечислен и текущий каталог ".".

Как можно определить какой каталог является для программы текущим?
Текущий это DocumentRoot?

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

Можно ли с помощью Alias исправить ситуацию?

anonymous
()

Повторяю - использовать FindBin, т.к. текущий каталогт != каталогу где лежит скрипт.

Или так:

BEGIN {
use Apache;
use File::Basename;
my $request = Apache->request();
my $WorkDir = dirname($request->filename);
use lib $WorkDir;
}

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