apacheで遊んでみる

apacheで遊んでみる

apacheインストール方法

CentOSにapacheをインストールしてテストページを表示させてみたいと思います。
インストールはすごく簡単で

yum install httpd

で可能です。
インストール中にyes/noを聞かれますが特に気にしないのであれば-yオプションをつけてしまって良いでしょう。

yum -y install httpd

完了すると以下のようなディレクトリとファイルが作成されます。

[root@localhost conf]# ls -R /etc/httpd
/etc/httpd:
conf conf.d conf.modules.d logs modules run

/etc/httpd/conf:
httpd.conf magic

/etc/httpd/conf.d:
README autoindex.conf userdir.conf welcome.conf

/etc/httpd/conf.modules.d:
00-base.conf 00-dav.conf 00-lua.conf 00-mpm.conf 00-proxy.conf 00-systemd.conf 01-cgi.conf

httpdは/etc/httpd/httpd.confを大元として設定を入れていきますが、httpd.conf内のIncludeで指定したディレクトリにある設定ファイルを読み込むことができます。

[root@localhost conf]# cat httpd.conf | grep Include
Include conf.modules.d/*.conf
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# (You will also need to add “Includes” to the “Options” directive.)
IncludeOptional conf.d/*.conf

ここでは、

/etc/httpd/conf.modules.d/*.conf
/etc/httpd/conf.d/*.conf

にあるconfファイルを読み込むという記述があります。
図に起こすと以下のイメージになります。

 

テストページを表示させてみる

httpd.confのDocumentRoot欄を見てみましょう。

クライアントからコンテンツのリクエストがあった場合に対応するコンテンツをDocumentRootで指定したディレクトリに配置します。
/var/www/htmlと書かれていますがこの場所にあるコンテンツをクライアントに返します。
試しにテストページをこのディレクトリに置いてみます。

このテストページを表示させるにはサーバのIPアドレスをブラウザに打つことで可能です。


表示されれば成功です。

では、DocumentRootのディレクトリを変更して動作確認をしましょう。

/var/www/html → /home

に変更してテストページを置いた後、ブラウザで確認します。

ここで、ブラウザの表示が変更されていないことに気づきます。
httpd.confを書き換えるだけでは設定が反映されないためです。
そこでhttpd.serviceを再起動させます。

systemctl restart httpd.service

再起動後、ブラウザで確認すると・・・

なにやら別のページが表示されました。
なぜ想定と違うページが表示されたのでしょうか?

 

ディレクトリのアクセス制限

httpd.confのDirectory欄を見てください。

実はここでディレクトリのアクセス制限をしています。
ざっくり説明すると、

<Directory “/var/www/html”>
このディレクトリは

Require all granted
制限をかけませんよ。

と言っています。
逆に、このディレクトリ以外はアクセス拒否されるということです。
つまり、先ほどDocumentRootを/homeに変えましたがアクセス制限の設定をしていないためアクセス拒否されていることになります。

ではどうしたらよいでしょうか?

<Directory “/var/www/html”>

<Directory “/home”>

としてあげればよいです。
こうすると/homeに対してRequire all grantedさせますよ、ということなのでアクセス許可され想定のページが表示されるようになるはずです。
やってみましょう。

まず、httpd.confを編集します。

そして、ブラウザで確認。

・・・まだ駄目です。

他に変更する箇所がありますので確認しましょう。

次はhttpd.confの以下の項目に着目します。

ここは、URLを省略してアクセスした場合にアクセスするファイルを追加します。
デフォルトではindex.htmlのみ指定していたので/home配下に作成したテストページtest.htmlは表示されないのです。
なのでtest.htmlを追加してあげました。
すると

めでたく表示させたいものが確認できました。

ITカテゴリの最新記事

%d人のブロガーが「いいね」をつけました。
TOP