基本的なWebサーバーを構築する

LINEで送る
Pocket

私達が普段みているWebサイトは、Webサーバがブラウザより発信されたHTTPリクエストに応じてHTML コンテンツを返信して、ブラウザがレンダリングを行い表示されたものを見ています。
Web サイトといっても凝ったものを用意する必要はありません。プログラミングで勉強したHello World! を Web サイトに表示してみましょう。今回は、Web サーバでもっとも可動実績があるapache を使ってやり方を紹介します。

httpd(apache) のインストールは以下のコマンドで行います。

# yum install httpd

httpd を start します。

# systemctl start httpd

再起動時も、httpd が自動で起動されるようにします。

# systemctl enable httpd

デフォルトでは、ファイヤウォールの設定がなされていて、サーバへのHTTPアクセスが行えないので有効にする設定を行います。
firewall に http のアクセスを許可します。

# firewall-cmd --permanent --zone=public --add-service=http

firewall の設定を再読み込みします。

# firewall-cmd --reload

ブラウザで http://サーバのアドレス/ を入力すると以下のページが表示されます。
 

 
これは、ディストリビュータが事前に用意したページで、CentOS7 の場合は/usr/share/httpd/noindex/index.html を表示しています。Web サーバには、Document Root(ドキュメントルート)という設定項目があり、
そこに存在する index.html を Webサイトのトップページと認識して表示します。apache のデフォルトドキュメントルートは、/var/www/html/ なので、そこに Hello World! を表示する index.html を置いてみます。

[/var/www/html/index.html]

<!DOCTYPE html>
<html lang="ja">
<head>
	<title>Hello World!</title>
</head>
<body>
	Hello World!
</body>
</html>

ブラウザをリロードすると、/var/www/html/index.html の内容が表示されます。
 

 
apache の設定ファイルは、/etc/httpd/conf/httpd.conf で、先ほど説明した DocumentRoot の設定も以下のように記述されいます。

/etc/httpd/conf/httpd.conf

        :
DocumentRoot "/var/www/html"

apache のログファイルは、アクセスログとエラーログが /var/log/httpd/ に保存されています。
/var/log/httpd/access_log

apache のアクセスログ
192.168.1.100 - - [20/Aug/2018:19:22:41 +0900] "GET / HTTP/1.1" 200 107 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/47.0.2526.106 Chrome/47.0.2526.106
Safari/537.36"

/var/log/httpd/error_log

apache の起動ログ
[Wed Aug 29 19:36:55.774846 2018] [core:notice] [pid 9526] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Wed Aug 29 19:36:55.776531 2018] [suexec:notice] [pid 9526] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Wed Aug 29 19:36:55.791230 2018] [auth_digest:notice] [pid 9526] AH01757: generating secret for digest authentication ...
[Wed Aug 29 19:36:55.792019 2018] [lbmethod_heartbeat:notice] [pid 9526] AH02282: No slotmem from mod_heartmonitor
[Wed Aug 29 19:36:55.794329 2018] [mpm_prefork:notice] [pid 9526] AH00163: Apache/2.4.6 (CentOS) configured -- resuming normal operations
[Wed Aug 29 19:36:55.794371 2018] [core:notice] [pid 9526] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'

apache の追加設定ファイルは、/etc/httpd/conf.d/ に格納されています。http://サーバのアドレス/~ユーザ名 とアクセスするとユーザ固有の Web サイトが見られる設定ファイルも userdir.conf ファイルとして用意されています。
 

 
/etc/httpd/conf.d/userdir.conf

       :
    UserDir disabled
       ↓
    UserDir enable
       :
    #UserDir public_html
       ↓
    UserDir public_html
       :

httpd を restart します。

# systemctl restart httpd

ユーザのディレクトリのグループを apache に変更します。

# chown :apache /home/ユーザ名/

apache グループにアクセスを許可します。

# chmod g+x /home/ユーザ名/

コンテンツを置くディレクトリを作成します。

# mkdir /home/ユーザ名/public_html/

先ほど作成した index.html をコピーします。

# cp /var/www/html/index.html /home/ユーザ名/public_html/
LINEで送る
Pocket

  • このエントリーをはてなブックマークに追加

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください