我已经安装了 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_服务器应用程序配置文件
这是 Apache 读取的主要配置文件。请注意,它与随 Apache 一起分发的 httpd.conf 不同。它特定于服务器的 Apache 配置,并取代 /etc/apache2/httpd.conf 中的桌面 Apache 配置。在服务器应用程序中启用网站服务时,会激活某些指令;这些指令被“IfDefine WEBSERVICE_ON”块括起来。此文件由服务器应用程序的服务器驻留部分修改,在某些情况下,由 webappctl(8) 修改。管理员可以直接对此文件进行更改,但通常最安全的做法是将更改放在单独的文件中并使用 Include 指令将其合并。
我还没有对此进行广泛的测试,但 Apple 管理工具似乎不会对Include
这个文件中的指令进行任何处理。另一种选择是将您的设置放在 /Library/Server/Web/Config/apache2/other/ 中的文件中,因为主文件Include
会自动保存该目录中的所有内容。此外,如果您只需要向特定虚拟站点添加设置,则可以将Include
指令添加到 /Library/Server/Web/Config/apache2/sites/ 中的文件,而管理工具似乎不会对它们进行任何处理。
更改设置(而不仅仅是添加)比较棘手;我不知道有什么通用的“安全”方法来做到这一点,所以你必须根据具体情况来做。可能有些事情你不能安全地更改。这是我不推荐使用 OS X Server 作为通用 Web 服务器的原因之一:它的配置经过大量修改以支持 OS X Server 提供的各种基于 Web 的服务(配置文件管理器、wiki、webcal、webDAV 文件共享等),如果您尝试进行大量修改……您和 Apple 的配置相互冲突的可能性会非常高。OS X Server 非常适合运行内置的基于 Web 的服务,但如果您要做的远远超出内置功能,我建议您使用其他服务。
顺便说一句,关于 OS X Server 中 apache 文件的非标准位置,需要简单说明一下:至少有三个 apache2 目录中充满了配置文件:
- /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 的服务器版本时会被忽略。