- 删除php的相关包及配置
sudo apt-get autoremove php7* - 删除关联
sudo find /etc -name "*php*" |xargs rm -rf - 清除dept列表
sudo apt purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "` - 检查是否卸载干净(无返回就是卸载完成)
dpkg -l | grep php7.0
2018年7月
sudo apt-get autoremove php7*
sudo find /etc -name "*php*" |xargs rm -rf
sudo apt purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
dpkg -l | grep php7.0
由于要做个EOS浏览器,展示MongoDb的数据so...
安装apache2
sudo apt-get install apache2
安装php7
sudo apt-get install php7.0
安装apache2 php7 module
sudo apt-get install libapache2-mod-php7.0
测试apache工作是否是正常
从github获取最新版本mongo-php-driver的下载地址
开始下载
root@iZ2zea5mjpcmz9m17k56daZ:~# wget https://github.com/mongodb/mongo-php-driver/releases/download/1.5.1/mongodb-1.5.1.tgz
下载完毕后解压
root@iZ2zea5mjpcmz9m17k56daZ:~# tar -zxf mongodb-1.5.1.tgz
进入安装目录
root@iZ2zea5mjpcmz9m17k56daZ:~# cd mongodb-1.5.1/
开始编译
root@iZ2zea5mjpcmz9m17k56daZ:~/mongodb-1.5.1# phpize
Configuring for:
PHP Api Version: 20151012
Zend Module Api No: 20151012
Zend Extension Api No: 320151012
如果提示The program 'phpize' is currently not installed先执行安装
root@iZ2zea5mjpcmz9m17k56daZ:~/mongodb-1.5.1# phpize
The program 'phpize' is currently not installed. You can install it by typing:
apt install php7.0-dev
root@iZ2zea5mjpcmz9m17k56daZ:~/mongodb-1.5.1# apt-get install php7.0-dev
继续执行编译
./configure
make && make install
修改当前使用php配置文件,添加mongodb.so扩展配置
vim /etc/php.ini
extension=mongodb.so
重启php-fpm服务
sudo service php7.0-fpm restart & service appache2 restart
在/var/www/html/中新建test.php进行测试
<?php
// http://php.net/manual/en/class.mongodb-driver-manager.php
$manager = new MongoDB\Driver\Manager();
echo '<pre>';
var_dump($manager);
echo '</pre>';
exit;
查看网址此文件返回如下,及配置完成
object(MongoDB\Driver\Manager)#1 (2) {
["uri"]=>
string(20) "mongodb://127.0.0.1/"
["cluster"]=>
array(1) {
[0]=>
array(11) {
["host"]=>
string(9) "127.0.0.1"
["port"]=>
int(27017)
["type"]=>
int(0)
["is_primary"]=>
bool(false)
["is_secondary"]=>
bool(false)
["is_arbiter"]=>
bool(false)
["is_hidden"]=>
bool(false)
["is_passive"]=>
bool(false)
["tags"]=>
array(0) {
}
["last_is_master"]=>
array(0) {
}
["round_trip_time"]=>
int(-1)
}
}
}
查看当前php使用的php.ini
终端输入 php --ini查看Loaded Configuration File
打开PHP Error输出
打开当前使用 php.ini 修改 display_errors = On
PHP log目录 /var/log/apache2
查看PHP版本 php -v
查看PHP扩展目录 php -i | grep extension_dir
eosio::mongo_db_plugin (EOSIO 1.1.0 Release Notes)v1.1.0之前的版本请参考 (EOS enable mongodb)
v1.1.0分支,编译代码。plugin = eosio::mongo_db_plugin
mongodb-uri = mongodb://localhost:27017/eosmain
其中,eosmain是要写入的MongoDB数据库名。
好了,万事俱备,开始启动
进入~/opt/mongodb/bin目录,启动MongoDB服务。
cd ~/opt/mongodb/bin
./mongod
服务启动和关闭mongodb命令如下:
service mongod start
service mongod stop

新开一个小窗,重启nodeos,需要加上-–replay-blockchain,以使历史交易数据同步到MongoDB。

sudo apt-get install mongodb-clients)进入MongoDB控制台,查询相应数据库和记录,如下图。

原因是,mongod默认启动dbpath为/data/db,本机没有这个目录
解决方法:创建一个db目录,并添加到mongod启动参数
mkdir /root/.local/share/mongo/db
mongod --dbpath /root/.local/share/mongo/db Eos = require('eosjs')
// Default configuration (additional options below)
config = {
chainId: null, // 32 byte (64 char) hex string
keyProvider: ['PrivateKeys...'], // WIF string or array of keys..
httpEndpoint: 'http://127.0.0.1:8888',
expireInSeconds: 60,
broadcast: true,
verbose: false, // API activity
sign: true
}
eos = Eos(config)
[array<string>|string|function] - 提供用于签署事务的私钥。如果找到多个私钥,get_required_keys则调用API 以发现要使用的签名密钥。如果提供了函数,则为每个事务调用此函数。string - 提供链API的nodeosd服务器的http或https位置。从浏览器使用eosjs时,请记住在nodeosd或代理服务器中配置相同的源策略。对于测试,access-control-allow-origin = *可以使用nodeosd配置。对于冷存储(无网络)配置,请将此值设置为null。number - 事务到期前的秒数。时间基于nodeosd的时钟。可能出现错误的未到期交易是到期日到期之前的责任,此时间应该是短暂的。[boolean=true]- 将交易发布到区块链。使用false获取完全签名的事务。[boolean=false] - 详细日志记录,例如API活动。[boolean=false] - 低级调试日志记录(序列化)。[boolean=true] - 使用私钥签署交易。保留未签名的交易避免了提供私钥的需要。mockTransactions: () => null // 'pass', or 'fail' pass - 不要广播,总是假装交易有效fail - 不要广播,假装交易失败null|undefined - 照常广播transactionHeaders(高级) - 手动计算事务头。这可能是提供的,因此eosjs不需要对nodeos进行与头相关的API调用。用于冷藏等环境。每个事务都会调用此回调。这里记录了标题eosjs-api#headers。transactionHeaders: (expireInSeconds, callback) => {callback(null/*error*/, headers)}logger: {
log: config.verbose ? console.log : null,
error: console.error // null to disable
}
关闭所有错误记录: config.logger = {error: null}