我目前正在尝试编写一个脚本来确定服务器上的网站有什么问题。我被困在一个我想要创建的变量上
my documentroot =
文档根目录出现在apache配置文件/etc/httpd/conf/httpd.conf中,如下所示:
<VirtualHost 184.171.253.172:80>
ServerName lernperl.com
ServerAlias www.lernperl.com
DocumentRoot /home/lernperl/public_html
所以,基本上我决定使用我的域变量$ host作为域并搜索www.$domain.com
,但它是下一行对我来说很重要。理想情况下,我希望将/home/lernperl/public_html
置于标量中。这似乎很容易,但我一直在寻找答案。我感谢任何帮助!我没有走得太远。
open (configuration_file, "/etc/httpd/conf/httpd.conf");
my @list1 = <configuration_file>;close configuration_file;
答案 0 :(得分:0)
实现您要做的事情的最佳方法是使用正则表达式来捕获随后的文本&#34; DocumentRoot&#34;。要使用正则表达式的结果设置变量的内容,可以执行以下操作:
if ($line =~ /DocumentRoot (.*?)$/) {
my $variable = $1;
}
有关perl regular expressions tutorial中perl正则表达式的更多信息。
Apache配置文件可能包含多个DocumentRoot和ServerName,因此您的脚本需要处理这种情况。
祝你好运。