11

可能重复:
从 PHP 调用 Perl 脚本并传入变量,同时还使用可变的 perl 脚本名称

我想通过 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()函数执行 perl

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

当我执行这一行时,$output打印 127 并且脚本中没有任何反应。

is_executable()我使用该功能检查了文件是否可执行。它表明该文件不可执行。

代码如下

$file = 'Script.pl';

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

如果我通过终端执行 perl,它可以正常工作,但是当我尝试通过 PHP 执行时,它不起作用。

4

1 回答 1

9

使用完整路径执行脚本。

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

问候,

于 2012-06-20T07:19:16.883 回答