重複の可能性:
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 から実行しようとすると動作しません。