2017-12-01 6 views
0

私はフックするモジュールを持っていますap_hook_child_init。そのコールバックから、主要なapache2.confファイルが存在するディレクトリ(またはそのファイルへのフルパス、私はディレクトリを解析します)を取得したいと思います。モジュール内でapache2.confファイルのディレクトリまたはパスをプログラムで取得する方法は?

コールバックには、server_rec構造体とapr_poot_t構造体が必要です。 server_recのメンバーはpathですが、nullです。

+0

なぜ設定ファイルがどこにあるか知る必要がありますか? Webサーバーには通常、そのファイルを変更する権限がありません。 – duskwuff

+0

@duskwuff私は独自の設定ファイルを持つモジュールを書いています。私はデフォルトで 'apache2.conf'がこのファイルのために存在するのと同じディレクトリを探します。 – marathon

答えて

1

でグローバル変数です。このファイルはdebian-ismです。

  • はあなたが同じ
  • 治療と同じで自分のモジュールにディレクティブを追加したいのですがどのような代替、この設定ファイルまたは中に一般的に存在するディレクティブを探す:

    しかし、あなたが持っている1つのオプションはでありコアモジュールとしての定義

  • ディレクティブを処理するためのコールバックを制御するときは、cmd-> directive-> fnameを見て、パスをグローバル変数に保存します。

複数のモジュールが同じディレクティブ名を共有することができ、すべてがそれらを処理するために呼び出されます。

-1

私はそれを見つけた - それはあなたがこの直接、そしてもちろん「apache2.conf」は全く存在しない場合があります見つけることができませんhttpd.h

AP_DECLARE_DATA extern const char *ap_server_root; 
+0

'ap_server_root'は、設定ファイルへのパスではなく、ServerRootディレクトリです。これは時にはhttpd.confを含むディレクトリですが、しばしばそうではありません。 – duskwuff

+0

モジュール内部からこれを得る方法はありませんか? – marathon

関連する問題