在Apache环境下面安装Pow

Pow简介

Pow 是 37signals 出品一款Web开发辅助工具,用于帮开发者搭建一个浏览器可以访问的环境。使用 Pow 的好处主要就是在没有 Apache 的环境里面也可以最快的方式去启动一个 Http Server,同时这个 Server 的地址是以你设定的 app name.dev 来访问的。例如你配置的名称是 code,则它会允许你以 code.dev 来访问,而无需用户在 /etc/hosts 里配置。由于是 37signals 开发,因此即便 Pow 是使用 Nodejs 来写的,其配合的主要对象也是 Ruby 的 Rack。

Pow 和 Apache 共处

但是在 OSX 上一般开发者均有开启并使用系统默认的 Apache。如果使用 Pow 的默认配置,则会因为端口问题直接导致localhost无法使用(这个时候localhost指向的是 Pow 的目录,访问的话会显示 Pow 安装成功的信息)。这个时候只要执行一下下面的代码即可:

curl get.pow.cx/uninstall.sh | sh #if you have pow installed
echo 'export POW_DST_PORT=88' >> ~/.powconfig
sudo curl https://gist.github.com/soupmatt/1058580/raw/zzz_pow.conf -o /private/etc/apache2/other/zzz_pow.conf
sudo apachectl restart
curl get.pow.cx | sh

其作用是将 Pow 运行时候的端口换成 88 ,并将 Apache 接收到的 .dev.xip.io 两个域名交给 Pow 来处理,而其他的则继续走默认的处理方式。

如果还有问题

Apache 还是没有接管

但是有的时候会发现 Apache 还原原来的80端口的调用。这个时候需要确认 Apache 的配置:

1.检查 /private/etc/apache2/httpd.conf 里面 vhosts 这行是否有开启,如果没有找到,则可以将下面这行添加进去,并找一个默认的httpd-vhosts.conf文件放到对应的目录下面。

Include /private/etc/apache2/extra/httpd-vhosts.conf

2.在httpd-vhosts.conf里面开启下面这行:

NameVirtualHost *:80

3.将下面两行开启即可(里面的内容无需反注释,使用 Apache 默认的即可):

<VirtualHost *:80>

</VirtualHost>

4.重启 Apache:

sudo apachectl restart

接下来重启 Pow 即可。

Pow 还是报 404 错误

这是因为 Pow 是直接将静态目录指向 Project 下面的 public ,如果是其他的内容,还需要写一个config.ru 来配置具体的地址指向。

Nodejs relative

有关 Nodejs 的网站项目配置可以参考:Using Pow with your Node.js project

Q.E.D.