PHP
#!/bin/bash
mv $1 /etc/apache2/sites-available/
また、www-dataユーザーに、パスワードなしでsudoを使用してsudo visudo
にアクセスし、最後に次の行を追加することを許可しました
www-data ALL=NOPASSWD: /var/www/html/myapp/script.sh
PHP
#!/bin/bash
mv $1 /etc/apache2/sites-available/
また、www-dataユーザーに、パスワードなしでsudoを使用してsudo visudo
にアクセスし、最後に次の行を追加することを許可しました
www-data ALL=NOPASSWD: /var/www/html/myapp/script.sh
あなたはsudoのではなく、/var/www/html/myapp/script.sh
一つsh
を実行しています。スクリプトが#!/bin/bash
で始まるときにscript.sh
をsh
で実行しているのはなぜか不思議です。あなたは `のsh script.sh`を実行しているのに対し、あなたはアクション`/var/www/htmlと設定/ myappに/ script.sh`を実行するための権限を与えている
shell_exec("sudo /var/www/html/myapp/script.sh $conf_file");
'sudo'と実際にスクリプトが見つかるためには、絶対パス(または少なくとも相対パス)が必要です。 –
shを削除するとmyコマンドが実行されません。■ –
スクリプトに実行ビットが設定されていますか? –
注:単に
shell_exec
に変更してみてください。 – fedorqui私は同じディレクトリ内でそのPHPコードを呼び出しています。それは最終的に同じ道ですか? –
これは同じパスですが、sudoersは完全な文字列をチェックするので、完全なパスを記述する必要があります。 – fedorqui