初心者も簡単ブログにコピペだけ!1クリック高単価7〜42円。登録無料最短1分でスタート。

homebrewで入れたhttpdが自動起動しない時にやる事。

httpdが自動起動しない時にやる事。

Mac OSXにパッケージ管理のhomebrewを使ってhttpdを入れてLaunchDaemonsにplistを登録してもうまく自動起動しない時の対処方法を紹介。

最初はbrew install httpdでインストールしてうまく動いていたのにいつの頃からか、再起動すると起動してない事が今までに何度もありました。El Capitanのrootlessの仕組みに罠がありました。

homebrewでupdateやupgradeをする時には/usr/local/*がの所有権がユーザー名:wheelになっていないと動かないので下記コマンドを実行して再起的に/usr/local/*の所有権を変更しました。

sudo chown -R  userName:wheel /usr/local

これで、面倒なパッケージ管理をhomebrewに委譲できると安心していた時、MACを再起動するとhttpdが起動してこないではないですか。

私の環境では/library/launchDeamonsにシンボリックリンクでhttp.plistを入れていたので(大元ファイルは/usr/local内)当然、前述の所有権操作でユーザーになっている状態なので起動できないのは当然です。

改めて、

sudo chown root:wheel /usr/local/Celler/httpd/x.xx.x/homebrew.mxcl.httpd24.plist
sudo ln -svf /usr/local/Celler/httpd/x.xx.x/homebrew.mxcl.httpd24.plist /library/LaunchDeamons/homebrew.mxcl.httpd24.plist 
sudo launchctl -W load /library/LaunchDeamons/homebrew.mxcl.httpd24.plist 
ps aux | grep httpd

で起動している事を確認して、念のため再起動後もhttpdが起動している事を確認終了!

余談ですが、httpd.confのListen 80のウェルノウンポートにしている場合はルート権限で起動しないといけないのでHTTPD自動起動に失敗していました。

この記事の対象はhttpd.conf内でListenを80ポートにしている場合です。

なお、home brewでは、自動起動コマンドで

brew services start httdがありますが、このコマンドでHTTPDの自動起動plistを生成すると~/library/launchAgents内に作成されるのでウェルノウンポートが80の場合には自動起動に失敗します。

初心者も簡単ブログにコピペだけ!1クリック高単価7〜42円。登録無料最短1分でスタート。