2012-06-20 88 views
9

可能重複:
Calling Perl script from PHP and passing in variables, while also using variablized perl script name執行Perl在PHP

我想通過PHP執行perl腳本。我使用exec()來執行perl腳本。它在我的機器上工作,但在服務器上不起作用。該服務器基於CentOS Linux。

我給了PHP和perl腳本文件的完全權限(777)。當我嘗試執行,我得到以下錯誤的error_log

sh: /perl: No such file or directory 

我嘗試使用以下方式

exec("perl -w Script.pl $username $password",$output); 
exec("/usr/bin/perl -w Script.pl $username $password",$output); 
exec("/usr/bin/perl Script.pl $username $password",$output); 

我也使用system功能

$output = system("perl Script.pl $username $password"); 

試圖執行當我嘗試這個時沒有發生任何事

我也試圖通過使用passthru()功能

passthru("/usr/bin/perl -w Script.pl $username $password",$output); 

當我執行這一行執行Perl,$output打印127並沒有任何反應腳本。

我用is_executable()函數檢查文件是否可執行。它顯示該文件不可執行。

代碼如下

$file = 'Script.pl'; 

if (is_executable($file)) 
{ 
    echo $file.' is executable'; 
} 
else 
{ 
    echo $file.' is not executable'; 
} 

如果我通過終端執行Perl,它工作正常,但是當我試圖通過PHP執行,它不工作。

+0

變化'ust'到'usr' – k102

+0

@ K102對不起亞...我錯誤地在這個崗位類型.. –

+0

@Gordon感謝您的鏈接..我仍然有相同的問題.. –

回答

6

使用完整路徑執行腳本。

exec("/usr/bin/perl /full/path/to/Script.pl $username $password",$output); 

問候,

+0

我已經試過這個..不工作。 –