在PHP中执行perl

在PHP中执行perl,php,perl,shell,exec,Php,Perl,Shell,Exec,可能重复: 我想通过PHP执行一个perl脚本。我使用exec()执行perl脚本。它在我的机器上工作,但在服务器上不工作。该服务器基于CentOS Linux 我对PHP和perl脚本文件都授予了完全权限(777)。当我尝试执行时,我在错误日志中得到以下错误 sh: /perl: No such file or directory 我尝试使用以下方法执行 exec("perl -w Script.pl $username $password",$output); exec("/usr/bi

可能重复:

我想通过PHP执行一个perl脚本。我使用
exec()
执行perl脚本。它在我的机器上工作,但在服务器上不工作。该服务器基于CentOS Linux

我对PHP和perl脚本文件都授予了完全权限(777)。当我尝试执行时,我在错误日志中得到以下错误

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);
我还尝试使用
系统
功能

$output = system("perl Script.pl $username $password");
passthru("/usr/bin/perl -w Script.pl $username $password",$output);
当我尝试这个时,什么也没发生

我还尝试使用
passthru()
函数执行perl

$output = system("perl Script.pl $username $password");
passthru("/usr/bin/perl -w Script.pl $username $password",$output);
当我执行这一行时,
$output
打印127,脚本中什么也没有发生

exec("/usr/bin/perl /full/path/to/Script.pl $username $password",$output);
我使用
is\u executable()
函数检查了文件是否可执行。它表明该文件不可执行

代码如下

$file = 'Script.pl';

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

如果我通过终端执行perl,它工作得很好,但是当我尝试通过PHP执行时,它不工作

使用完整路径执行脚本

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

问候,

@K102对不起你。。。我打错了这篇文章..@Gordon谢谢你的链接。。我仍然有同样的问题。也许因为一些严格的安全设置,你不允许从php进行任何系统调用?使用类似于
ls
cwd
的简单命令进行检查。如果只在命令行中使用perl解释器预先执行perl脚本,则不必设置execute权限<代码>664应该可以。否则,如果服务器是以这种方式设置的,那么它可能可以从浏览器执行。
exec的输出是什么('which perl',$output)给你?我通过在php.ini中禁用安全模式解决了这个问题。我已经尝试过了。。PHP以apache用户
www-data
的身份执行。您的脚本可能需要作为sudo运行,但PHP不允许这样做。至少对于
debiab
,运行
visudo
,然后添加
www-data-ALL=(ALL:ALL)NOPASSWD:/pat/to/your/script.pl
,然后更改权限以便只有root用户可以编辑文件(安全):
sudo-chown-root:someuser/path/to/your/script.pl
,最后,使其可执行
sudochmodu+rwx/path/to/your/script.pl