簡體   English   中英

基本的mod_perl問題

[英]basic mod_perl question

我是Perl的新手。

我寫了一個非常簡單的Perl程序(腳本):

print "hello";

當我在命令提示符(使用命令-perl first.pl)上執行它時,它可以工作。

但是,當我在apache的“過濾器”中使用相同的Perl代碼時,它不起作用。 為了提供更多詳細信息,我正在使用httpd.conf文件中的以下配置調用Apache Http Server中URL的過濾器:

<Location /something.do>
      SetHandler modperl
      PerlResponseHandler MyApache2::FirstPerlProg
</Location>

FirstPerlProg.pm文件(在indigoampp \\ perl-5.12.1 \\ site \\ lib \\ MyApache2位置)具有與first.pl相同的代碼。

index.html頁面(第一頁)具有一種將請求提交到something.do的形式,並且此過濾器被調用。

問題是,如何以及在哪里看到此過濾器的輸出(您好)?

希望我的問題清楚。

我知道我不會在此過濾器代碼中進行任何HTTP響應發送到瀏覽器,這就是為什么提交后出現“無法顯示頁面”的原因。 但是我不知道該怎么辦。

謝謝。

取決於您的編寫方式。 按照您的代碼,骨架應該看起來像

package MyApache2::FirstPerlProg;

use Apache2::Const qw(OK);
use Apache2::RequestRec;
use Apache2::RequestIO;

sub handler {
  my ($r) = @_;
  $r->content_type("text/html");
  $r->print("hello");
  return OK;
}

1;

對於mod_perl請求處理程序而言,這幾乎是最低的要求。 這應該是從請求返回的響應,應該在瀏覽器中看到它。 您也可以使用Apache2::Log ,然后使用$r->log_error("text")發送到error_log。

如果您希望腳本運行CGI-ish,請使用ModPerl :: Registry。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM