Pow 是一個很好用的 RoR 開發工具,它讓我們可以不需要透過 rails s
來啟動 server,也可以把 http://localhost:3000/ 這樣的網址 hijack 成 http://project.dev/ 這樣比較美觀的方式,真的是不錯好用。
原則上 Pow 和 Apache 本身會互相衝突,官方也提出了一個解決方法:
$ curl get.pow.cx/uninstall.sh | sh #if you have pow installed
$ echo 'export POW_DST_PORT=88' >> ~/.powconfig
$ sudo curl https://raw.github.com/gist/1058580/zzz_pow.conf -o /private/etc/apache2/other/zzz_pow.conf
$ sudo apachectl restart
$ curl get.pow.cx | sh
如此一來,Pow 和 Apache 是可以共存了,但因為我有一些小程式是透過 PHP 來運作,放在 localhost 的使用者目錄下跑,但就上述 zzz_pow.conf 的設定:
ServerName pow
ServerAlias *.dev
ServerAlias *.xip.io
ProxyPass / http://localhost:20559/
ProxyPassReverse / http://localhost:20559/
ProxyPreserveHost On
Pow 會把所有 localhost 全部導過去,找到了個解法,在 ProxyPass
前加入一行 Match 的指令即可:
ServerName pow
ServerAlias *.dev
ServerAlias *.xip.io
ProxyPassMatch ^/~ !
ProxyPass / http://localhost:20559/
ProxyPassReverse / http://localhost:20559/
ProxyPreserveHost On