web-dev-qa-db-ja.com

このphpスクリプトがbashスクリプトを実行しないのはなぜですか?

PHPを使用してこのbashスクリプトを実行できないのはなぜですか? exec()Shell_exec()を試しました。

index.php

<?php
$old = getcwd();
echo $old;
chdir($old);
$message=exec("a.sh");
print_r($message);
?>

#!bin/bash
echo "i am a" > /opt/lampp/htdocs/a.txt
echo "Done"

ここで提案されているようにchdirを試しましたが、disable_functionsphp.iniをチェックしましたが、何もありません。他の質問も確認しましたが、私の問題を解決できるものはありません。

1
Optimus Prime

まず、 Shebang が次のとおりであることを確認してください。

#!/bin/bash

次に、ターミナルで次のコマンドを使用して、スクリプトが実行可能であることを確認します。

chmod +x /path/to/a.sh

3番目に、bashスクリプトのフルパスを使用する必要があります。または、あなたの場合、次を使用できます。

$message=exec("$old/a.sh");

余談ですが、phpスクリプトからの次の2つのコマンドには意味がありません。

$old = getcwd();
chdir($old);

これらはchdir(getcwd())と同等で、現在のディレクトリを...現在のディレクトリに変更するため、実際には何も起こりません。

2
Radu Rădeanu