最初にやりたいことについて話しましょう:
Linux での Web ベースの操作。これにより、ユーザーは Web 側から基本的な操作を実行できますが、今はディレクトリを作成するコードを書いています:
$mkdir_command = "/home/ myname/ myshell/mkdir.sh /$directory/ $name";
exec($mkdir_command,$output,$return);
.....
シェル スクリプトが Web 側で実行されることも知っています。 , Linux では、Apache として実行されます
ただし、Linux では、mkdir.sh の実行権限を root に変更しました。これは、ファイルを呼び出すすべてのユーザーがそのファイルを root 権限で実行することを意味します: chmod 777 mkdir.sh ; +s mkdir.sh
しかし、Web ページでの実行は依然として失敗します。
Linux だけでも正常に実行できます
皆様のご意見、ご感想をお待ちしております。 !
Apache にはディレクトリへの書き込み権限が必要です
Apache にはディレクトリへの書き込み権限が必要です
mkdir.sh 権限が root に変更されると、Apache はアクセスできなくなります
この投稿は、2012-11-28 19:32:59 に xuzuning によって最終的に編集されました
mkdir.sh 権限が root に変更されます
その後、Apacheもうアクセスできません
1. Web は、何を作成する必要があるか、どこに作成するかなどの結果をファイルに書き込みます
2. Linux ルートは定期的にシェルを呼び出し、ファイルに変更が必要なコンテンツが含まれているかどうかを確認します
含まれている場合は、次を使用しますこの時点で root を実行して操作してください
タイマーを構築するだけです
所有者、あなたの php スクリプトには実行権限がありますか? mkdir.shではなく、シェルを実行するphpです 実行権限を設定していますか?
1. Web は、何を作成する必要があるか、どこに作成するかなどの結果をファイルに書き込みます
2. Linux ルートは定期的にシェルを呼び出し、ファイルに変更が必要なコンテンツが含まれているかどうかを確認します
含まれている場合、この時点で root を使用して操作します
タイマーを構築するだけです
先生、あなたの php スクリプトには実行権限がありますか? mkdir.shではなく、シェルを実行するphpです 実行権限を設定していますか?
実行権限があるかどうかを確認する必要があります
system/exec まず、ls、ifconfig などの別の簡単なコマンドを実行して、正常に実行できるかどうかを確認します
次に、.sh ファイルの権限を確認します
Linux で visudo と入力します
次に、最後に
apache ALL=NOPASSWD:/bin/sh を追加します
次に、
php が exec("/usr/bin/sudo /bin/sh /xxx/xxx.sh") を実行します
/xxx/xxx.shはあなたが望むものです 実行されたスクリプト
この記事を見てください、それはあなたの問題を解決することができます
http://blog.csdn.net/vindo/article/details/3610587
sudo を追加します
Linux で visudo と入力します
次に、最後に
apache ALL=NOPASSWD:/bin/sh を追加します
次に
php run exec("/usr/bin/sudo /bin/sh /xxx/xxx.sh")
/xxx/xxx.sh とはスクリプトを実行したいと考えています
この記事をご覧ください。問題は解決します
http://blog.csdn.net/vindo/article/details/3610587...
上記の回答をありがとうございました。まとめると、問題は解決しました。おいおい!
解決方法を教えてください。私のスクリプトは仮想マシンのIPを取得するものですが、現在は実行できません