Wenn ich meine PHP-Datei über die Befehlszeile ausführe, erhalte ich Folgendes:
<pre>
PHP Warning: fopen(http://...@127.0.0.1:8332/): failed to open stream: HTTP request failed! HTTP/1.0 401 Authorization Required
in /home/brian/Desktop/VH2_apache2/host02/btc16/jsonRPCClient.php on line 132
PHP Fatal error: Uncaught exception 'Exception' with message 'Unable to connect to http://b:a@127.0.0.1:8332/' in /home/brian/Desktop/VH2_apache2/host02/btc16/jsonRPCClient.php:140
Stack trace:
#0 /home/brian/Desktop/VH2_apache2/host02/btc16/index1.php(12): jsonRPCClient->__call('getinfo', Array)
#1 /home/brian/Desktop/VH2_apache2/host02/btc16/index1.php(12): jsonRPCClient->getinfo()
#2 {main}
thrown in /home/brian/Desktop/VH2_apache2/host02/btc16/jsonRPCClient.php on line 140
Meine php-Datei sieht so aus:
<?php
require_once 'jsonRPCClient.php';
$bitcoin = new jsonRPCClient('http://user:password@127.0.0.1:8332/',true);
#$param = array(
#'c418518d5ffccd947e377ab7e589f684d83e6df1af8f397cc11848ac8a78f0dd',
#'1');
#$return1 = $bitcoin->getrawtransaction('c418518d5ffccd947e377ab7e589f684d83e6df1af8f397cc11848ac8a78f0dd','1')
echo "<pre>\n";
print_r($bitcoin->getinfo()); echo "\n";
#print_r($return1['0']); echo "\n";
#echo "Received: ".$bitcoin->getreceivedbylabel("Your Address")."\n";
echo "</pre>";
?>
Meine Webseite mit Apache2 erscheint leer und verwendet die von mir erstellte PHP-Datei. Ich verwende den Parameter -txindex, wenn ich Bitcoin starte.
Aber ich kann bitcoin-cli verwenden, um mit bitcoind zu interagieren
Iv'e used:
bitcoin-cli getrawtransaction c418518d5ffccd947e377ab7e589f684d83e6df1af8f397cc11848ac8a78f0dd 1
and:
bitcoin-cli getinfo
Auch meine bitcoin.conf sieht so aus:
rpcuser=user
rpcpassword=pass
txindex=1
server=1
Beachten Sie auch, dass ich die Benutzernamen und Passwörter ersetzt habe, um sie zu verbergen.
Meine Frage ist, warum ich bitcoin-cli verwenden kann und keinen Fehler bekomme, aber wenn ich versuche, jsonRPCClient.php zu verwenden, erhalte ich den Fehler 401 Autorisierung erforderlich und wie behebe ich den Fehler?
Ich denke, das hängt mit diesem offenen Problem zusammen.
https://github.com/bitcoin/bitcoin/issues/9661
Ich habe Bitcoin auf Ubuntu 16 ausgeführt.
Ich hatte das ähnliche Problem, als ich rpcuser
und rpcpassword
in der Konfigurationsdatei hatte. Alles, was ich bekam, war ein 401-Fehler, als ich die jaon-rpc-API anrief.
Ich habe eine Problemumgehung gefunden, indem ich bereitgestellt habe, -rpcuser=REPLACED -rpcpassword=REPLACED
als ich die Bitcoin gestartet habe.
Hoffe, das ist nützlich.
Eine weitere Sache, anstatt von Ihrem RPC-Client in PHP zu debuggen. Probiere es vielleicht curl
erstmal mit. HTTP 401 ist eindeutig ein Authentifizierungsproblem, die Verwendung curl
ist viel einfacher für das Debuggen.
Bitte vergewissern Sie sich, dass Ihr RPC-Benutzername und Ihr Passwort korrekt sind, und vergewissern Sie sich auch, dass Ihr Benutzername und Ihr Passwort kein (#)-Tag enthalten.
Stellen Sie sicher, dass Sie überprüfen, welche bitcoin.conf
Konfigurationsdatei der bitcoind
Daemon verwendet. Es wird explizit beim Bootstrapping angezeigt.
Dies würde auftreten, wenn Sie den standardmäßigen Bitcoin-Core-Installationspfad beim Setup ändern.
Auf diese Weise müssen Sie den Benutzer/pwd nicht über CLI beim Dienststart übergeben.
Nick Odell
pass
in Ihrer Konfigurationsdatei ist, und es istpassword
in Ihrer Konfigurationsdatei. Spiegelt das den Inhalt Ihrer config/php-Dateien wider?Gemohn Herbile
Nick Odell
Morsecoder
Gemohn Herbile
Gemohn Herbile