LTSVフォーマットでのログ出力設定Apacheにおいて、tab区切りでラベル付けされたLTSVフォーマットでログ出力をする設定。ValuesApacheがLTSVフォーマットで出力できるように設定ファイルhttpd.confのLogFormatに登録する。ここではcombinedとltsvの両方のフォーマットでログを保存することにする。フォーマットの内容はカスタマイズできるものなので決まった書式はないが、ここでは公式サイトに例として書かれているものを採用している。ltsv--------------------------------------サーバ全体のログの出力についてはhttpd.confに記述する。デフォルトではログの出力がcombined形式になっているので先ほど追加したltsvも追加しておく。LTSVだけで出力したい場合はcombinedの行をコメントアウトすればよい。ltsv--------------------------------------バーチャルドメイン毎の設定についてはVirtualHostディレクティブの中に記述する。ltsv</VirtualHost>設定の記述が合っているか確認してからApacheを再起動する。gracefulLTSVフォーマットのログは/var/log/httpd/access_log.ltsv、/var/log/httpd/www.example.com.access_log.ltsvに出力されるようになる。再起動した時点で空のログファイルで生成されるのでlsコマンドで存在しているか確認しておく。-l)を使用している。-fコマンドを利用して確認しておくとよいだろう。/var/log/httpd/access_log.ltsv--------------------------------------ログの出力をリアルタイムで確認、Ctrl+Cで終了--------------------------------------このままでは、ログのローテーションの対象に*access_log.ltsvが含まれないので/etc/logrotate.d/httpdに/var/log/httpd/*ltsvがローテーション対象に含まれるよう設定を追加する。ログ]PHPの最新版をソースからインストール標準パッケージの場合は/etc/httpdが設定ファイル設置場所ですが、ソースからインストールした場合は/usr/local/apache2/が設定ファイルの設置場所になります。configureのオプションはそれぞれの環境、要望に応じて変更してください。AddDefaultCharsetCentOSのyumでインストールしたApacheでは、レスポンスに追加されるメディアタイプの文字セットパラメータがUTF-8に設定されているため、metaタグでUTF-8以外のcharsetを記述していても、ブラウザで無視されてWebアプリケーションやHMTLが文字化けします。文字化けが起こる原因は、AddDefaultCharsetディレクティブにUTF-8が設定されていることなので、httpd.confに記述されているAddDefaultCharsetの設定自体をコメントアウトします。UTF-8---------------------------AddDefaultCharset自体のデフォルト値はOffのため、コメントアウトすることでOffを設定したことと同じになります。Offにしたことを明示したい場合は、次の様に記述すると良いでしょう。実際にこの設定で何が変わるのかを見ていきましょう。AddDefaultCharsetの設定をUTF-8、Offにした場合のレスポンスヘッダにおけるContent-Typeの変化を示します。charsetが表示されないレスポンスヘッダのContent-Typeの文字コードがUTF-8となっていると、HTMLのmetaタグに設定されている文字コードがブラウザによって無視されるため、文字コードのミスマッチがあると文字化けが起こることになります。AddDefaultCharset]Apacheのバージョン確認方法コマンドラインからapacheのバージョンを確認する方法httpdコマンドもしくはapachectlの-vオプションで確認できます。20:33:30----------------------------------------/etc/rc.d/init.d/httpdは起動スクリプトなので-vオプションはききません。ソースからインストールした場合はhttpdコマンドがパスにないかもしれないので、インストールディレクトリへのパスも含めて実行してみてください。