PHP 制御 nginx ソリューション

WBOY
リリース: 2016-06-13 13:21:34
オリジナル
925 人が閲覧しました

PHP は nginx を制御します
質問する...

nginx を制御するための既存の nginx.php スクリプトがあります。
開始、停止、再起動などがある場合

php にも nginx にも root 権限がありません。
exec システム関数を使用します。
基本的な ls cp コマンドは問題ありません。

kill -INT `cat /usr/local/nginx/logs/nginx.pid`;
テストは実行できません。
cat /usr/local/nginx/logs/nginx.pid には問題ありませんが、kill コマンドが実行できません。
kill 権限に問題があると思います。どうすればよいかわかりません。 。


nginx も停止できるものとします。その場合、nginx.php は単独では実行できません。nginx を起動するにはサーバーにアクセスする必要があります。
nginx.php を正常に実行できるようにするには、どのように対処すればよいでしょうか?

新しいポート、プロセスなどを開く必要がありますか?
この分野の経験を持つ友人が教えてくれます。私にアドバイスを。
あるいは、専門家が参考になる情報を提供してくれるかもしれません。




-----解決策---------
http://www.osseye.com/?p=295
記事を見つけましたので、お役に立てれば幸いです。
------解決策------------------
これは別の権限の問題であり、注意する価値があります。解決策を待ってください ~~
------解決策---------
chmod 755 を試してください
------解決策------------------
シェルを作成し、php を使用してこのシェルを呼び出すことは可能ですか?

BB マシンを拭きます...兄の 1500 中国製 Runxun bb マシンがベルトに固定されていたとき、どれほどまぶしかったかを覚えています...
------解決策------------------
もちろんWebインターフェースからは操作できない――。 。

php スクリプトを作成し、SSH を使用してリモート サーバーを操作し、nginx の再起動やシャットダウンなどを実行します。関連するインターフェイスは次のとおりです:
http://cn.php.net/ssh2、およびサーバーsshdサービスがオンになっています。

この場合、権限は ssh ユーザーに関連するため、適切なユーザー ssh でコマンドを実行するだけです。

概要
#include

int kill(pid_t pid, int sig);

プロセスがシグナルを送信する権限を持つ場合pid で指定されたプロセスに送信する場合、送信プロセスに適切な権限がない限り、送信プロセスの実際のユーザー ID または
の実効ユーザー ID は、受信プロセスの実際のユーザー ID または保存された set-user-ID と一致する必要があります。

これは、Kill の権限の問題です。root であるか、nginx プロセスの実際のユーザー ID と同じであるか、nginx プロセスの保存された設定ユーザー ID と同じである必要があります。

------解決策------------------
Nginx の C ソース コード実装の観点から見ると、マスター プロセスは root によって開始され、その実際のユーザー ID がファイル所有者になります。マスター バインド 80 の後に setuid が別の有効なユーザー ID に切り替わった場合、savfed set-user-ID は次のようになります。根。

したがって、nginx を強制終了したい場合は、root として ssh するか、Nginx バイナリ ファイルの所有者として ssh を実行することができ、どちらも強制終了できます。

nginx 設定ファイルに記述された作業ユーザーと作業グループに関係なく、それらは権限を減らすために nginx ワーカー プロセスの setuid によって使用されます。
------解決策------------------

ディスカッション

ssh2 についても少し学びました。これはリモート ログイン用ですか? rootパスワードが必要です。 。
私は他の人が使用できるようにこれを書いているので、他の人に root パスワードの提供を求めるのは不適切だと思われます。

引用:

もちろん、Web インターフェースからは操作できません - -。 。

php スクリプトを作成し、SSH を使用してリモート サーバーを操作し、nginx の再起動やシャットダウンなどを実行します。関連するインターフェイスは次のとおりです:
http://cn.php.net/ssh2、およびサーバーsshdサービスがオンになっています。

この場合、権限は SS と同じになります...

------解決策------------------
ディスカッション

-rwxr-xr-x 1 root root 3874792 Jul 5 11:55 /usr/local/nginx/sbin/nginx

そして、できますフロア #1 で言及されている方法について教えてください。



Quote:

Quote:

私もこの ssh2 について少し知っています。これは私に必要なものです リモートログイン? rootパスワードが必要です。 。
私は他の人が使用できるようにこれを書いているので、他の人に root パスワードの提供を求めるのは不適切だと思われます。
……

------解決策------------------
どのような問題が発生したかわかりませんか?
nginx は、継続的なサービスを提供する他のソフトウェアと同様、管理者レベルのユーザーが起動する必要があります。そうしないと、ユーザーがログアウトするとサービスが停止します

nginx.php スクリプトを使用すると言われました。 nginx を制御するには
nginx.php ファイル名から判断すると、Web モードで実行されているはずです
しかし、nginx が停止すると、nginx.php はどのように実行されるのでしょうか?

シェルを介している場合、なぜわざわざ行う必要がありますか?
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!