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_functions
でphp.ini
をチェックしましたが、何もありません。他の質問も確認しましたが、私の問題を解決できるものはありません。
まず、 Shebang が次のとおりであることを確認してください。
#!/bin/bash
次に、ターミナルで次のコマンドを使用して、スクリプトが実行可能であることを確認します。
chmod +x /path/to/a.sh
3番目に、bashスクリプトのフルパスを使用する必要があります。または、あなたの場合、次を使用できます。
$message=exec("$old/a.sh");
余談ですが、phpスクリプトからの次の2つのコマンドには意味がありません。
$old = getcwd();
chdir($old);
これらはchdir(getcwd())
と同等で、現在のディレクトリを...現在のディレクトリに変更するため、実際には何も起こりません。