CentOS サーバー構築 HTTPサーバー Apache

(最終更新日時:2013-03-09 02:25:28)
オープンソースのHTTPサーバー Apache 2.4.x をソースからコンパイルしてインストールします。
また、インストールしたHTTPサーバーは、名前ベースの仮想ドメイン/ホストの設定を行い、複数のホストを運用します。

ダウンロード

The Apache HTTP Server Project (http://httpd.apache.org/) から次のファイルをダウンロードします。
Apache HTTP Server 2.4.4 Unix Sourcehttpd-2.4.4.tar.bz2
 (※)下線部は 2013/03/09 現在の最新安定バージョンです。

インストール

apache実行用のgroupおよびuserを作成します。
$ sudo groupadd -g 48 apache
$ sudo useradd -u 48 apache -g apache -s /sbin/nologin -d /home/www
/usr/local/srcディレクトリでアーカイブを展開し、コンパイルおよびインストールを行います。
なお、Apache 2.4.xからはAPR(Apache Portable Runtime)が同梱されていませんので、aprおよびapr-utilのダウンロードも行います。
※ apr-1.4.6、apr-util-1.5.1 が 2013/03/09 現在の最新安定バージョンです。
$ cd /usr/local/src
$ wget http://ftp.riken.jp/net/apache/httpd/httpd-2.4.4.tar.bz2
$ tar xjvf httpd-2.4.4.tar.bz2
$ cd httpd-2.4.4/srclib

$ # Apacheソース内のsrclibにaprをダウンロード、展開してバージョン名のない apr にディレクトリ名を変更します
$ wget http://ftp.riken.jp/net/apache/apr/apr-1.4.6.tar.bz2
$ tar xjvf apr-1.4.6.tar.bz2
$ mv apr-1.4.6 apr

$ # apr-utilをダウンロード、展開してバージョン名のない apr-util にディレクトリ名を変更します
$ wget http://ftp.riken.jp/net/apache/apr/apr-util-1.5.1.tar.bz2
$ tar xjvf apr-util-1.5.1.tar.bz2
$ mv apr-util-1.5.1 apr-util

$ # Apacheのコンパイルを行います
$ cd ..
$ ./configure \
>   --enable-suexec \                                         # suEXECを使用します
>   --with-suexec-caller=apache \                             # suEXECを実行するユーザー
>   --with-suexec-userdir=/home/www/vhosts \                  # suEXECがアクセス可能なユーザーディレクトリ
>   --with-suexec-docroot=/home/www \                         # Apacheのドキュメントルート
>   --with-suexec-uidmin=10000 \                              # suEXEC対象ユーザーの最小ユーザーID
>   --with-suexec-gidmin=10000 \                              # suEXEC対象グループの最小グループID
>   --with-suexec-logfile=/var/log/httpd/suexec_log \         # suEXECのログファイル
>   --with-included-apr \                                     # Apacheのsrclibに展開したAPRを使用します
>   2>&1 | tee configure.log

$ make 2>&1 | tee make.log

$ # Apacheのインストールを行います
$ sudo make install 2>&1 | tee make_install.log

cronologのインストール

ログのローティションを行うために logrotate を使用してもいいのですが、ローティトの際に緩やかとはいえApacheの再起動が必要になります。
そこで、再起動の必要がないログのローティションツールとして cronolog をインストールします。
なお、Apacheに標準で付属している rotatelogs も再起動の必要がないのですが、ログの切替時に2世代のログをログ監視ツール AWStats に読み込ませたいので、1世代前のログにもリンクが作成できるcronologをインストールします。
$ sudo yum -y install cronolog
$ # (※)EPELリポジトリからインストールされます

HTTPサーバーディレクトリ構成

当サイトにおけるインストール後のHTTPサーバーディレクトリは以下になります。(抜粋)
赤字のディレクトリは新規に作成しています。()内はパーミッションです。
/usr/local/apache2/                                           … HTTPサーバートップディレクトリ
  ┗ conf/                                                    … 定義ファイルディレクトリ
       ┣ extra/                                              … 拡張定義ファイルディレクトリ
       ┃   ┗ vhosts/ (755)                                  … 仮想ドメイン/ホスト用定義ファイルディレクトリssl.crt/ (755)                                      … SSL用サーバー証明申請書ディレクトリssl.key/ (500)                                      … SSL用サーバー秘密鍵ディレクトリssl.ca/ (755)                                       … SSL用CA証明書ディレクトリ

/var/log/                                                     … ログディレクトリhttpd/ (755)                                             … HTTPサーバーログディレクトリvhosts/ (755)                                       … 仮想ドメイン/ホストログディレクトリsystem-act.com/ (755)                          … system-act.comドメインログルートディレクトリ
            ┃   ┣ www/ (755)                                … www.system-act.comログディレクトリ
            ┃   ┗ ssl/ (755)                                … ssl.system-act.comログディレクトリnekojara.com/ (755)                            … nekojara.comドメインログルートディレクトリwww/ (755)                                … www.nekojara.comログディレクトリ

定義ファイルの設定

HTTPサーバー定義 http.conf の設定を行います。
※ 有効にするLoadModuleは運用するサイトの環境に合わせて適宜選択してください。
# vi /usr/local/apache2/conf/http.conf
----------(vi ここから)----------
     :
#LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule auth_digest_module     modules/mod_auth_digest.so  # Digest認証を有効にします
     :
#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule socache_shmcb_module   modules/mod_socache_shmcb.so
                                                              # SSLセッションの共有メモリキャッシュを有効にします
     :
#LoadModule include_module modules/mod_include.so
LoadModule include_module         modules/mod_include.so      # SSIを有効にします
     :
#LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_module           modules/mod_proxy.so        # プロキシ/ゲートウェイ機能を有効にします
     :
#LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_http_module      modules/mod_proxy_http.so   # プロキシ/ゲートウェイ機能でHTTPプロトコルを有効にします
     :
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_ajp_module       modules/mod_proxy_ajp.so    # プロキシ/ゲートウェイ機能でAJP13プロトコルを有効にします
     :
#LoadModule ssl_module modules/mod_ssl.so
LoadModule ssl_module             modules/mod_ssl.so          # SSLを有効にします
     :
#LoadModule suexec_module modules/mod_suexec.so
LoadModule suexec_module          modules/mod_suexec.so       # SuExecを有効にします
#LoadModule cgid_module modules/mod_cgid.so
LoadModule cgid_module            modules/mod_cgid.so         # 外部CGIデーモンによるCGI実行を有効にします
     :
#LoadModule actions_module modules/mod_actions.so
LoadModule actions_module         modules/mod_actions.so      # リクエストメソッドによるCGI実行を有効にします
     :
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule rewrite_module         modules/mod_rewrite.so      # URL書き換え機能を有効にします

LoadModule php5_module            modules/libphp5.so          # PHP5モジュール版を組み込みます
     :
User  apache                                                  # apacheの実行ユーザーを変更しています
Group apache                                                  # apacheの実行グループを変更しています
     :
ServerAdmin HTTPサーバ管理者のメールアドレス
     :
#ServerName www.example.com:80
ServerName www.system-act.com                                 # 実サーバの名称(仮想ドメイン/ホストなので仮)を指定します
     :
<IfModule dir_module>
    DirectoryIndex index.html index.php index.cgi             # ディレクトリインデックスファイルを追加しています
</IfModule>
     :
ErrorLog "| /usr/sbin/cronolog -l /var/log/httpd/error_log /var/log/httpd/error_log-%Y-%m-%d"
                                                              # apacheサーバー用のエラーログファイルを変更しています
     :
    LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%!414r\" %>s %b" common          # wormによるログの増大対策をします#CustomLog logs/access_log common                         # commonフォーマットのログファイルは使用しません
     :
    #CustomLog logs/access_log combined

    SetEnvIf Remote_Addr 192.168.                     nolog   # ローカルネット内からのアクセスを記録しないようにしています
    SetEnvIfNoCase Request_URI "\.(css|js)$"          nolog   # .css/.jsファイルへのアクセスを記録しないようにしています
    SetEnvIfNoCase Request_URI "\.(gif|jpg|png|bmp)$" nolog   # 画像ファイルへのアクセスを記録しないようにしています
</IfModule>
     :
# Server-pool management (MPM specific)
#Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-mpm.conf                             # MPM設定を行います
     :
# Language settings
#Include conf/extra/httpd-languages.conf
Include conf/extra/httpd-languages.conf                       # 言語設定を行います
     :
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-vhosts.conf                          # 仮想ドメイン/ホスト設定を行います
     :
# Various default settings
#Include conf/extra/httpd-default.conf
Include conf/extra/httpd-default.conf                         # その他既定の設定を行います
     :
# Secure (SSL/TLS) connections
#Include conf/extra/httpd-ssl.conf
Include conf/extra/httpd-ssl.conf                             # SSL/TLS接続設定を行います----------(vi ここまで)----------

MIMEタイプ定義 mime.types の設定を行います。
# vi /usr/local/apache2/conf/mime.types
----------(vi ここから)----------
     :
application/x-hdf                             hdf
application/x-httpd-php                       php             # PHPの処理拡張子を追加します
application/x-httpd-php-source                phps            # PHPソースの処理拡張子を追加します
application/x-install-instructions            install
     :
----------(vi ここまで)----------

MPM定義 httpd-mpm.conf の設定を行います。
# vi /usr/local/apache2/conf/extra/httpd-mpm.conf
----------(vi ここから)----------
     :
<IfModule !mpm_netware_module>
    PidFile "/var/run/httpd.pid"                              # Pidファイルの場所を変更しています
</IfModule>
     :
----------(vi ここまで)----------

言語設定定義 httpd-languages.conf の設定を行います。
文字化け対策でLanguagePriorityの定義を変更するという記述を見かけますが、文字化け対策としては誤りです。
例えば、日本語と英語の両方が表示できる(MultiViews)環境のサイトで、ブラウザが言語の優先順位を提供していない場合に優先する言語を指定するのがLanguagePriorityです。
当サイトでは日本語のコンテンツのみで運用されますので、そもそも意味がないため無効にしています。
# vi /usr/local/apache2/conf/extra/httpd-languages.conf
----------(vi ここから)----------
     :
# DefaultLanguage nl
DefaultLanguage ja                                            # デフォルトの言語を日本語にしています#LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv tr zh-CN zh-TW
                                                              # LanguagePriorityを無効にしています#ForceLanguagePriority Prefer Fallback                        # ForceLanguagePriorityを無効にしています
     :
AddCharset shift_jis   .shift_jis .sjis

AddDefaultCharset UTF-8                                       # デフォルトの文字をUTF-8にしています----------(vi ここまで)----------

仮想ホスト定義 httpd-vhosts.conf の設定を行います。
# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
----------(vi ここから)----------
     :
# configuration.

Include conf/extra/vhosts-common.conf                         # 仮想ホスト共通の定義を別ファイルで行っています

#
     :
<VirtualHost 192.168.11.11:80>
    ServerAdmin 当該仮想ホストの管理者メールアドレス
    DocumentRoot "/home/www/vhosts/system-act.com/www/public_html"
                                                              # VirtualDocumentRootで生成することもできますが、
                                                              # その場合、PHPの$_SERVER['DOCUMENT_ROOT']が
                                                              # 設定されないようですので、DocumentRootを明示しています
    ServerName www.system-act.com                             # 仮想ホストのサーバ名を指定します
    ServerAlias system-act.com                                # ドメイン名のみでアクセスされた場合を考慮し別名を指定します
    ErrorLog "| /usr/sbin/cronolog -l /var/log/httpd/vhosts/system-act.com/www/error_log \
                                      /var/log/httpd/vhosts/system-act.com/www/error_log-%Y%m%d"
                                                              # エラーログファイルを変更しています
                                                              # cronologを使用し、日付なしのリンクファイルを作成しています
    CustomLog "| /usr/sbin/cronolog -S /var/log/httpd/vhosts/system-act.com/www/access_log \
                                    -P /var/log/httpd/vhosts/system-act.com/www/access_log_pre \
                                       /var/log/httpd/vhosts/system-act.com/www/access_log-%Y%m%d" combined env=!nolog
                                                              # アクセスログファイルを変更しています
                                                              # cronologを使用し、日付なしのリンクファイルを作成しています
                                                              # また、ひとつ前のログファイルへのリンクファイルを作成しています
                                                              # 統計情報取得のためcombinedフォーマットで記録します
                                                              # SetEnv nolog に設定した情報以外を記録します
    Include "conf/extra/vhosts/www.system-act.com.conf"       # 個別のディレクトリ設定情報等は別ファイルにしています
</VirtualHost>

<VirtualHost 192.168.11.11:80>
    ServerName    www.nekojara.com
    ServerAlias   nekojara.com
    ServerAdmin   当該仮想ホストの管理者メールアドレス
    DocumentRoot "/home/www/vhosts/nekojara.com/www/public_html"
    ErrorLog     "| /usr/sbin/cronolog -l /var/log/httpd/vhosts/nekojara.com/www/error_log \
                                          /var/log/httpd/vhosts/nekojara.com/www/error_log-%Y%m%d"
    CustomLog    "| /usr/sbin/cronolog -S /var/log/httpd/vhosts/nekojara.com/www/access_log \
                                       -P /var/log/httpd/vhosts/nekojara.com/www/access_log_pre \
                                          /var/log/httpd/vhosts/nekojara.com/www/access_log-%Y%m%d" combined env=!nolog
    Include      "conf/extra/vhosts/www.nekojara.com.conf
</VirtualHost>
----------(vi ここまで)----------

サーバー既定定義 httpd-default.conf の設定を行います。
# vi /usr/local/apache2/conf/extra/httpd-default.conf
----------(vi ここから)----------
     :
ServerTokens Prod                                             # HTTPレスポンスのサーバー情報は製品名のみにします----------(vi ここまで)----------

SSL定義 httpd-ssl.conf の設定を行います。
# vi /usr/local/apache2/conf/extra/httpd-ssl.conf
----------(vi ここから)----------
     :
<VirtualHost _default_:443>

#   General setup for the virtual host
DocumentRoot "/home/www/vhosts/system-act.com/ssl/public_html"
ServerName ssl.system-act.com
ServerAdmin 当該仮想SSLホストの管理者メールアドレス
ErrorLog "| /usr/sbin/cronolog -l /var/log/httpd/vhosts/system-act.com/ssl/error_log \
                                  /var/log/httpd/vhosts/system-act.com/ssl/error_log-%Y%m%d"
TransferLog "| /usr/sbin/cronolog -l /var/log/httpd/vhosts/system-act.com/ssl/access_log \
                                     /var/log/httpd/vhosts/system-act.com/ssl/access_log-%Y%m%d"
                                                              # アクセスログファイルを変更しています
     :
SSLCertificateFile "/usr/local/apache2/conf/ssl.crt/server.crt"
                                                              # SSLサーバー証明書ファイルを変更しています
#SSLCertificateFile "/usr/local/apache2/conf/server-dsa.crt"
     :
SSLCertificateKeyFile "/usr/local/apache2/conf/ssl.key/server.key"
                                                              # SSLサーバー秘密鍵ファイルを変更しています
#SSLCertificateKeyFile "/usr/local/apache2/conf/server-dsa.key"
     :
#SSLCertificateChainFile "/usr/local/apache2/conf/server-ca.crt"
SSLCertificateChainFile "/usr/local/apache2/conf/ssl.ca/sub.class1.server.ca.pem"
                                                              # SSLサーバー中間CA証明書ファイルを指定しています
     :
#SSLCACertificateFile "/usr/local/apache2/conf/ssl.crt/ca-bundle.crt"
SSLCACertificateFile "/usr/local/apache2/conf/ssl.ca/ca.pem"  # SSLサーバーCA証明書ファイルを指定しています
     :
CustomLog "| /usr/sbin/cronolog -l /var/log/httpd/vhosts/system-act.com/ssl/ssl_request_log \
                                   /var/log/httpd/vhosts/system-act.com/ssl/ssl_request_log-%Y%m%d" \
                                                              # SSLリクエストログファイルを変更しています
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

Include conf/extra/vhosts/ssl.system-act.com.conf             # 個別のディレクトリ設定情報等は別ファイルにしています
</VirtualHost>
----------(vi ここまで)----------

各仮想ホスト共通設定ファイル vhosts-common.conf を作成します。
# vi /usr/local/apache2/conf/extra/vhosts-common.conf
----------(vi ここから)----------
# ==========================================================================================
# File    : /usr/local/apache2/conf/extra/vhosts-common.conf
# 
# HTTPサーバー Apache 仮想ホスト共通定義
# 
# Copyright 2011-2013 System House ACT All rights reserved.
# ==========================================================================================

# サーバーに高負荷をかける自動巡回ツールに使用されているUser-Agentをアクセス禁止にします
SetEnvIf User-Agent "^Pockey-GetHTML"             badaccess

<Directory       "/">
  <RequireAll>
    Require     all granted
    Require not env badaccess
  </RequireAll>
</Directory>

# 仮想ホスト共通のRewriteルールを定義しています
<IfModule mod_rewrite.c>
  RewriteEngine   On
  LogLevel        rewrite:error 

  # 当サイトのグローバルIPアドレスでのアクセスを強制的にリダイレクトします
  RewriteCond     %{HTTP_HOST} 203\.189\.48\.125
  RewriteRule     ^/(.*)$ http://www.system-act.com/$1 [R=301,L]
</IfModule>
----------(vi ここまで)----------

仮想ホスト www.system-act.com の設定ファイル www.system-act.com.conf を作成します。
# vi /usr/local/apache2/conf/extra/vhosts/www.system-act.com.conf
----------(vi ここから)----------
# ==========================================================================================
# File    : /usr/local/apache2/conf/extra/vhosts/www.system-act.com.conf
#
# HTTPサーバー Apache 仮想ホスト www.system-act.com の定義ファイル
#
# Copyright 2011-2013 System House ACT All rights reserved.
# ==========================================================================================

# 仮想ホスト共通のRewriteルールを継承し、LogLevelを個別に指定しています
<IfModule mod_rewrite.c>
  RewriteOptions  inherit
  LogLevel        rewrite:error
</IfModule>

# cssとimagesディレクトリをDocumentRootの外に配置しています
Alias /css       "/home/www/vhosts/system-act.com/www/css"
Alias /images    "/home/www/vhosts/system-act.com/www/images"

# cgi-binディレクトリをDocumentRootの外に配置しています
ScriptAlias /cgi-bin "/home/www/vhosts/system-act.com/www/cgi-bin"
<Directory       "/home/www/vhosts/system-act.com/www/cgi-bin">
  # cgi-binディレクトリでのシンボリックリンクを有効にしています
  Options         FollowSymLinks
</Directory>

# weblogディレクトリをDocumentRootの外に配置しています
Alias /weblog    "/home/www/vhosts/system-act.com/www/weblog"
<Directory       "/home/www/vhosts/system-act.com/www/weblog">
  AllowOverride   FileInfo Limit
  # weblogディレクトリでのPHPは5.2.17のCGI版を使用するようにしています
  Action     php-5-2-17 /cgi-bin/php-5.2.17
  AddHandler php-5-2-17 .php

  # Jakarta Commons-HttpClientでのトラックバックスパムが多いため、やむなく禁止しています
  SetEnvIf User-Agent "^Jakarta Commons-HttpClient" badclient
  <RequireAll>
    Require     all granted
    Require not env badclient
  </RequireAll>
</Directory>
----------(vi ここまで)----------

仮想ホスト ssl.system-act.com の設定ファイル ssl.system-act.com.conf を作成します。
# vi /usr/local/apache2/conf/extra/vhosts/ssl.system-act.com.conf
----------(vi ここから)----------
# ==========================================================================================
# File    : /usr/local/apache2/conf/extra/vhosts/ssl.system-act.com.conf
#
# HTTPサーバー Apache の仮想ホスト ssl.system-act.com の定義ファイル
#
# Copyright 2011-2013 System House ACT All rights reserved.
# ==========================================================================================

# 仮想ホスト共通のRewriteルールを継承し、LogLevelを個別に指定しています
<IfModule mod_rewrite.c>
  RewriteOptions  inherit
  RewriteLogLevel 0
</IfModule>

# /css と /images はwww.system-act.comと共有しています
Alias /css       "/home/www/vhosts/system-act.com/www/css"
Alias /images    "/home/www/vhosts/system-act.com/www/images"
----------(vi ここまで)----------

仮想ホスト www.nekojara.com の設定ファイル www.nekojara.com.conf を作成します。
# vi /usr/local/apache2/conf/extra/vhosts/www.nekojara.com.conf
----------(vi ここから)----------
# ==========================================================================================
# File    : /usr/local/apache2/conf/extra/vhosts/www.nekojara.com.conf
#
# HTTPサーバー Apache 仮想ホスト www.nekojara.com の定義を行う
#
# Copyright 2012-2013 System House ACT All rights reserved.
# ==========================================================================================

# 仮想ホスト共通のRewriteルールを継承し、LogLevelを個別に指定しています
<IfModule mod_rewrite.c>
  RewriteOptions  inherit
  LogLevel        rewrite:error
</IfModule>

# cssとimagesディレクトリをDocumentRootの外に配置しています
Alias /css       "/home/www/vhosts/nekojara.com/www/css"
Alias /images    "/home/www/vhosts/nekojara.com/www/images"

# cgi-binディレクトリをDocumentRootの外に配置しています
ScriptAlias /cgi-bin "/home/www/vhosts/nekojara.com/www/cgi-bin"

# nekojara.com各ユーザーのディレクトリ構成を設定しています
AliasMatch ^/([^/]+)/css/(.*)    /home/www/vhosts/nekojara.com/www/$1/css/$2
AliasMatch ^/([^/]+)/images/(.*) /home/www/vhosts/nekojara.com/www/$1/images/$2
AliasMatch ^/([^/]+)/(.*)        /home/www/vhosts/nekojara.com/www/$1/public_html/$2
----------(vi ここまで)----------

SSL設定

StartSSLで取得したSSL証明書、秘密鍵、CA証明書および中間証明書をHTTPサーバーに設定します。
※ 取得した各証明書、秘密鍵は /home/startssl/ に存在するものとします。
$ # SSL証明書(server.crt)を設定します
$ sudo mkdir     /usr/local/apache2/conf/ssl.crt
$ sudo chmod 755 /usr/local/apache2/conf/ssl.crt
$ sudo cp /home/startssl/server.crt /usr/local/apache2/conf/ssl.crt/
$ sudo chmod 644 /usr/local/apache2/conf/ssl.crt/server.crt

$ # SSL秘密鍵(server.key)を設定します
$ sudo mkdir     /usr/local/apache2/conf/ssl.key
$ sudo chmod 500 /usr/local/apache2/conf/ssl.key
$ sudo cp /home/startssl/server.key /usr/local/apache2/conf/ssl.key/
$ sudo chmod 400 /usr/local/apache2/conf/ssl.key/server.key

$ # CA証明書(ca.pem)および中間証明書(sub.class1.server.ca.pem)を設定します
$ sudo mkdir     /usr/local/apache2/conf/ssl.ca
$ sudo chmod 755 /usr/local/apache2/conf/ssl.ca
$ sudo cp /home/startssl/*.pem /usr/local/apache2/conf/ssl.ca/
$ sudo chmod 644 /usr/local/apache2/conf/ssl.ca/*.pem

起動

自動起動の設定を行います。
$ # ソースアーカイブから自動実行スクリプトをコピーします
$ sudo cp /usr/local/src/httpd-2.4.4/build/rpm/httpd.init /etc/rc.d/init.d/httpd

$ # 自動実行スクリプトを変更します
$ sudo vi /etc/rc.d/init.d/httpd
----------(vi ここから)----------
     :
start() {
        echo -n $"Starting $prog: "
        # check13 || exit 1                                   # Ver:1.3のチェックはコメントアウトします
        LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
     :
reload() {
        echo -n $"Reloading $prog: "
        # check13 || exit 1                                   # Ver:1.3のチェックはコメントアウトします
        killproc -p ${pidfile} $httpd -HUP
     :
----------(vi ここまで)----------

$ sudo chmod 755 /etc/rc.d/init.d/httpd
$ sudo chkconfig httpd on

$ # システムの環境定義ファイルを作成します
$ sudo vi /etc/sysconfig/httpd
----------(vi ここから)----------
# ==========================================================================================
# File    : /etc/sysconfig/httpd
#
# HTTPサーバー Apache のシステム定義
#
# Copyright 2012-2013 System House ACT All rights reserved.
# ==========================================================================================

HTTPDROOT=/usr/local/apache2

HTTPD=$HTTPDROOT/bin/httpd
----------(vi ここまで)----------

httpdサーバーを起動します。
$ sudo service httpd start

ファイアーウォール設定

ファイアーウォール iptables の設定スクリプトにHTTPサーバーに関する設定を追加します。
$ sudo vi /usr/local/sbin/firewall.sh
----------(vi ここから)----------# --- (INPUTチェイン) ---# HTTP/HTTPS接続を許可
iptables -A INPUT -i $EXTIF -p tcp --dport  80 -j CHK-SYNFLOOD
iptables -A INPUT -i $EXTIF -p tcp --dport 443 -j CHK-SYNFLOOD# --- (OUTPUTチェイン) ---# HTTP/HTTPS接続を許可
iptables -A OUTPUT -o $EXTIF -p tcp --sport  80 -j ACCEPT
iptables -A OUTPUT -o $EXTIF -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT----------(vi ここまで)----------

$ sudo firewall.sh                                            # 設定を反映させます

過去ログの削除

ログを日付付きで毎日切替えて作成するように設定していますので、一定期間経過したログを削除します。
$ # cronで毎日実行させるため、削除するスクリプトを /etc/cron.daily/ に作成します
$ sudo vi /etc/cron.daily/httpd-log
----------(vi ここから)----------
#!/bin/sh
# ==========================================================================================
# File    : /etc/cron.daily/httpd-log
#
# HTTPサーバーのログ過去ログを削除する
#
# Copyright 2013 System House ACT All rights reserved.
# ==========================================================================================

find /var/log/httpd/ -type f -name '*log-*' -mtime +60 -exec rm -f {} \;
----------(vi ここまで)----------

$ sudo chmod 755 /etc/cron.daily/httpd-log

フィードバック

記事の内容についてのご質問、ご指摘、その他ご意見等は、Weblog/Twitter にて受け付けております。

System House ACT Weblog 内記事 : HTTPサーバー Apache

トラックバックまたはコメントにてお寄せください。

Twitter では .@systemact 宛につぶやいてください。
また、こちら から、この記事についてつぶやくことができます。
a System House to build an Accounting system by the Computer Technology