Mavericks の Mac OSX サーバーの Apache 構成をカスタマイズするにはどうすればいいですか?

Mavericks の Mac OSX サーバーの Apache 構成をカスタマイズするにはどうすればいいですか?

Mac OSX Mavericks Server をインストールしました。Apache Server にいくつかの機能 (gitolite、redmine など) を追加したいと考えています。ファイルの更新から始めましたhttpd_server_app.conf/Library/Server/Web/Config/apache2、残念ながらサーバーによってデフォルトに上書きされてしまいました。UI で何かを更新したか、更新が発生したためかもしれません... とにかく、構成ファイルを永続的に更新し、OSX Server UI や更新にメリットをもたらす方法を知りたいです...

おそらく、大きな「自分のものをここに入れてください」というラベルを見逃したのでしょう...

PS: ところで、追加するだけでなく、現在の構成の一部を変更したいと思っています...

答え1

そのフォルダ内の ReadMe.txt から:

httpd_server_app.conf

これは Apache が読み込む主要な設定ファイルです。Apache と共に配布される httpd.conf とは異なることに注意してください。これは Server の Apache 設定に固有のもので、/etc/apache2/httpd.conf のデスクトップ Apache 設定の代わりになります。Websites Service が Server アプリケーションでオンになっていると、特定のディレクティブがアクティブになります。これらは "IfDefine WEBSERVICE_ON" ブロックで囲まれています。このファイルは Server アプリケーションのサーバー常駐部分によって変更され、場合によっては webappctl(8) によって変更されます。管理者はこのファイルを直接変更することもできますが、通常は変更を別のファイルに入れて、Include ディレクティブを使用して組み込むのが最も安全です。

詳しくテストしたわけではありませんが、Apple の管理ツールはIncludeこのファイルのディレクティブをそのままにしておくようです。別の方法としては、/Library/Server/Web/Config/apache2/other/ のファイルに設定を入れることです。マスター ファイルには、Includeそのディレクトリ内のすべてが自動的に含まれるためです。また、特定の仮想サイトにのみ設定を追加する必要がある場合は、/Library/Server/Web/Config/apache2/sites/ のファイルにディレクティブを追加すればInclude、管理ツールはそれをそのままにしておくようです。

設定の変更(追加するだけではない)はより複雑です。これを行う一般的な「安全な」方法はわかりませんので、ケースバイケースで対応する必要があります。できない安全に変更できます。これが、OS X Server を汎用 Web サーバーとして使用することをあまりお勧めできない理由の 1 つです。OS X Server の構成は、OS X Server が提供するさまざまな Web ベースのサービス (プロファイル マネージャー、wiki、webcal、webDAV ファイル共有など) をサポートするために大幅に変更されており、独自の大幅な変更を加えようとすると、自分の構成と Apple の構成が互いに衝突する可能性が不愉快に高くなります。OS X Server は組み込みの Web ベースのサービスを実行するのに適していますが、組み込みのサービスの範囲をはるかに超える場合は、他のものを使用することをお勧めします。

ところで、OS X Server の apache ファイルの場所はかなり非標準的であることについて簡単に説明します。設定ファイルがいっぱい入った apache2 ディレクトリが少なくとも 3 つあります。

  • /Library/Server/Web/Config/apache2/* - これは OS X Server バージョンの Apache のライブ設定です。
  • /Applications/Server.app/Contents/ServerRoot/etc/apache2/* (実際には .../ServerRoot/private/etc/... にシンボリックリンクされています) - これらは、OS X Server を最初にセットアップするときにテンプレートとして使用されます。
  • /etc/apache2/* (実際は /private/etc ですが、シンボリックリンクされています) - これらのファイルは、OS X に付属する Apache のデフォルト (非サーバー) バージョンによって使用されますが、Apache のサーバー バージョンが使用される場合は無視されます。

関連情報