如何在 OSX 中启动自定义安装的 Apache

如何在 OSX 中启动自定义安装的 Apache

我必须在 OSX 上安装自定义 Apache,因为我需要为客户端提供非常具体的配置,但不幸的是,我无法让默认配置正确地与其一起工作。

因此,我了解了如何使用apachectl二进制:

sudo /usr/local/apache2/bin/apachectl start

我还看到我可以让默认的 Apache 以启动控制命令

但,我怎样才能使自定义安装随系统启动而不是默认的?如果可以的话,我想使用系统的启动控制

答案1

解决方案:

卸载默认的 Apache:

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

创建 LaunchDaemon 文件(/Library/LaunchDaemons/com.aaa.launchd.apache2.plist):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.aaa.launchd.apache2</string>
<key>ProgramArguments</key>
<array>
    <string>/usr/local/apache2/bin/apachectl</string>
    <string>start</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

更改文件所有者:

sudo chown root:wheel /Library/LaunchDaemons/com.aaa.launchd.apache2.plist

最后,将其添加到启动时加载:

sudo launchctl load -w /Library/LaunchDaemons/com.aaa.launchd.apache2.plist

答案2

您将执行与您链接到的 launchctl 过程相同的操作。缺少的部分是您需要制作自己的 launchd.plist 并将其保存在 LaunchDaemons/ 目录中。 man launchd.plist有关 plist 格式的信息;或者,您可以复制原始的 apache 并更改路径以满足您的需要。

相关内容