ホームページ  >  に質問  >  本文

PHP が RNDC にアクセスできない

ゾーン ファイル /var/named/rpz.local を編集しているため、次のコマンドを実行した後に rndc をリロードする必要があります:

リーリー

root として cli を使用することはすべて問題ありませんが、問題は、nginx (PHP) を介して /usr/sbin/rndc を実行できないことです。それで、ヒントを教えてもらえますか?

これを実行できます:

リーリー

しかし、このコマンドを実行すると、出力は空になります。 system('rndc リロード'); または shell_exec('rndc関連'); 次のコマンドを実行することさえできないため、rndc にアクセスできないようです。 rndc ステータス しかし、これを実行すると:

リーリー

#uptimeuptime コマンドの結果はありますが、shell_exec('rndc reload') については何もありません。以下のコマンドも実行しました。しかし、うまくいきませんでした: ああああ

P粉794851975P粉794851975264日前363

全員に返信(2)返信します

  • P粉545956597

    P粉5459565972024-02-22 00:36:26

    PHP を Nginx で root として実行している場合、深刻な問題が 1 つ発生し、さらにいくつかの問題が発生します。

    root ユーザーの役割とその目的を理解するには、操作マニュアルを参照してください。その後、それに応じてシステムを管理します。

    つまり、root として何かを実行できるからといって、それを PHP 内から実行する必要があるわけではありません。

    その理由を学びましょう。本物。正直に。

    そうでない場合は、オペレーティング システムに精通している担当システム管理者に問い合わせて、要件を直接明確にしてください。

    返事
    0
  • P粉463291248

    P粉4632912482024-02-22 00:06:56

    ###問題が解決しました。どうやって?

    rndc コマンドを実行しようとすると、 NULL が発生します。 この記事で述べたように、コマンドを次のように変更しました。 $Test =shell_exec(`rndc reload rpz.local 2>&1`); // rndc.key ファイルに対するリターン権限が拒否されました print($Test);

    だから私はやりました: 

    setfacl -m u:nginx:rwx /etc/rndc.key

    ###問題は解決された。
    ありがとうございます

    @hake

    P.S

    @hake が述べたように、nginx を sudoer として実行したり、nginx を sudoer グループに追加したりするのは間違っているため、

    間違いを犯さないでください ただし、デバッグは問題ありません。そしてテスト(1~2時間以内)。

    返事
    0
  • キャンセル返事