31453


例えばこんな感じでモジュールを読み込むわけですが、

`  
LoadModule alias_module /usr/lib/apache2/modules/mod_alias.so  
`

モジュールの共有ライブラリのパスを直接してしているので、apacheの内部実装的にもモジュール識別子`alias_module`がなんのために必要なのかがよくわかりません。

apacheのドキュメントでも下記のように解説されており

[code]

    この文字列は、モジュールの動的読み込みを行なうときに使用する LoadModule ディレクティブにおいて使用されるモジュールの識別子です。 詳しく書くと、ソースファイル内の module タイプの外部変数の名前です。
    
[/code]

なんのためにそれが必要なのかについては説明されていません。  
IfModuleでは、モジュール識別子でもファイル名でもどちらでも使用できるようですが、主にファイル名で指定されているように見えます。

何か歴史的な事情があったりするのでしょうか？


CC BY-SA 3.0
2016-12-25T13:05:04.207
31389
2016-12-27T05:04:09.560
17238
question
apache
apacheのモジュール識別子ってなんのために存在しているのでしょうか？


Apacheは、基本となる部分(Core)と様々な機能を提供するモジュール群から構成されています。  
[モジュール一覧](http://httpd.apache.org/docs/current/mod/)

モジュール識別子は、そのモジュールがどんな機能を持つかを示す名前(ラベル)です。  
同じ機能を持つモジュール(モジュール識別子は同一)でも、OSやプロセッサの種類が異なる複数のモジュールが存在します。  
また、性能を上げるための工夫をしたバージョンや、コードサイズが小さくなるように設計されたバージョンといった実装方法が異なるが機能は同じ（モジュール識別子が同じ）モジュールというのも存在します。

こうした複数のモジュールを、モジュールの機能で指定する場合にはモジュール識別子（例えば、ドキュメントルートと違うディレクトリのファイルをドキュメントルートの下にあるかのように扱える"mod_actions"）を使い、特定のファイルを指定する場合にはファイル名を使います。


CC BY-SA 3.0
2016-12-27T05:04:09.560
31453
2016-12-27T05:04:09.560
217
31389
answer