ホームページ >バックエンド開発 >PHPチュートリアル >exec を使用してシェル スクリプトを実行する php に関連する問題

exec を使用してシェル スクリプトを実行する php に関連する問題

WBOY
WBOYオリジナル
2016-06-13 12:58:471134ブラウズ

PHP は exec を使用してシェル スクリプトを実行します
まず、私がやりたいことについて話しましょう:
ユーザーが Web 側から基本的な操作を実行できるように、Linux で 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; chmod u+s mkdir.sh
ただし、Web ページではまだ実行できません。
Linux 単独でも正常に実行できます。
皆さんもぜひご意見・ご感想をいただければと思いますので、よろしくお願いいたします! !
------解決策----------------------
Apache にはディレクトリへの書き込み権限が必要です
------解決策----------------------
1.web は結果をファイルに書き込みます。作成対象と作成場所

2. Linux ルートは定期的にシェルを呼び出して、ファイルに変更が必要なコンテンツが含まれているかどうかを確認します
今回の場合はrootで操作してください


タイマーを作成するだけです。
-----解決策--------------------------
実行権限があるかどうかを確認する必要があります
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 を追加

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。