私達が普段みている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/