我想让OpenDLP在我的系统上工作。对于那些不熟悉这一点的人,只能将它想象成一个perl网站。Apache和Perl
我主要准备了一切,但用户界面给出错误。
经过一些挖掘和调试,我发现我的Perl脚本正在目录'/'下运行!当页面试图读取'../etc/db_admin'时,他们不会找到它并抛出错误。
我的虚拟主机配置此UI:
<VirtualHost opendlp.local:443>
ServerAdmin [email protected]
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
我还没有尝试过的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
自己(google搜索,实际上),并检查工作目录,即/
。
我知道,但如果我想这样做,我也必须改变每一个脚本。没有办法告诉'mod_perl'使用脚本的目录作为cwd吗?应该有一个方法 – vfsoraki 2014-10-11 18:23:47
我这样做,并没有奏效。我发现'/'实际上意味着我的根分区,因为当我将'db_admin'复制到'/ etc'时,一切正常! – vfsoraki 2014-10-12 22:07:43