2017年01月30日

CentOS導入記その3:ApatchのインストールでWebサーバー構築

次にWebサーバーを構築します。

1.Apatchのインストール
  ・CentOSの端末アプリから、
      # yum install -y httpd
      # yum -y install php php-mbstring php-pear 
   のコマンドを打って、インストールします。これでPHPとともにApatchも同時にインストールできました。

2.Apatchの設定
・/etc/httpd/conf/httpd.confについて以下のポイントを変更しました。

    ServerName XXXXXX:80 ← #を削除してサーバー名を指定



#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs-2.0/mod/core.html#options
# for more information.
#
Options Includes ExecCGI FollowSymLinks ← Indexesを削除してファイルの一覧
表示を防ぎ、Includes ExecCGIを追記してCGI,SSIを許可

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All ← Noneを Allに変えて、.htaccessの許可

#
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
#
LogFormat "%h %l %u %t "%!414r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
 ← 長すぎるURI(414エラー)はログに記録しない

#
# If you prefer a logfile with access, agent, and referer information
# (Combined Logfile Format) you can use the following directive.
#

SetEnvIf Request_URI "default.ida" no_log ← wormからのアクセスをログに記録せず
SetEnvIf Request_URI "cmd.exe" no_log ← wormからのアクセスをログに記録せず
SetEnvIf Request_URI "root.exe" no_log ← wormからのアクセスをログに記録せず
SetEnvIf Request_URI "Admin.dll" no_log ← wormからのアクセスをログに記録せず
SetEnvIf Request_URI "NULL.IDA" no_log ← wormからのアクセスをログに記録せず
SetEnvIf Remote_Addr 192.168.1 no_log ← 内部からのアクセスをログに記録せず
SetEnvIf Remote_Addr 127.0.0.1 no_log ← 自ホストからのアクセスをログに記録せず
CustomLog logs/access_log combined env=!no_log ← 上記以外のアクセスをログに記録
する

AddHandler cgi-script .cgi .pl ← 行頭の#を削除して有効にし、CGIスクリプトに.pl
を追加

#AddDefaultCharset UTF-8 ← 行頭に#を付けて、無効にする

ServerTokens Prod ← 最終行に追記。OSをProdに変えてエラーページ等でOS名を表示
しないようにする

KeepAlive On ← 最終行に追記。OffをOnに変えて接続が切れていないか定期的にチェッ
クする

3.Webサーバーの起動
 ・端末からこれをたたいて起動です。
 # systemctl start httpd ← httpd起動
 # systemctl enable httpd ← httpd自動起動設定

 ・HTMLファイルの置き場所に、過去作ったindex.html他をコピペで投入しました。
  /var/www/html

4.SELinuxの無効化
 ・/etc/seliux/configを編集し、SELINUX=disabledとしました。再起動後、無効になりました。

5.firewallの設定
 ・端末からこれをたたいて、サービス種類httpを開放します。
  # firewall-cmd --permanent --add-service=http
 ・これをたたいて設定を有効化します。
  # firewall-cmd --reload

5.ローカルIPアドレスでのWebサーバー確認
 ・同一LAN内のPC上ブラウザから"ローカルIPアドレス:80"で確認すると、Webページが無事表示されました。

6.外部からのWebサーバー確認
 ・そのPC上ブラウザから、今度は"ダイナミックDNSで取得したサーバー名:80"または”グローバルIPアドレス:80”で確認すると、「応答時間が長すぎます」というエラーメッセージで終わります。一瞬、一度だけ表示されたような気がするのですが、その後、またこのエラーメッセージに戻りました。現在、原因を調査中。

→なんと同一LANセグメントからのアクセスで発生していた事象でした。スマートフォンで別個のネットワークから"ダイナミックDNSで取得したサーバー名:80"にアクセスすると、ちゃんとWebコンテンツが表示されました。いいんだけど、なぜだ。原因はどっかの設定ぽい。

→いろいろ調べてみると、今回ポートマッピング機能でNATエントリ設定しているルータが、外部からのアクセスはNATで内部のWebサーバーに流してくれるが、内部からのアクセスはNATで流してくれないという仕様のものだったと判明。外部ネットワークからのアクセスならOKなので、この場合は当然の事象であり、問題はなかった。内部ネットワークからはプライベートIPアドレスで入れば良いだけだった。


posted by kuwata at 15:23 | Comment(0) | TrackBack(0) | トラブル対応 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/446478255

この記事へのトラックバック