2012-10-30 29 views
1

我已經安裝了Apache 2.2和strawberry perl。我有textxx.pm。我準備簡單的腳本Apache沒有看到pm文件

#!/usr/bin/perl 
use textxx; 
print("HelloWorld!"); 

當我通過CMD運行它的作品。當我通過網絡瀏覽器運行它時,出現以下錯誤: 無法在@INC中找到textxx.pm(@INC包含:C:/ strawberry/perl/site/lib C:/ strawberry/perl/vendor/lib C: /草莓/ perl/lib。)

這很奇怪,因爲沒有「使用」的腳本工作。

我模塊位於同一目錄中的腳本

+0

可以在Web服務器讀取'@ INC'的目錄? – 2012-10-30 16:36:13

+2

其中是textxx.pm位於何處? – xblitz

+0

textxx.pm與我的腳本位於同一個目錄中。 – Heniek

回答

1

缺少權限可以是:/草莓/ perl的/網站/ lib目錄,然後就在你的腳本的頂部添加此這個問題,但我敢打賭問題是,你期望Perl查看包含模塊腳本的目錄。 Perl不會這樣做,至少在默認情況下不會。

它從控制檯工作,因爲你設置當前工作目錄發生的情況與腳本相同,但當你通過apache運行時,情況並非如此。

告訴Perl的在同一目錄中的腳本查找,添加以下原因use textxx;

use Cwd qw(realpath); 
use File::Basename qw(dirname); 
use lib dirname(realpath($0)); 
2

您正在嘗試使用textxx.pm Perl模塊,..但通過Apache運行時,它沒有找到,如果您刪除使用行會明顯因爲它不在尋找模塊。

速戰速決,如果你的textxx.pm是在假設C:

#!/usr/bin/perl 
use lib "C:/strawberry/perl/site/lib"; 
use textxx; 
print("HelloWorld!");