Another issue I noticed with bitcoind’s JSON-RPC is that by default there is no user, and PHP’s fopen() function does not try to send the authentication information if no user was specified.
For example, this URL does not work: But this one does:
I had to set the “rpcuser” in my node’s bitcoin.conf file in order to get PHP to play nicely.