JSON-RPC call to bitcoind error, 403 failed to open stream
I just read through the code that handles rpcallowip, and I can tell you that rpcallowip=0.0.0.0 won't work.

If you want to allow from all addresses, you should use 

rpcallowip=0.0.0.0/0


(Weirdly, I can't find any code that handles wildcards. I'm going to open an issue on github about it. It looks like either the documentation or the code is wrong.)

Edit: It turns out that wildcard support has been removed.