1. Apacheとは
Apacheとは、Webサーバーの実装の一種。
Webサーバーとは、HTTPをサポートしているサーバーであり、Webサーバーの基本機能は、サーバーマシン上のファイル(リソース、コンテンツ)をクライアントに転送することである。
現在のWebサーバーのマーケットシェア率(世界中の全サイト対象、2017年4月時点)は、
1位 Microsoft 45%
2位 Apache 23%
3位 nginx 19%
4位 その他
となっている。by Netcraft
2. バージョン確認と起動と停止
環境はCentOS6.9を用いた。
導入したApacheのバージョンを確認するコマンド
/usr/sbin/apachectl -v
or
rpm -qa | grep httpd
後者はyumやrpmパッケージでインストールしている場合のみ有効
起動、停止、再起動、状態確認に関してはsudoコマンドが必要
起動
/etc/init.d/httpd start
停止
/etc/init.d/httpd stop
再起動
/etc/init.d/httpd restart
状態確認
/etc/init.d/httpd status
3. 設定ファイル
3-1. 場所
/etc/httpd/conf/httpd.conf
httpd が起動する際に最初に読み込まれるメインの設定ファイル。
/etc/httpd/conf.d
httpd.conf ファイル内で include 指定されているディレクトリ。
このディレクトリ内に置かれた拡張子が.conf であるファイルも設定ファイルとして使用される。
3-2. コンテンツの配置
※以下のコードは全てhttpd.conf内の記述である。
ドキュメントルート ( DocumentRoot )
Apache が公開するファイルを含むディレクトリは、DocumentRoot ディレクティブで指定されています。CentOS6.9のデフォルトの場合、
DocumentRoot "/var/www/html"
と設定されている。このディレクトリに公開したいファイルを配置することになる。
インデックスファイル ( DirectoryIndex )
クライアントからの要求にファイル名の指定が無い場合に、デフォルトで返されるファイル名を指定。
DirectoryIndex index.html index.html.var
Indexes オプション ( Options Indexes )
通常、指定されたディレクトリ内にインデックスファイルが存在しなければエラーとなるが、Indexes オプションが設定されている場合、ディレクトリ内のファイルの一覧が返される。
/var/www/html にIndexes オプションを設定する場合
<Directory "/var/www/html"> Options Indexes ... </Directory>
3-3. ログの管理方法
サーバーが出力するログには、エラーログとアクセスログがある。
エラーログ:サーバープロセスに関連するログ。起動、停止時やリクエストを処理したときのエラーが記録される。
ErrorLog errorlog_filename LogLevel ( debug|info|notice|warn|error|crit|alert|emerg )
デフォルトの場所は、
/var/log/httpd/error_log
である。エラーで詰まって辛くなったら、とりあえずこの中身を見て、エラー内容をググれば、なんとかなるかも。
アクセスログクライアントからのリクエストを指定されたフォーマットで記録する。(大事!!)
LogFormat "format" format_nickname CustomLog accesslog_filename format_nickname
"format"
の部分には様々な文字列が使用可能(下記参照)。
アクセスログのフォーマット(LogFormat)
これをカスタマイズすることで、自分が欲しい情報のみを的確に捉えられる。
3-4. モジュール
Apacheには、多くのモジュール(いま風な言い方で言うとプラグイン)が提供されている。
実行時に使用するか選択できるモジュールのことを「動的な」モジュールといい、httpd.conf内にLoadModuleディレクティブを用いて設定される。
LoadModule構文
LoadModule module_name module_file
module_file:モジュール名。
module_file:モジュールの実装ファイル