如何定制特立独行的mac OSX服务器的Apacheconfiguration?

我已经安装了Mac OSX小牛服务器,我想添加一些function到Apache服务器(gitolite,redmine等)我已经开始更新/Library/Server/Web/Config/apache2httpd_server_app.conf文件,但不幸的是它已被服务器覆盖到默认值。 也许是因为我已经更新了UI中的某些东西,或者发生了更新……无论如何,我想知道如何以永久和持久的方式更新configuration文件,并且仍然有利于OSX Server UI和/或更新…

我可能错过了这个大牌:“把你自己的东西放在这里:”标签…

PS:顺便说一句,我希望修改一些目前的configuration,不仅仅是添加东西…

从该文件夹中的ReadMe.txt:

httpd_server_app.conf

这是Apache读取的主要configuration文件。 请注意,它与Apache分发的httpd.conf不同。 这是特定于服务器的Apacheconfiguration,并取代/etc/apache2/httpd.conf中的桌面Apacheconfiguration。 某些指令在服务器应用程序中打开网站服务时激活; 这些由“IfDefine WEBSERVICE_ON”块括起来。 该文件由服务器应用程序的服务器驻留部分修改,在某些情况下由webappctl(8)修改。 pipe理员可以直接对此文件进行更改,但通常最安全的方法是将更改放入单独的文件中,并使用“包含”指令来合并它们。

我还没有广泛的testing,但苹果pipe理工具似乎只在这个文件中Include指令。 另一个select是将你的设置放在/ Library / Server / Web / Config / apache2 / other /中的一个文件中,因为主文件会自动Include该目录中的所有内容。 此外,如果您只需要将设置添加到特定的虚拟站点,则可以将Include指令添加到/ Library / Server / Web / Config / apache2 / sites /中的文件,而pipe理工具似乎使其独立。

更改设置(而不是仅仅添加)是棘手的; 我不知道这样做的一般“安全”方法,所以你必须按照具体情况进行处理。 可能有些事情你不能安全地改变。 这是我无法真正推荐使用OS X Server作为通用Web服务器的原因之一:它的configuration已被广泛修改,以支持OS X Server提供的各种基于Web的服务(configuration文件pipe理器,wiki,webcal,webDAV文件共享等),如果你试图对自己进行大量的修改,那么你和苹果的configuration互相绊倒的可能性就会变得非常高。 OS X Server适合运行内置的基于Web的服务,但是如果你远远超出内置的内容,我会使用其他的东西。

顺便说一句,有关OS X Server中apache文件的非标准位置的快速说明:至less有三个configuration文件的apache2目录:

  • / Library / Server / Web / Config / apache2 / * – 这是OS X Server版本的Apache的实时configuration。
  • /Applications/Server.app/Contents/ServerRoot/etc/apache2/*(实际上符号链接到… / ServerRoot / private / etc / …) – 这些在首次设置OS X Server时用作模板。
  • / etc / apache2 / *(实际上是/ private / etc,但是是符号链接的) – 这些文件被OS X默认的(非服务器)版本的apache使用,但是当服务器版本的apache用过的。