LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1185|回复: 9

我在做毕业设计,得到了一个perl程序,但web页面是空白的~

[复制链接]
发表于 2006-5-1 16:19:29 | 显示全部楼层 |阅读模式
我在做毕业设计,得到了一个perl程序,代码如下:
  1. #!/usr/bin/perl
  2. print "Content-type: text/html \n\n";
  3. open(MyFile, "/var/log/trafic.log") || die ("Can't open file");
  4. open(IPMAP, "/etc/ipmap") || die ("Can't open file");
  5. %ipmap = {};
  6. while(<IPMAP>){
  7.         chomp($_);
  8.         ($ip, $member) = split(/\s+/, $_);
  9.         $ipmap{$ip} = $member;
  10. }
  11. print qq(<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">);
  12. $i = -1;
  13. $tll_m = 0;
  14. $tll_k = 0;
  15. while(<MyFile>)
  16. {
  17.         chomp($_);
  18.         $i++;
  19.     if($i == 0 || $i == 1)
  20.     {
  21.             print "<tr>";
  22.                 print $_;
  23.                 print "</tr>";
  24.                 next;
  25.     }
  26.    
  27.     print "<tr>";
  28.     #@colums
  29.     ($ip, $f_i_k, $f_i_m, $c_i_k, $c_i_m, $f_o_k, $f_o_m, $c_o_k, $c_o_m)
  30.             = split(/\s+/, $_);
  31.    
  32.     print qq(<td>);
  33.     if($ipmap{$ip} ne ""){
  34.              print "$ip($ipmap{$ip})&nbsp;&nbsp;";
  35.     } else {
  36.                print "$ip&nbsp;&nbsp;";
  37.     }
  38.     print "</td>";
  39.     print qq(<td>);
  40.            print "$f_i_m&nbsp;&nbsp;";
  41.     print "</td>";
  42.     print qq(<td>);
  43.            print "$f_i_k&nbsp;&nbsp;";
  44.     print "</td>";
  45.     print qq(<td>);
  46.            print "$c_i_m&nbsp;&nbsp;";
  47.     print "</td>";
  48.     print qq(<td>);
  49.            print "$c_i_k&nbsp;&nbsp;";
  50.     print "</td>";
  51.    
  52.     print qq(<td>);
  53.            print "$f_o_m&nbsp;&nbsp;";
  54.     print "</td>";
  55.     print qq(<td>);
  56.            print "$f_o_k&nbsp;&nbsp;";
  57.     print "</td>";
  58.     print qq(<td>);
  59.            print "$c_o_m&nbsp;&nbsp;";
  60.     print "</td>";
  61.     print qq(<td>);
  62.            print "$c_o_k&nbsp;&nbsp;";
  63.     print "</td>";
  64.         if($i == 2){
  65.             print qq(<td>);
  66.                    print "收费流量(M)&nbsp;&nbsp;";
  67.             print "</td>";
  68.                
  69.                 print qq(<td>);
  70.                    print "收费流量(K)&nbsp;&nbsp;";
  71.             print "</td>";
  72.     } else {
  73.             print qq(<td>);
  74.             $mil = $c_i_m + $c_o_m + int(($c_i_k + $c_o_k) / 1024);
  75.             $kil = int($c_i_k + $c_o_k) % 1024;
  76.                    print $mil . "&nbsp;&nbsp;";
  77.             print "</td>";
  78.                
  79.                 print qq(<td>);
  80.                    print $kil . "&nbsp;&nbsp;";
  81.             print "</td>";
  82.             $tll_m += $mil;
  83.             $tll_k += $kil;
  84.         }
  85.     #foreach (@colums){
  86.     #    print qq(<td>);
  87.     #    if($ipmap{$_} ne ""){
  88.     #            print "$_($ipmap{$_})&nbsp;&nbsp;";
  89.     #    } else {
  90.     #            print "$_&nbsp;&nbsp;";
  91.     #        }
  92.     #    print "</td>";
  93.     #}
  94.     print "</tr>\n";
  95. }
  96. print "<tr>";
  97. print "<td>";
  98. print "<b>总收费流量:</b>";
  99. print "</td>";
  100. print "<td><b>";
  101. print $tll_m + int($tll_k / 1024) . "(M)</b>";
  102. print "</td>";
  103. print "</tr>\n";
  104. print "</table>";
  105. close(IPMAP);
  106. close(MyFile);
复制代码

可是我在用web服务器进行查看的时候发现网页是空白的,什么都没有显示,按理来说应该将traffic.log文件中的数据以表格形式输出才对,因为我也是刚开始接触perl,对这方面的东西也不是很懂,不果程序是没有问题的,请教一下各位高手,给点意见啦~~~

拜谢~!
发表于 2006-5-2 10:52:38 | 显示全部楼层
/var/log/trafic.log
/etc/ipmap

都存在么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-2 13:14:11 | 显示全部楼层
谢谢剑心的回帖!
那两个文件都在呢,我编了另一个简单的显示“hello perl"的程序再试的时候就出现了INTERNAL SERVER ERROR错误的提示,是什么原因呢?
回复 支持 反对

使用道具 举报

发表于 2006-5-3 10:36:31 | 显示全部楼层
Perl CGI环境没配置好吧
Apache的配置文件贴一下看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-3 12:46:37 | 显示全部楼层
我的系统的HTTPD文件发到你的邮箱EMail:freebsd13@163.com 里去了 ,麻烦你帮我看看吧,还有 我忘说了一件事,其实我用的是虚拟机的LINUX不过我想应该不是跟这个有关系,谢谢了~~!
回复 支持 反对

使用道具 举报

发表于 2006-5-4 12:04:14 | 显示全部楼层
我看了一下
输出如下抓图:
你的输出空白页,
估计是你的文件权限的问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-5 13:34:05 | 显示全部楼层
那请问应该怎么设置这个文件的权限呢?
能否说详细一些,我上网找了一下这方面的资料,讲的不是很明白,是不是要设置ACL呢?
谢谢剑心!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-10 12:59:19 | 显示全部楼层
我试过将文件的权限设为剑心所说的那样,但是还是没有显示,下附件里的那样,请问各位大虾,还有哪里的设置可能出问题了呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-11 20:38:01 | 显示全部楼层
今天我将程序中的ipmap文件换了一个路径,居然显示就正常了,有没有人知道是什么原因呢?
原来ipmap放在/root/joe/c路径下,后来改道了/etc下,难道程序中打不开root目录下打开文件吗?
回复 支持 反对

使用道具 举报

发表于 2006-5-12 11:01:45 | 显示全部楼层
/var/log/trafic.log
/etc/ipmap

这是你自己说得,怎么会跑到root下面了呢?哈哈
我是按照你说得做的,然后赋予所有人可读的权限。

ps:普通用户是无权访问root目录的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表