Problem integrating Bitcoin daemon with PHP I have installed the daemons of Bitcoin, Litecoin and Dogecoin on the same server. All three of them are up and running, but the Bitcoin daemon does not reply with anything when I run bitcoind getinfo. It may be network issues or something like that. I have installed PHP on the same server and created an index.php file in the /var/www/ folder.

Content of index.php file:

&lt;?php
    include_once('Bitcoin.php');
    include_once('jsonRPCClient.php');
    $dogecoin = new jsonRPCClient('http://user:pass@localhost:8332/');
    print_r($dogecoin-&gt;getinfo());
?&gt;


Content of Bitcoin.php:

&lt;?php
    class Bitcoin (
        // @var string
        private $username;
        // @var string
        private @password;
        // @var string
        private $url;
        // @var string
        private $id;

        public function __construct($url,$username,$password)
        {
            $this-&gt;url=$url;
            $this-&gt;username = $username;
            $this-&gt;password = $password;
            $this-&gt;id = 1;
        }

        public function __call($method,$params)
        {
            $params = array_values($params);

            $request = json_encode(array(
                                       'method' =&gt;strtolower($method),
                                       'params' =&gt; $params,
                                       'id' =&gt; $this-&gt; id));
            $curl = curl_init();
            curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($curl, CURLOPT_HTTPHEADER, Array("Content type:application/json"));
            curl_setopt($curl, CURLOPT_URL, $this-&gt;url);
            curl_setopt($curl, CURLOPT_USERPWD, $this-&gt;username.":".$this-&gt;password);
            curl_setopt($curl, CURLOPT_POST, TRUE);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $request);
            $response = curl_exec($curl);
            curl_close($curl);

            if(!$resposne)
            {
                throw new Exception('Unable to connect to '.$this-&gt;url, 0);
            }
            $response = json_decode($response,true);
        }

        Then there are a condition to throw a different error upon a different situation.

    }
Howdy? 

Ok I was searching for tutorials all over internet on "how to integrate bitcoin daemon with php" I came up with many and none of them helped me to get it working flawlessly, some of them threw unexpected and strange errors after 90% completion and some of them good enough to throw error in starting only which saved my time and efforts. Now that I have done what I was looking for why not create a step by step tutorial to help fellow members. So let's get started.

Before we start you should install tmux which helps you save your work even if you are disconnected from the vps. To install tmux:

sudo apt-get install tmux


to start tmux simply type tmux and to get back on mai screen press ctrl b and then d to restore the session again type tmux attach.

I am expecting you have a Ubuntu 12.x or later because that is what i used for installation. Log in to your VPS or your computer's terminal and install python software properties by typing following command : 

sudo apt-get install python-software-properties


then add repository ppa:bitcoin/bitcoin by typing following command

sudo add-apt-repository ppa:bitcoin/bitcoin


In my case this didn't work and threw an error stating that add-apt-repository command not found. In ubuntu later version versions this command is not found under python-software-properties package, like in previous versions, but available in software-properties-common. So I had installed it by running these commands :

sudo aptitude install software-properties-common


To find in which package the command we are looking for exists the following will be of help:

sudo apt-fille update


Unfortunately in my case this was also not installed so I had installed it by running following command :

apt-get install apt-file


Now I got the message "The file is up to date"

Now run 
    sudo apt-file search add-apt-repository

You will be prompted to confirm this installation, press Enter key to confirm. 

Now run 

sudo aptitude update


and then 
    sudo aptitude install bitcoind

Make a new directory by typing :

mkdir ~/.bitcoin
cd ~/.bitcoin


Create a new file inside this directory named bitcoin.conf by typing:
    nano bitcoin.conf

insert the following code in the text file:

server=1
daemon=1
rpcuser=any_username
rpcpassword=any_password


Exit by pressing ctrl+x to confirm the changes press Y and then press return key. Start the bitcoin daemon by typing:

bitcoind


Bitcoin daemon is now installed and runing you can check it by running the following command 

bitcoind getinfo


Now we will install apache and php on our server

To install apache we will run th following code:

sudo apt-get install apache2


once apache is installed verify it by typing your ip address in the browser it will say It works!

now we will install php by following command:

sudo apt-get install php5 libapache2-mod-php5


now navigate to var/www folder and download jsonRPCClient.php with the following command:

wget http://pmtocoins.com/JSON-RPC_PHP_light.zip


once downloaded unzip it by typing:
    unzip JSON*.zip

no move to the directory by:
    cd json*/includes

and move jsonRPCClient.php into your www folder

now create a new index.php file in www folder with following code 

&lt;?php
include_once('jsonRPCClient.php');
$bitcoin = new jsonRPCClient('http://your_username:your_password@127.0.0.1:8332/');
print_r($bitcoin-&gt;getinfo());
?&gt;


and you are done navigate to your ip address on the browser e.g 161.232.12.1/index.php

You can have a look on API call list here : https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list