人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

複雑化・長大化したApacheの設定ファイルをリファクタリングしたいのですが、参考になるサイトや書籍はありますでしょうか?

【環境】
CentOS 5.2 / Apache2.2

【解決したい問題】
・名前ベースのバーチャルホストがたくさんあり、似たような設定情報が重複して書かれている。
・HTTPとHTTPSでそれぞれバーチャルホストがあり、設定が重複している。
・パスの記述(/var/www/foo/bar)で同じようなものがあちこちに書かれている。
・テスト環境と本番環境でなぜか設定が異なる。
・必要ないと思われるような設定がいろいろある
・VirtualHostやDirectoryがネストしており、最終的に何が適用されたのかわかりずらい

●質問者: DQNEO
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● うぃんど
●100ポイント

チューニングは専門性が高いだけでなく、対応方法は状況によりけりなので、
網羅的なものは無いと思っておいたほうがいいかもしれないです

下記一例です

ドメイン単位で独立した別ファイルとしておくことで、
重複する記述をしなくて済み、見た目も管理もスッキリします
http://httpd.apache.org/docs/2.2/ja/mod/core.html#include

<VirtualHost *:80>
 Include ドメインAの設定ファイル
 Include ドメインBの設定ファイル
 Include ドメインCの設定ファイル
</VirtualHost>
<VirtualHost *:443>
 Include ドメインAの設定ファイル
 Include ドメインBの設定ファイル
</VirtualHost>

ドメインAの設定ファイル(B、Cもそれぞれ用意)

ServerName vhost1
DocumentRoot /usr/local/vhosts/vhost1
<Directory "/usr/local/vhosts/vhost1">
Options All
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>

Include はネストできますので、上記に加えて、
Directoryディレクティブの内容だけを書いたファイルを用意してしまうという手もあります

Options All
AllowOverride All
Order Allow,Deny
Allow from all

ドメインの設定ファイルは下記のように短くなります

ServerName vhost1
DocumentRoot /usr/local/vhosts/vhost1
<Directory "/usr/local/vhosts/vhost1">
Include 共通ファイル
</Directory>

DQNEOさんのコメント
ありがとうございます! includeは今鋭意導入中です。 これで共通部分がだいぶすっきりしますね。

2 ● y-kawaz
●100ポイント ベストアンサー

同じような設定のVirtualHostがいっぱいある場合はVirtualDocumentRootを使うとシンプルになるかも。
VirtualDocumentRootを使って複数ドメインをスッキリ管理(Apache) - y-kawazの日記


DQNEOさんのコメント
おお!す、素晴らしい!! そんな技があったんですね。 これぞ私が探したいたものです。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ