虚拟机搭建FISCO BCOS的区块链浏览器

一键搭建

注:根据官方文档搭建,大部分与官方文档相似。我自己修改了部分代码,并对部分报错进行了解决
这次使用的是一键搭建,适合前后端同机部署,快速体验的情况使用

具体安装步骤

  1. 依赖环境

    环境版本
    Java JDK8或以上版本
    MySQL MySQL-5.6或以上版本
    Python Python3.4+
    PyMySQL 使用python3时需安装

MySQL安装-> 安装MariaDBMariaDB数据库是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。MariaDB完全兼容 MySQL,包括API和命令行。

  1. 安装

    sudo yum install -y mariadb*
    
  2. 启动-停止

    启动:sudo systemctl start mariadb.service
    停止:sudo systemctl stop  mariadb.service
    
  3. 设置开机启动

    sudo systemctl enable mariadb.service
    
  4. 初始化

    执行以下命令:
    sudo mysql_secure_installation
    以下根据提示输入:
    Enter current password for root (enter for none):<–初次运行直接回车
    Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
    New password: <– 设置root用户的密码
    Re-enter new password: <– 再输入一次你设置的密码
    Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
    Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车
    Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
    Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
    
  5. 授权访问和添加用户

    1. 使用root用户登录,密码为初始化设置的密码

      mysql -uroot -p -h localhost -P 3306
      
    2. 授权root用户远程访问

      mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
      mysql > flush PRIVILEGES;
      
    3. 创建test用户并授权本地访问

      mysql > GRANT ALL PRIVILEGES ON *.* TO 'test'@localhost IDENTIFIED BY '123456' WITH GRANT OPTION;
      mysql > flush PRIVILEGES;
      
    4. 安全温馨提示:

      • 例子中给出的数据库密码(123456)仅为样例,强烈建议设置成复杂密码
      • 例子中root用户的远程授权设置会使数据库在所有网络上都可以访问,请按具体的网络拓扑和权限控制情况,设置网络和权限帐号
  6. 测试连接和创建数据库

    1. 登录数据库

      mysql -utest -p123456 -h localhost -P 3306
      
    2. 创建数据库

      mysql > create database db_browser;
      

Python的安装

编辑工具

## 注意: 切换到root用户执行以下命令
yum -y install epel-release
yum install python-pip
yum install wget
yum install gcc
yum -y install zlib*

下载安装包

wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tar.xz

解压并移动到/user/local

tar -xvf Python-3.8.5.tar.xz
mv Python-3.8.5 /usr/local/Python3

安装

cd /usr/local/Python3
./configure --prefix=/usr/local/Python3 --enable-optimizations --with-ssl 
#第一个指定安装的路径,不指定的话,安装过程中可能软件所需要的文件复制到其他不同目录,删除软件很不方便,复制软件也不方便.
#第二个可以提高python10%-20%代码运行速度.
#第三个是为了安装pip需要用到ssl,后面报错会有提到.
make && make install

后续配置

mv /usr/bin/python /usr/bin/python.bak # bei
ln -s /usr/local/Python3/bin/python3.6 /usr/bin/python
# 测试
python -V
# 修改

vi /usr/bin/yum
把#! /usr/bin/python修改为#! /usr/bin/python2
 
vi /usr/libexec/urlgrabber-ext-down
把#! /usr/bin/python 修改为#! /usr/bin/python2

搭建浏览器

  1. 获取代码

    git clone https://github.com/FISCO-BCOS/fisco-bcos-browser.git  # 从github获取 
    git clone https://gitee.com/FISCO-BCOS/fisco-bcos-browser.git # 从gitee获取,实测速度很快
    # 以上命令使用一个就行,建议使用gitee
    
  2. 切换目录

    cd fisco-bcos-browser/deploy
    

修改配置文件

vi common.properties
# 根据字段名修改前面自己安装的环境

部署

  1. 部署所有服务:

    python deploy.py installAll
    
    1. 注:我在执行上述命令的时候报错了,内容如下

    2. 解决方法:

    1. 查看错误信息:提示不支持我的平台,只支持centos,ubuntu,suse
    2. 但是我的系统就是centos7
    3. 通过查看 comm/check.py文件,发现报错代码块的具体内容如下:
    
    def installByYum(server):
        if isCentos():
            result = doCmdIgnoreException("sudo yum -y install {}".format(server))
            if result["status"] != 0:
                os.system("sudo yum -y install epel-release")
                os.system("sudo yum -y install python-pip")
                os.system("pip install requests")
                result = doCmd("sudo yum -y install {}".format(server))
        elif isSuse():
            os.system("sudo zypper install -y {}".format(server))
        elif isUbuntu():
            os.system("sudo apt-get install -y {}".format(server))
        else:
            raise Exception("error,not support this platform,only support centos,suse,ubuntu.")
        return
    4. 我猜测,因为linux发行版不同,安装软件的方法也不同,例如:Ubuntu使用apt,centos使用yum。
    5. 只需把 if isCentos(): 修改为1即可
    6. 第五步就是自行修改了代码,因为我是centos系统,但是代码没识别出来,这样修改了以后 ,代码就会使用 yum 命令安装软件(注:如果报相同的错,请根据自己的系统修改这部分代码)
    
  2. 成功截图

  1. 使用浏览器访问 http://127.0.0.1:5100/ (因为我是在虚拟机部署的,所以在本机地址打开)

  2. 网页显示截图

 
原文地址:https://www.cnblogs.com/exmyth/p/13667249.html