繁体   English   中英

Apache和Perl

[英]Apache and Perl

我正在尝试使OpenDLP在我的系统上工作。 对于不熟悉此功能的人,只需将其视为perl网站即可。

除了UI会给出错误之外,我几乎都准备了一切。

经过一些挖掘和调试后,我发现我的Perl脚本在目录“ /”下运行! 当页面尝试读取“ ../etc/db_admin”时,它们将找不到并引发错误。

我的用户界面的虚拟主机配置:

<VirtualHost opendlp.local:443>
    ServerAdmin vahid.fazl2000@engineer.com
    DocumentRoot "/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin"
    ServerName opendlp.local:443
    ErrorLog "/var/log/httpd/opendlp-error_log"
    CustomLog "/var/log/httpd/opendlp-access_log" common

    Include conf/extra/httpd-opendlp.conf

    <Directory "/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin">
               AddHandler perl-script .pl .html
               PerlResponseHandler ModPerl::Registry
               Options +ExecCGI
               PerlOptions +ParseHeaders
               AllowOverride All
               Options All
               Require method GET POST OPTIONS
    </Directory>


</VirtualHost>

这是httpd.opendlp.conf

Alias /OpenDLP/images/ /home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin/images
<Directory "/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin/images/">
        Options FollowSymLinks
        AllowOverride None
        order allow,deny
        allow from all
        #AuthType Basic                                                                                                                               
        #AuthName "OpenDLP"                                                                                                                           
        #AuthUserFile /etc/apache2/.htpasswd.dlp.user                                                                                                 
        #Require user dlpuser                                                                                                                         
</Directory>
ScriptAlias /OpenDLP/ "/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin/"
ScriptAlias /cgi-bin/ "/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin/"
<Directory "/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin/results/">
        Options FollowSymLinks
        AllowOverride None
        order allow,deny
        allow from all
        #AuthType Basic                                                                                                                               
        #AuthName "OpenDLP"                                                                                                                           
        #AuthUserFile /etc/apache2/.htpasswd.dlp.agent                                                                                                
        #Require user ddt                                                                                                                             
</Directory>
<Directory "/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin/">
        Options FollowSymLinks
        AllowOverride None
        order allow,deny
        allow from all
        #AuthType Basic                                                                                                                               
        #AuthName "OpenDLP"                                                                                                                           
        #AuthUserFile /etc/apache2/.htpasswd.dlp.user                                                                                                 
        #Require user dlpuser                                                                                                                         
</Directory>

#Also add this stuff to the Apache config file:                                                                                                       
# taken from http://hausheer.osola.com/docs/9                                                                                                         
SSLEngine on
#SSLVerifyClient require                                                                                                                              
SSLCertificateFile /home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/server.crt
SSLCertificateKeyFile /home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/server.key
SSLCACertificateFile /home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/server.crt

我以前没有尝试过Web的Perl,并且我对mod_perl及其选项不熟悉。 我已经用谷歌搜索了,但是似乎我不知道在哪里看(当然这里除外:-))

顺便说一句,如果有关系,我正在使用Arch Linux x64。

提前致谢

编辑:这是有关错误的更多信息。 这是我访问https://opendlp.local/profiles-manage.html时遇到的错误

No such file or directory at /home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin/profiles-manage.html line 29.

这是文件的第29行(及其周围):

use CGI qw/:standard/;
use DBI;
use Cwd qw();


my $version = get_version();
my $db_admin_file = "../etc/db_admin";
my( $db_username, $db_password ) = "";
open( DB, $db_admin_file ) or die $!;  # LINE 29
my $db_line = <DB>;
close( DB );
chomp $db_line;
($db_username, $db_password) = split( ":", $db_line );


header();
print "<heading>Manage existing scan profiles</heading><normal><br><br>\n";

我自己添加了use Cwd (实际上是use Cwd搜索),并检查了工作目录/

将DocumentRoot更改为

/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web

代替

/home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin”

然后在您的脚本中:

my $db_admin_file = "etc/db_admin";

您有“找不到文件”错误,因为您的代码在虚拟主机上运行,​​其中您设置为“文档根目录”的目录被视为根目录(/)。 您不能“落后”一个根目录,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM