我必须在 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 并更改路径以满足您的需要。