首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache和Perl

Apache和Perl
EN

Stack Overflow用户
提问于 2014-10-12 00:58:37
回答 1查看 203关注 0票数 1

我正在尝试让OpenDLP在我的系统上工作。对于那些不熟悉这一点的人,只需将其视为perl网站即可。

我基本上准备好了所有的东西,除了UI会给出错误。

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

此ui的vhost配置:

代码语言:javascript
复制
<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

代码语言:javascript
复制
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

我以前没有尝试过Perl for web,我也不熟悉mod_perl和它的选项。我已经在谷歌上搜索过了,但我似乎不知道去哪里找(当然,除了这里:-)

顺便说一句,如果重要的话,我在使用Arch Linux x64。

提前感谢

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

代码语言:javascript
复制
No such file or directory at /home/vahid/Downloads/OpenDLP-0.5.1/OpenDLP/web/bin/profiles-manage.html line 29.

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

代码语言:javascript
复制
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 (实际上是谷歌搜索的),并检查了工作目录,即/

EN

回答 1

Stack Overflow用户

发布于 2014-10-12 01:46:47

将DocumentRoot更改为

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

而不是

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

然后在你的脚本中:

代码语言:javascript
复制
my $db_admin_file = "etc/db_admin";

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26317049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档