我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么安装php的zookeeper扩展

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么安装php的zookeeper扩展

这篇文章主要介绍“怎么安装php的zookeeper扩展”,在日常操作中,相信很多人在怎么安装php的zookeeper扩展问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么安装php的zookeeper扩展”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

php安装 zookeeper扩展的方法:首先下载zookeeper;然后指定一下安装目录;最后通过“make && make install”安装zookeeper即可。

怎么安装php的zookeeper扩展

本文操作环境:Windows7系统、PHP7.1、Dell G3电脑。

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

要在php中使用zookeeper,先要安装php zookeeper扩展,要安装php zookeeper扩展,得先安装zookeeper

安装zookeeper

在这里面下载最新版的稳定版

http://mirror.bit.edu.cn/apache/zookeeper/stable/

cd /download

wget http://mirror.bit.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz //这个是已经安装好的工具,下面我们还需要自己编译安装一下,因为后面安装php的扩展时用得到

tar -zxvf zookeeper-3.4.12.tar.gz

cd zookeeper-3.4.12/class="lazy" data-src/c/

./configure --prefix=/usr/local/zookeeper  //指定一下安装目录

make && make install

就这样安装完了

安装php zookeeper的扩展  在 http://pecl.php.net/package/zookeeper中找

cd /download

wget http://pecl.php.net/get/zookeeper-0.6.2.tgz

tar -zxvf zookeeper-0.6.2.tgz

cd zookeeper-0.6.2

./configure --with-libzookeeper-dir=/usr/local/zookeeper //要指定依赖

make && make install

配置php.ini

extension="/usr/local/Cellar/php/7.2.6/pecl/20170718/zookeeper.so"

重启php-fpm即可。

【】

启动zookeeper前要安装jdk  已经安装的可以忽略

在http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html里面下载

怎么安装php的zookeeper扩展

然后傻瓜式安装,这里不说了

启动zookeeper

cd /download/zookeeper-3.4.12/bin

./zkServer.sh start

怎么安装php的zookeeper扩展

./zkCli.sh -server 127.0.0.1:2181

cli方式开启

注意:

如果报错:

怎么安装php的zookeeper扩展

cd ../conf

cp zoo_sample.cfg zoo.cfg

复制一下文件

php代码测试

测试代码

  1. <?php  class zookeeperDemo { private $zookeeper; function __construct($address) { $this->zookeeper = new Zookeeper($address); }  public function get($path) { if (!$this->zookeeper->exists($path)) { return null; } return $this->zookeeper->get($path); }   public function getChildren($path) { if (strlen($path) > 1 && preg_match('@/$@', $path)) { // remove trailing / $path = substr($path, 0, -1); } return $this->zookeeper->getChildren($path); }  public function set($path, $value) { if (!$this->zookeeper->exists($path)) { //创建节点 $this->makePath($path); } else { $this->zookeeper->set($path,$value); }   }  private function makePath($path, $value='') { $parts = explode('/', $path); $parts = array_filter($parts);//过滤空值 $subPath = ''; while (count($parts) > 1) { $subPath .= '/' . array_shift($parts);//数组第一个元素弹出数组 if (!$this->zookeeper->exists($subpath)) { $this->makeNode($subPath, $value); } } }  private function makeNode($path, $value, array $params = array()) { if (empty($params)) { $params = [ [ 'perms' => Zookeeper::PERM_ALL, 'scheme' => 'world', 'id' => 'anyone' ] ]; } return $this->zookeeper->create($path, $value, $params); }  public function deleteNode($path) { if (!$this->zookeeper->exists($path)) { return null; } else { return $this->zookeeper->delete($path); } }   } $zk = new zookeeperDemo('localhost:2181'); //var_dump($zk->get('/zookeeper')); var_dump($zk->getChildren('/foo')); //var_dump($zk->deleteNode("/foo"));   ?>测试代码2、 <?php   class Zookeeper_Example {  private $zookeeper;  private $callback = array();  public function __construct($address) { $this->zookeeper = new Zookeeper($address); }  public function set($path, $value) { if (!$this->zookeeper->exists($path)) { $this->makePath($path); $this->makeNode($path, $value); } else { $this->zookeeper->set($path, $value); } }  public function makePath($path, $value = '') { $parts = explode('/', $path); $parts = array_filter($parts); $subpath = ''; while (count($parts) > 1) { $subpath .= '/' . array_shift($parts); if (!$this->zookeeper->exists($subpath)) { $this->makeNode($subpath, $value); } } }  public function makeNode($path, $value, array $params = array()) { if (empty($params)) { $params = array( array( 'perms' => Zookeeper::PERM_ALL, 'scheme' => 'world', 'id' => 'anyone', ) ); } return $this->zookeeper->create($path, $value, $params); }  public function get($path) { if (!$this->zookeeper->exists($path)) { return null; } return $this->zookeeper->get($path); }  public function getChildren($path) { if (strlen($path) > 1 && preg_match('@/$@', $path)) { // remove trailing / $path = substr($path, 0, -1); } return $this->zookeeper->getChildren($path); }      public function deleteNode($path) { if(!$this->zookeeper->exists($path)) { return null; } else { return $this->zookeeper->delete($path); } }    public function watch($path, $callback) { if (!is_callable($callback)) { return null; }   if ($this->zookeeper->exists($path)) { if (!isset($this->callback[$path])) { $this->callback[$path] = array(); } if (!in_array($callback, $this->callback[$path])) { $this->callback[$path][] = $callback; return $this->zookeeper->get($path, array($this, 'watchCallback')); } } }    public function watchCallback($event_type, $stat, $path) { if (!isset($this->callback[$path])) { return null; }   foreach ($this->callback[$path] as $callback) { $this->zookeeper->get($path, array($this, 'watchCallback')); return call_user_func($callback); } }    public function cancelWatch($path, $callback = null) { if (isset($this->callback[$path])) { if (empty($callback)) { unset($this->callback[$path]); $this->zookeeper->get($path); //reset the callback return true; } else { $key = array_search($callback, $this->callback[$path]); if ($key !== false) { unset($this->callback[$path][$key]); return true; } else { return null; } } } else { return null; } } } $zk = new Zookeeper_Example('localhost:2181'); // var_dump($zk->get('/')); // var_dump($zk->getChildren('/')); // var_dump($zk->set('/test', 'abc')); // var_dump($zk->get('/test')); // var_dump($zk->getChildren('/')); // var_dump($zk->set('/foo/001', 'bar1')); // var_dump($zk->set('/foo/002', 'bar2')); // var_dump($zk->get('/')); // var_dump($zk->getChildren('/')); // var_dump($zk->getChildren('/foo'));   //watch example 一旦/test节点的值被改变,就会调用一次callback function callback() { echo "in watch callback\n"; } //$zk->set('/test', 1); $ret = $zk->watch('/test', 'callback');  //$zk->set('/test', 2);//在终端执行 while (true) { sleep(1); }    ?>

到此,关于“怎么安装php的zookeeper扩展”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么安装php的zookeeper扩展

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么安装php zookeeper扩展

安装方法:1、安装并启动zookeeper服务器;2、下载zookeeper扩展,并解压到PHP安装目录的ext目录下;3、在php安装目录下,执行命令生成configure和makefile;4、使用make命令编译安装即可。
2016-04-04

怎么安装php的zookeeper扩展

这篇文章主要介绍“怎么安装php的zookeeper扩展”,在日常操作中,相信很多人在怎么安装php的zookeeper扩展问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么安装php的zookeeper扩展
2023-06-07

怎么安装php ffpemg扩展

安装php ffpemg扩展的方法:1、通过“git clone https://github.com/tony2001/ffmpeg-php.git”下载“ffmpeg-php”扩展;2、通过对应版本的phpize生成configure文件;3、修改“ffmpeg_frame.c”文件;4、编译安装,然后在php.ini中添加“extension=ffmpeg.so”即可。
2023-05-14

php怎么安装ldap扩展

php安装ldap扩展的方法:1、通过“yum install PHP-ldap”在线安装ldap扩展;2、将“ldap.so”放在extensions目录下即可。
2017-05-14

PHP怎么安装fileinfo扩展

这篇文章主要介绍PHP怎么安装fileinfo扩展,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!PHP下的fileinfo函数通过在文件的给定位置查找特定的魔术字节序列,来获取文件的MIME信息。下面就和小编译器了解
2023-06-20

PHP怎么安装扩展bcmath

这篇文章主要讲解了“PHP怎么安装扩展bcmath”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP怎么安装扩展bcmath”吧!编译php时忘记添加某扩展,后来想添加扩展,但是因为安装p
2023-06-20

怎么安装php扩展-amqp

这篇文章主要介绍了怎么安装php扩展-amqp,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php是什么语言php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hy
2023-06-14

php怎么安装kafka扩展

这篇文章主要介绍了php怎么安装kafka扩展,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、安装librdkafka# cd /usr/local/src/# git c
2023-06-15

ubuntu 怎么安装php扩展

ubuntu安装php扩展的方法:1、执行“sudo apt-get install php-gd”;2、执行“sudo apt-get install php-mbstring”。
2021-10-01

php要怎么安装扩展

这篇文章主要讲解了“php要怎么安装扩展”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php要怎么安装扩展”吧!安装扩展注意与Apache+PHP或者Nginx+PHP的运行模式不同,Wor
2023-06-20

php curl扩展怎么安装

要安装PHP的CURL扩展,您可以按照以下步骤进行操作:1. 打开终端或命令提示符,进入PHP安装目录的扩展目录。例如,如果您的PHP安装在`C:\php`目录下,那么您需要进入`C:\php\ext`目录。2. 下载与您PHP版本相对应的
2023-10-11

PHP怎么安装Libevent扩展

小编给大家分享一下PHP怎么安装Libevent扩展,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!libevent是一个事件触发的网络库,适用于windows、l
2023-06-20

PHP CLI怎么安装扩展

本篇内容介绍了“PHP CLI怎么安装扩展”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!如果PHP是通过 apt 或者 yum 命令安装的,
2023-06-20

php mosquitto扩展怎么安装

这篇文章主要介绍了php mosquitto扩展怎么安装的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php mosquitto扩展怎么安装文章都会有所收获,下面我们一起来看看吧。php mosquitto扩展
2023-07-05

win php怎么安装扩展

win php安装扩展的方法:1、在官网下载想要的扩展;2、解压并将里面的php_redis.dll放到ext目录下;3、把php_redis.dll放到php.ini中指定的文件夹里面,并把redis模块加载即可。
2015-07-22
2023-08-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录