2016-04-26 8 views
0

PHP

#!/bin/bash 
mv $1 /etc/apache2/sites-available/ 

また、www-dataユーザーに、パスワードなしでsudoを使用してsudo visudoにアクセスし、最後に次の行を追加することを許可しました

www-data ALL=NOPASSWD: /var/www/html/myapp/script.sh 
+0

注:単にshell_execに変更してみてください。 – fedorqui

+0

私は同じディレクトリ内でそのPHPコードを呼び出しています。それは最終的に同じ道ですか? –

+0

これは同じパスですが、sudoersは完全な文字列をチェックするので、完全なパスを記述する必要があります。 – fedorqui

答えて

2

あなたはsudoのではなく、/var/www/html/myapp/script.sh一つshを実行しています。スクリプトが#!/bin/bashで始まるときにscript.shshで実行しているのはなぜか不思議です。あなたは `のsh script.sh`を実行しているのに対し、あなたはアクション`/var/www/htmlと設定/ myappに/ script.sh`を実行するための権限を与えている

shell_exec("sudo /var/www/html/myapp/script.sh $conf_file"); 
+0

'sudo'と実際にスクリプトが見つかるためには、絶対パス(または少なくとも相対パス)が必要です。 –

+0

shを削除するとmyコマンドが実行されません。■ –

+0

スクリプトに実行ビットが設定されていますか? –

関連する問題