私はbashスクリプト(myscript.sh)を持っており、これはユーザー「www-data」を使用してsshコンソールで機能しますが、phpスクリプトで「exec」を使用してこのスクリプトを実行すると、スクリプトが機能しません。
どうしたの?「www-data」にはシェル「/bin/ bash」があり、「/ bin / sh」に設定すると、スクリプトも機能しません。
私はこれを行うための「安全でない」方法があることを知っています、私はかつて同様の問題を抱えていました、あなたはあなたのファイルのすべての許可も変更することができました-コマンドラインタイプで:
念のため、最初に元のファイルのコピーを作成します。これ以上混乱することはありません。
cp myscript.sh myscript2.sh
chmod 755 myscript2.sh
コマンドラインで次のように入力します。
chown www-data:www-data myscript2.sh
代わりに、PHPスクリプトファイルのmyscript2を試してみてください。(これに似た問題を特定して、ルートとしてWebサーバー(Apacheを使用していると想定しています)の実行に何らかの関係があることも覚えています。)
ちなみにOPさん、エラーログを見たことがありますか?何が許可されていないかについての有用な提案があるかもしれません。
実行モードに注意
chmod +x myscript.sh
スクリプトがパスにある場合。それ以外の場合は、myscript.sh を呼び出すときにフル パスを使用します。