Apache 資料一覧

Apacheインストール手順

2014/6/12更新

対応バージョン: 2.4.9

公式サイト

準備

あらかじめインストールしておくもの

OpenSSL (SSLを利用する場合)
OpenLDAP (LDAPを利用する場合)

関連資料・記事

pcreライブラリ
% sudo apt-get install libpcre3-dev

導入OS

Ubuntu 14.04

管理用アカウント作成

% sudo groupadd -r apache
% sudo useradd -r -g apache -s /bin/false -d /nonexistent apache

APRインストール

配布ファイル展開

% tar jxvf apr-1.5.1.tar.bz2 
% cd apr-1.5.1

make,インストール

% ./configure
% make
% sudo make install

インストール物 (man,infoは除く)

/usr/local/apr/*/*

APR-utilインストール

配布ファイル展開

% tar jxvf apr-util-1.5.3.tar.bz2
% cd apr-util-1.5.3

make,インストール

% ./configure --with-apr=/usr/local/apr/bin/apr-1-config
% make
% sudo make install

インストール物 (man,infoは除く)

/usr/local/apr/*/*

httpdインストール

配布ファイル展開

% tar jxvf httpd-2.4.9.tar.bz2
% cd httpd-2.4.9

make,インストール

% ./configure <オプション>

必要に応じて<オプション>でモジュールを組み込むことができる。ここでは以下のモジュールを有効にする。

Rewriteサポート
--enable-rewrite

関連資料・記事

Proxyサポート
--enable-proxy

また、デフォルトで有効になるモジュールのうち必要ないものはあらかじめ無効にしておくことでパフォーマンスアップが図れる。ここでは以下のモジュールを無効にする。

ユーザホームディレクトリ参照
--disable-userdir

関連資料・記事

% make
% sudo make install

インストール物 (man,infoは除く)

/usr/local/apache2/*/*

セキュリティの観点から以下のファイルは削除しておく。

/usr/local/apache2/cgi-bin/*

各種設定

/usr/local/apache2/conf/httpd.confにて基本的な設定を行う。

以下、主な設定項目について説明する。

サーバルート

Apacheの各種ファイルがインストールされているディレクトリを設定する。

後述する設定の中で相対パスが指定された場合、このディレクトリが起点となる。

(*) コンテンツの格納場所であるドキュメントルートは別途設定する。

ServerRoot = "/usr/local/apache2"

サーバの待ち受けポート

Listen 80

モジュール組み込み

使用するモジュールを機能毎に明示する。

例) RewriteモジュールとProxyモジュール

LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so

デーモン実行ユーザ/グループ

<IfModule unixd_module>
User daemon
Group daemon
</IfModule>

サーバ管理者のメールアドレス

ServerAdmin you@example.com

ドキュメントルート

コンテンツが格納されているディレクトリを設定する。

DocumentRoot "/usr/local/apache2/htdocs"

コンテンツ毎の詳細な設定

Apacheではコンテンツ(サブディレクトリ)毎にアクセス制御や各種機能のON/OFFが詳細に設定できる。

まずはデフォルトの設定として「/」(トップディレクトリ)に対する設定を行い、各コンテンツに対する設定はデフォルトの設定を継承して必要な部分をオーバーライドする形で行う。

各設定の詳細については割愛する。

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

インデックスファイル

リクエストが「/」で終わっている場合にインデックスファイルとして検索するファイルを指定する。

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule> 

エラーログ

エラーログの出力先、出力レベル、及びログファイルのフォーマットを指定する。

ErrorLog logs/error_log
LogLevel warn

アクセスログ

アクセスログのフォーマット(複数指定可能)と出力先ファイルを指定する。

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    :
</IfModule>

MIMEタイプマッピング

リクエストされたファイルの拡張子とMIMEタイプのマッピングを行う。

基本的なマッピングはTypesConfigで指定する別ファイルで行うが、追加で設定したいMIMEタイプはここで設定する。

また、拡張子によるハンドラ設定(CGI、SSIなど)もここで行う。

<IfModule mime_module>
    TypesConfig conf/mime.types 
    :
    AddType application/x-gzip .tgz
    :
    #AddHandler cgi-script .cgi
    :
</IfModule>

動作確認

デーモンを起動する。

% sudo /usr/local/apache2/bin/apachectl start

待ち受けポートがLISTENになっているか確認する。

% netstat -nat|egrep '(Proto|:80)'
Proto 受信-Q 送信-Q 内部アドレス            外部アドレス            状態      
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     

WebブラウザでlocalhostにアクセスできればOKである。

initスクリプト設置

% sudo install -o root -g root -m 755 /usr/local/apache2/bin/apachectl /etc/init.d/apache

% sudo update-rc.d apache defaults 85 15