Apache 資料一覧
2014/6/12更新
対応バージョン: 2.4.9
公式サイト
http://apr.apache.org/ (APR:Apache Portable Runtime)
http://httpd.apache.org/ (httpd)
準備
あらかじめインストールしておくもの
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