備忘録 modo_dir.so

次回同じことをやるのに忘れそうなので

ディフォルトでmodo_dir.soはロードされていない。

LoadModule dir_module modules/mod_dir.so

後ほど追記します。

【追記】

Apacheの設定ファイル

RedHat系AlmaLinuxの設定ファイルは
/etc/httpd/conf/httpd.conf です。
全ての設定では膨大になるので

IncludeOptional conf.d/*.conf

と分散し

/etc/httpd/conf.d/任意名.conf

を作成すれば起動時に組み込まれ反映されます。

さて、実行ファイルも同様で膨大であり、
これもモジュール化して分散されています。
これにより必要なモジュールのみ採用して
起動させることができます。

問題が起きた

webサイトを立ち上げるときのユーザーの
ドキュメントルートで、ディフォルトで
表示させるファイルの指定がおかしい。

httpd.confには以下のような記述があります。

<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

ドキュメントルートにindex.htmlを置いておくと
ファイル名を指定しなくても優先的に表示されます。

つまり
https://ホストネーム/index.html
とするところを
https://ホストネーム/
だけで表示するということです。

このファイルは

<IfModule dir_module>
DirectoryIndex index.php index.html /data/hoge.html
</IfModule>
のごとく、スペースで区切り複数指定することができます。

優先順位は先頭から順番です。

この場合https://ホスト名/というリクエストが来ると
まずはドキュメントルート内のindex.phpを探します。
あればそのまま表示しますがなければ次を探します。
index.htmlもなければ次に/data/hoge.htmlを探し、
全部なければそんなのねぇぞ!とNot Foundや
Forbiddenを返します。
ちなみに最後の/data/hoge.htmlのごとく、
他のディレクトリでも指定可能で、ドキュメント
ルートからの相対パスで指定した例となります。

  例外

  ディレクトリのオプションを
  Options Indexes
  としている場合は、リクエストのあった
  ファイルが存在しないと、
  こちら のごとく、ディレクトリ内の
  ファイル一覧を表示します。
  ダウンロードサイトの一覧などはこれですね。

DirectoryIndexが機能しない

構築中のサイトにとりあえず
このサイトは現在構築中です
と表示するようindex.htmlを置いたのですが
http://ホスト名/でリクエストすると、
ないはずのindex.phpが表示されます。
index.phpとindex.htmlが指定しており、
DirectoryIndexが機能していれば
index.phpがないのでindex.htmlを
表示するはずですが、機能していないのね。(T_T)

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

上記の頭右に記述がある通り、

DirectoryIndexのモジュールはdir_module。

これらがインストールされているかは

# httpd -M

で確認できますが、いっぱい出てくるので

# httpd -M | grep dir_module

とすれば良いでしょう。
ここで見つかったのに起動時に機能してない
事が分かったので、起動時にロードさるように
どこかにお呪いを書き込むことになります。

ロードさせる

そんなときはロードさせるコマンド

LoadModule dir_module modules/mod_dir.so

を設定ファイルに入れておきます。
dir_moduleの機能はmodulesディレクトリの
mod_dir.soで実現するということですね。

入れる場所はIncludeされるconf.dディレクトリ下に
任意名.confを作成して書いてやってもOKですが、
httpd.confには

Include conf.modules.d/*.conf

という記述があるので、せっかくなので
modules.dディレクトリー下にmoduld.confを
作ってコマンドを書き込んでおきました。

httpd再起動

systemctl restart httpd.service

今度はちゃんとindex.htmlを表示しました。
めでたしめでたし♪


記憶違いか?

以前はやった記憶がないので、ディフォルトで
DirectoryIndexは機能していたはずですが。。。?
いや、拙生のことですから単なる記憶違いかも。💦

HOME

おすすめ

2件のフィードバック

  1. OQQ より:

    プロからすれば基本の基本なのかもしれませんが、大変難しいことをなさっているんですね。情報処理もプロで、ANT設計製作もプロ級(プロ以上)とは驚きですね。加えて類まれなるCW’erとなれば、まさに神様です。親指の怪我もそろそろ新しい皮に置き換わった頃でしょうか。モモチャン可愛らしいですね。お顔に表情が現れて癒やされますよね。うちのネコは病気かと思うほど無表情なんです。顔の表情はともかくとして、せめて嬉しいときは尻尾でも振ってもらいたいところです。

    • Qsaku より:

      仕組みとやり方さえ理解できれば、難しいことはサーバーアプリがやってくれるので、見た目ほど難しくはありません。笑 なによりも難しく時間がかかるのは英文マニュアルの読破ですね。😱それを完璧にやらないから上記のようなことも起こります。💦💦
      病気かと思うほど無表情・・・って昔々に飼っていた猫ちゃんもそぉでしたが、時々尻尾は振っていたような。。。🤣
      まだ痛みはありますが盆明けから完全復帰します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)