前提条件
- homebrew
インストール
% brew install nginx
設定ファイル
nginx を sudo つけて起動するシェルスクリプトを作成する。
(実行権限つけるのを忘れないこと)
/usr/local/bin/nginx_with_sudo
#!/bin/bash
BIN="/usr/local/sbin/nginx"
function on_die() {
sudo $BIN -s stop
exit 0
}
trap on_die TERM
sudo $BIN $@ &
wait
nginxはdaemon offで起動するので nginx.conf に記述する。
(ここはplistで指定したかったけどうまくいかなかった)
ポートは 80 に設定する
/usr/local/etc/nginx/nginx.conf
(…snip…)
daemon off;
(…snip…)
http {
(…snip…)
server {
listen 80;
(…snip…)
plist ファイルは{USER_NAME}を適宜置き換えること
~/Library/LaunchAgents/homebrew.mxcl.nginx.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>homebrew.mxcl.nginx</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>UserName</key>
<string>{USER_NAME}</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/sbin/nginx_with_sudo</string>
</array>
<key>WorkingDirectory</key>
<string>/usr/local</string>
</dict>
</plist>
起動確認
% launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
http://localhost:80 にアクセスしてみると nginx が起動していることが確認できる