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);

この行を実行すると、 $output127 が出力され、スクリプトで何も起こりません。

関数でファイルが実行可能かどうかを確認しました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 に答える