閱讀37 返回首頁    go 阿裏雲 go 技術社區[雲棲]


apache 不能訪問 cgi-bin目錄下的文件

apache 不能訪問 cgi-bin目錄下的文件


轉自:https://www.cnblogs.com/shuang/archive/2008/12/08/1350718.htm



我在本機上配置perl的運行環境老是不成功的原因在於沒有去掉httpd.conf中的
ScriptAlias /cgi-bin/ "F:/project/perl/cgi-bin/"前麵的“#”(去掉#後還要重起apache,從任務欄的Monitor Apache Servers,否則不起作用,好像apache隻是在每次啟動時,才使用httpd.conf文件),當然這是網上教程的cgi-bin的目錄,我對應的配置是:
ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/",也可能與perl的安裝路徑有關,我用的是ActivePerl-5.10.0.1004-MSWin32-x86-287188.msi,前幾次都沒有與apache裝在一起,最後我把perl裝在和Apache2.2同一級目錄上,但是忘了為perl創建目錄,所以看起來很亂。

此前一直報如下的錯誤:

++++++++++++++++++++++++++++++++++
不能直接訪問該目錄下的text文檔

會報錯:



+++++++++++++++++++++++++++++++++
關於perl的其他配置:

<Directory "D:/project/perl/cgi-bin/">
    AllowOverride All
    Options All
    Order allow,deny
    Allow from all
</Directory>
  AddHandler cgi-script .cgi .pl .exe  


++++++++++++++++++++++++++++++++++++++++++++
參考資料:https://purpen.javaeye.com/blog/101328
今天看了一下用Perl寫cgi的教程,於是想測試一下成果,於是,開始了安裝配置全過程.

    因為,以前做的是php開發,apache已安裝成功,並運行正常(安裝路徑:E:/webserver/Apache2),所以,在此對apache2的安裝就不多做說明.(詳細參考:https://purpen.javaeye.com/admin/show/98673).

    在此著重說明perl的安裝過程及在apache下的配置.

   1, 下載windows環境下的ActivePerl For Windows V5.8.8.820(https://www.skycn.com/soft/1211.html).

   2, 解壓縮,雙擊ActivePerl-5.8.8.820-MSWin32-x86-274739.msi安裝.在此需要注意的是安裝路徑,Perl安裝的缺省目錄位置為C:\usr,當然,你可以安裝在任意你喜歡的目錄,我就裝在(E:/webserver/perl/,為了便於管理)

   3.配置Apache以支持CGI

    打開httpd.conf修改:

  1. ScriptAlias /cgi-bin/ "F:/project/perl/cgi-bin/"  

  2. <Directory "D:/project/perl/cgi-bin/">
        AllowOverride All
        Options All
        Order allow,deny
        Allow from all
    </Directory>
  3.   
  4. AddHandler cgi-script .cgi .pl .exe  


     其中"F:/project/perl/cgi-bin/"是我打算存放*.pl腳本的目錄,把目錄的訪問權限都設為All.(注意刪除前麵的#,如果有的話),

     在此,apache支持perl/cgi的環境就配置完整了.

    4.在F:project/perl/cgi-bin目錄下創建一個hello.pl測試一下.
 

  1. #!E:/webserver/perl/bin/perl.exe  
  2. #scriptname hello.pl  
  3.   
  4. print "Content-type: text/html\n\n";  # 此句一定要寫而且寫準確.  
  5. print "Hello, World...\n";  



    注意:當您瀏覽cgi程序出現500錯誤的時候可以看一下您的程序,是不是以:#!E:/webserver/perl/bin/perl.exe開頭。
或者沒有print "Content-type: text/html;\n\n";

   運行hello.pl,出現一下顯示:

最後更新:2017-04-03 05:39:25

  上一篇:go JDBC性能優化方案
  下一篇:go 內存管理 之 存儲器硬件知識