返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >怎么安装php的zookeeper扩展
  • 286
分享到

怎么安装php的zookeeper扩展

2023-06-07 22:06:13 286人浏览 独家记忆
摘要

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

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

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

怎么安装php的zookeeper扩展

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

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

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/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扩展”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 怎么安装php的zookeeper扩展

本文链接: https://lsjlt.com/news/250294.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么安装php zookeeper扩展
    本教程操作环境:centos6.4系统、PHP5.5.10版,DELL G3电脑ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为...
    99+
    2016-04-04
    php zookeeper扩展
  • 怎么安装php的zookeeper扩展
    这篇文章主要介绍“怎么安装php的zookeeper扩展”,在日常操作中,相信很多人在怎么安装php的zookeeper扩展问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么安装php的zookeeper扩展...
    99+
    2023-06-07
  • win php怎么安装扩展
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑win php怎么安装扩展?windows环境下PHP安装扩展PHP安装扩展一、php扩展管理1.什么是php扩展php扩展就是php核心并不支持的功能,然后可以通过扩展...
    99+
    2015-07-22
    windows PHP
  • ubuntu 怎么安装php扩展
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑ubuntu 怎么安装php扩展ubuntu 16.04 安装PHP扩展以前在windows 上开启php扩展,就是直接在php.ini文件中找到相应的扩展,然后去掉前面...
    99+
    2021-10-01
    ubuntu php扩展
  • php怎么安装ldap扩展
    本文操作环境:centOS6.8系统、PHP7.0版、DELL G3电脑php怎么安装ldap扩展?Centos下安装PHP ldap扩展Centos下安装PHP ldap扩展,有两种方法,仅供参考。一、在线安装执行下面命令:yum ins...
    99+
    2017-05-14
    php centos ldap
  • 怎么安装php扩展-amqp
    这篇文章主要介绍了怎么安装php扩展-amqp,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php是什么语言php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hy...
    99+
    2023-06-14
  • php要怎么安装扩展
    这篇文章主要讲解了“php要怎么安装扩展”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php要怎么安装扩展”吧!安装扩展注意与Apache+PHP或者Nginx+PHP的运行模式不同,Wor...
    99+
    2023-06-20
  • PHP CLI怎么安装扩展
    本篇内容介绍了“PHP CLI怎么安装扩展”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!如果PHP是通过 apt 或者 yum 命令安装的,...
    99+
    2023-06-20
  • PHP怎么安装fileinfo扩展
    这篇文章主要介绍PHP怎么安装fileinfo扩展,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!PHP下的fileinfo函数通过在文件的给定位置查找特定的魔术字节序列,来获取文件的MIME信息。下面就和小编译器了解...
    99+
    2023-06-20
  • PHP怎么安装Libevent扩展
    小编给大家分享一下PHP怎么安装Libevent扩展,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!libevent是一个事件触发的网络库,适用于windows、l...
    99+
    2023-06-20
  • PHP怎么安装扩展bcmath
    这篇文章主要讲解了“PHP怎么安装扩展bcmath”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP怎么安装扩展bcmath”吧!编译php时忘记添加某扩展,后来想添加扩展,但是因为安装p...
    99+
    2023-06-20
  • php怎么安装kafka扩展
    这篇文章主要介绍了php怎么安装kafka扩展,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、安装librdkafka# cd /usr/local/s...
    99+
    2023-06-15
  • php curl扩展怎么安装
    要安装PHP的CURL扩展,您可以按照以下步骤进行操作:1. 打开终端或命令提示符,进入PHP安装目录的扩展目录。例如,如果您的PH...
    99+
    2023-10-11
    php
  • 怎么安装php ffpemg扩展
    安装php ffpemg扩展的方法:1、通过“git clone https://github.com/tony2001/ffmpeg-php.git”下载“ffmpeg-php”扩展;2、通过对应版本的phpize生成configure文...
    99+
    2023-05-14
    ffpemg php
  • php mosquitto扩展怎么安装
    这篇文章主要介绍了php mosquitto扩展怎么安装的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php mosquitto扩展怎么安装文章都会有所收获,下面我们一起来看看吧。php mosquitto扩展...
    99+
    2023-07-05
  • php安装扩展
    环境信息:ubuntu18、php7.4-fpm 以安装swoole扩展为例 下载php-dev,其中包含phpize命令 apt install php-dev 下载php扩展,在h...
    99+
    2023-08-31
    php 开发语言 apache
  • ubuntu php怎么安装gd扩展
    本文操作环境:ubuntu 16.04系统、PHP7.2版、DELL G3电脑ubuntu php怎么安装gd扩展?ubunutu下php安装gd扩展apt-cache search php-gd 找到想要安装php版本的gdapt-get...
    99+
    2020-05-18
    ubuntu php
  • mac php怎么安装openssl扩展
    本文操作环境:macOS10.15系统、PHP7.1版、MacBook Air 2019电脑mac php怎么安装openssl扩展?mac下php添加openssl扩展:进入php源码目录cd ext/openssl mv config0...
    99+
    2016-12-30
    mac php openssl
  • linux怎么安装php thread扩展
    本文操作环境:Ubuntu 16.04系统、PHP7.1版、DELL G3电脑linux怎么安装php thread扩展?Ubuntu 下 PHP 安装 pthreads 扩展:pthreads 是一个PHP使用多线程的扩展。这里就不再过多...
    99+
    2016-01-04
    Ubuntu pthreads
  • linux下怎么安装php扩展
    这篇文章主要介绍“linux下怎么安装php扩展”,在日常操作中,相信很多人在linux下怎么安装php扩展问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux下怎么安装php扩展”的疑惑有所帮助!接下来...
    99+
    2023-06-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作