それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

OSXのApache設定変更で、自動リロードにする

Apacheの設定反映後に、再起動するのが面倒だ。

再起動コマンド

sudo apachectl restart

たったこれだけなんだけど、ちょっと面倒だったりする

頻繁に設定を書き換えてrewrite 細かく調整してたり、cgi 設定してたり・・・

launchctl で自動再起動

PathをWatchして、自動再起動を仕込んでおく

plist 作成

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
          "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>biz.takuya.apache</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/sbin/apachectl</string>
        <string>restart</string>
    </array>
    <key>onDemand</key>
    <true/>
    <key>StandardErrorPath</key>
    <!-- <string>/dev/null</string>-->
    <string>/tmp/apachectl.error.log.txt</string>
    <key>StandardOutPath</key>
    <!-- <string>/dev/null</string> -->
    <string>/tmp/apachectl.stdout.log.txt</string>
    <key>WatchPaths</key>
    <array>
    <string>/private/etc/apache2/</string>
    <string>/private/etc/apache2/extra/</string>
    <string>/private/etc/apache2/original/</string>
    <string>/private/etc/apache2/original/extra/</string>
    <string>/private/etc/apache2/other/</string>
    <string>/private/etc/apache2/users/</string>
    </array>
  </dict>
</plist>

plist をコピー

rootの launchagents として設定を仕込んでおく

sudo su -l
cp my.plist /Library/LaunchAgents/biz.takuya.apache.plist

登録

sudo su -l
%cd  /Library/LaunchAgents
%launchctl load  biz.takuya.apache.plist
%launchctl list | grep takuya
-   0   biz.takuya.apache

登録できたので、あとは設定書き込み後に、再起動するか監視

watch -dc -n pgrep httpd

これで、設定をアレコレ試すのがちょっとだけ楽になった。