備忘録 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は機能していたはずですが。。。?
いや、拙生のことですから単なる記憶違いかも。💦
プロからすれば基本の基本なのかもしれませんが、大変難しいことをなさっているんですね。情報処理もプロで、ANT設計製作もプロ級(プロ以上)とは驚きですね。加えて類まれなるCW’erとなれば、まさに神様です。親指の怪我もそろそろ新しい皮に置き換わった頃でしょうか。モモチャン可愛らしいですね。お顔に表情が現れて癒やされますよね。うちのネコは病気かと思うほど無表情なんです。顔の表情はともかくとして、せめて嬉しいときは尻尾でも振ってもらいたいところです。
仕組みとやり方さえ理解できれば、難しいことはサーバーアプリがやってくれるので、見た目ほど難しくはありません。笑 なによりも難しく時間がかかるのは英文マニュアルの読破ですね。😱それを完璧にやらないから上記のようなことも起こります。💦💦
病気かと思うほど無表情・・・って昔々に飼っていた猫ちゃんもそぉでしたが、時々尻尾は振っていたような。。。🤣
まだ痛みはありますが盆明けから完全復帰します。