linux php安装zookeeper扩展

tags:php zookeeper linux ext

前言:

zookeeper提供很犀利的命名服务,并且集群操作具有原子性,所以在我的多个项目中被采用。

在原项目总,服务器集群的状态统一上报到zookeeper集群中,然后通过客户端来访问zookeeper,实时观察集群的状态(当然了,你要做成配置同步也可以)。但是客户端跨平台不方便,开发一个手机客户端又太egg pain了,所以打算采用PHP来读取zookeeper中。

以下是安装php的zookeeper扩展的步骤。多次使用,如有问题请反馈。转载请注明出处。

环境:

1
2
3
4
5
centos : 6.4  
zookeeper : 3.4.5 
php : 5.5.10 
nginx : 1.5
php zookeeper扩展 :0.2.2

1、如果没有安装nginx,先安装nginx,可参照:http://hi.baidu.com/solohac/item/081e97e54868403f86d9deff

确保先把nginx配置好,再往下

2、如果没有安装php,先安装php(先把nginx的php支持配置好了之后,再去安装zookeeper的扩展)

下载

wget http://hk2.php.net/distributions/php-5.5.10.tar.gz

解压

tar zxvf php-5.5.10.tar.gz

生成、安装

cd php-5.5.10

1
./configure --prefix=/usr/local/php5.5.10 --with-config-file-path=/usr/local/php5.5.10/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64

make && make install

配置php

1
2
cp php.ini-production /usr/local/php5.5.10/etc/php.ini
cp /usr/local/php5.5.10/etc/php-fpm.conf.default /usr/local/php5.5.10/etc/php-fpm.conf

启动

1
/usr/local/php5.5.10/sbin/php-fpm

查看端口是否监听

netstat -lnt | grep 9000

编辑nginx配置文件

1
2
3
4
5
6
7
8
9
10
11
location ~ .*\.(php)?$
{
expires -1s;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}

nginx重新加载配置

nginx -s reload

测试php访问

cd /usr/local/nginx/html/

vim aa.php

写入内容

1
2
3
<?php
echo "test php";
?>

如果php能正常访问了,继续下面的安装,如果不行,先回头把php的支持弄好。

2、安装zookeeper

下载

wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz

解压(随便你放在哪个目录,记得就行)

tar zxfv zookeeper-3.4.5.tar.gz

启动zookeeper服务器

1
2
3
4
cd zookeeper-3.4.5/conf
cp zoo_sample.cfg zoo.cfg
cd ../bin
./zkServer.sh start

这里最好确认一下是否期待成功,./zkServer.sh status

我这里是单台,所以结果为:

1
2
3
4
[root@localhost bin]# ./zkServer.sh status
JMX enabled by default
Using config: /root/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: standalone

编译zookeeper库,给php用的

1
2
3
cd ../src/c
./configure --prefix=/usr/local/zookeeperlib
make && make install

3、安装php的zookeeper扩展

下载

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

解压(解压出来的package.xml不用去管他)

tar zxvf zookeeper-0.2.2.tgz

把他放到/root/php-5.5.10/ext中

mv zookeeper-0.2.2 /root/php-5.5.10/ext/

cd /root/php-5.5.10/ext/

改目录名字

mv zookeeper-0.2.2 zookeeper

回到php-5.5.10目录

cd ..

./buildconf --force

./configure -h|grep zookeeper

查看configure是否已经支持了zookeeper

1
2
3
--enable-zookeeper               Enable zookeeper support
--disable-zookeeper-session      Disable zookeeper session handler support
--with-libzookeeper-dir=DIR   Set the path to libzookeeper install prefix.

如果显示如上,说明已经支持了,继续往下

cd ext/zookeeper

生成configure

/usr/local/php5.5.10/bin/phpize

生成makefile

1
2
3
4
./configure --with-php-config=/usr/local/php5.5.10/bin/php-config  --with-libzookeeper-dir=/usr/local/zookeeperlib
注意上面的路径:
--with-php-config是php安装的路径
--with-libzookeeper-dir是第一步中install zookeeper库的路径

编译安装

make && make install

结果为,这个结果接下来的配置要用到

Installing shared extensions:     /usr/local/php5.5.10/lib/php/extensions/no-debug-non-zts-20121212/

添加ext路径和文件名

1
2
3
4
vim /usr/local/php5.5.10/etc/php.ini
 
extension_dir="/usr/local/php5.5.10/lib/php/extensions/no-debug-non-zts-20121212/"
extension=zookeeper.so

4、重新编译php

进入Php的源码文件夹,不要进错了。我的源码文件夹是/root/php-5.5.10,安装目录是/usr/local/php5.5.10

cd /root/php-5.5.10

rm -rf autom4te.cache/ configure

./buildconf --force

./configure -h|grep zookeeper

查看configure是否已经支持了zookeeper

如果已经支持了,继续往下

./configure --prefix=/usr/local/php5.5.10 --with-config-file-path=/usr/local/php5.5.10/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-zookeeper --with-libzookeeper-dir=/usr/local/zookeeperlib --enable-sockets

make && make install

到这里,已经安装好支持了,来测试下是否正常

在zookeeper-0.2.2.tgz中(也就是Php的zookeeper扩展),有examples/Zookeeper_Example.php文件,可以用来测试

1
2
cp /root/php-5.5.10/ext/zookeeper/examples/Zookeeper_Example.php /usr/local/nginx/html/
/usr/local/php5.5.10/bin/php /usr/local/nginx/html/Zookeeper_Example.php

看是否能打印出如下结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
string(0) ""
array(1) {
  [0]=>
  string(9) "zookeeper"
}
NULL
string(3) "abc"
array(2) {
  [0]=>
  string(7) "test123"
  [1]=>
  string(9) "zookeeper"
}
NULL
NULL
array(2) {
  [0]=>
  string(3) "001"
  [1]=>
  string(3) "002"
}

重启php-fpm

killall php-fpm

/usr/local/php5.5.10/sbin/php-fpm

现在就可以通过浏览器访问支持zookeeper扩展的php了

如果还有别的问题,请检查:

1、iptables

2、selinux

linux php安装zookeeper扩展的更多相关文章

  1. linux下安装opcache扩展

    linux下安装opcache扩展   参考:http://www.php.net/manual/zh/opcache.installation.php 1 2 3 4 5 6 7 wget http ...

  2. Linux上安装Zookeeper以及一些注意事项

    最近打算出一个系列,介绍Dubbo的使用. 分布式应用现在已经越来越广泛,Spring Could也是一个不错的一站式解决方案,不过据我了解国内目前貌似使用阿里Dubbo的公司比较多,一方面这个框架也 ...

  3. 总结 Linux 下安装 PHP 扩展步骤

    总结一下 Linux 下安装 PHP 扩展步骤,这里以安装 PHP 的 redis 扩展为例. 一.拿到扩展包下载地址,下载扩展包 pecl 上搜索 redis wget http://pecl.ph ...

  4. Linux下安装Zookeeper

    Zookeeper是一个协调服务,可以用它来作为配置维护.名字服务.分布式部署: 下面,我来分享一下在Linux下安装Zookeeper的整个步骤,让大家少走弯路. 一.Zookeeper下载 [ro ...

  5. linux 下安装php扩展

    linux下安装php扩展 步骤: 1.在扩展解压包目录执行 phpize 2.执行 ./configure --with-php-config=/usr/local/php/bin/php-conf ...

  6. Linux php安装zip扩展

    Linux php安装zip扩展 2018.07.22 22:40 1165浏览   #wget http://pecl.php.net/get/zip-1.12.4.tgz #tar zxfv zi ...

  7. Linux上安装ZooKeeper并设置开机启动(CentOS7+ZooKeeper3.4.10)

    1下载Zookeeper 2安装启动测试 2.1上载压缩文件并解压 2.2新建 zookeeper配置文件 2.3安装JDK 2.4启动zookeeper 2.5查看zookeeper的状态 3将Zo ...

  8. linux centos7 安装zookeeper

    linux 系统下 zookeeper 安装教程 1.下载安装包 1)进入安装目录 cd /home/install/ 2)下载 wget http://mirror.bit.edu.cn/apach ...

  9. php win/linux/mac 安装redis扩展或者扩展报错 zend_smart_str.h file not found

    1 windows 安装reids 扩展 根据phpinfo 查看php信息.在pecl.php.net 下载对应的redis扩展版本,放如扩展目录,在php.ini 配置扩展信息,重启服务 2 li ...

随机推荐

  1. haproxy配置文件简单管理

    版本:python3功能:对haproxy配置文件进行简单的查询.添加以及删除功能操作流程:1.根据提示选择相应的选项2.进入所选项后,根据提示写入相应的参数3.查询功能会返回查询结果,添加.删除以及 ...

  2. [drp 6]接口和抽象类的区别,及其应用场景

    导读:在很多时候,接口和抽象类可以替换.发现这个问题,还是之前学习设计模式的时候,看到那个UML图发现的.那么,究竟在什么时候使用接口,什么时候使用抽象类呢?现在结合这个项目,做一个总结. 一.接口 ...

  3. Unity Js与C#脚本通信

    将.js文件放到Standard Assets目录下,否则无法编译通过 CS_test.cs : using UnityEngine; using System.Collections;   publ ...

  4. Android手机与计算机间的”信任关系”

    在iDevices(如iPhone.iPad等等)的取证方面,那个代表”信任关系”的plist无疑是最为关键的迹证,只要有了它,哪怕是最新机型的iDevice及最新版的iOS,且有着指纹保护或pass ...

  5. Android IOS WebRTC 音视频开发总结(七)-- 基于浏览器的开发

    前面写的一系列总结都是讲webrtc如何下载,编译,开发的,有些人可能有点云里雾里了,WEBRTC不是用来搞跨浏览器开发的吗,怎么我讲的这些跟浏览器扯不上任何关系,其实看看下面这个架构图,你就明白了, ...

  6. sql server 分组后字段拼接

  7. Html辅助方法(分页、下拉框)

    引用命名空间: using System.Text; using System.Web.Mvc; Html分页方法 #region 分页Html辅助方法 /// <summary> /// ...

  8. WCF+EntityFramework+mysql总结

    用WCF+Ef操作Mysql数据库的,现在,写一下经验总结,希望对大家有帮助. 1.需下载并安装MySql Connector Net 6.5.4 2.在ef层和wcf服务层引用dll :Mysql. ...

  9. 如何在Word表格中的某一栏添加背景颜色

     如何在Word表格中的某一栏添加背景颜色 编写人:CC阿爸 2014-3-14 用鼠标选中某一个单元格然后右键单击 下拉菜单选择.<边框和低纹>然后点<低纹>选项卡 选中色卡 ...

  10. tomcat学习笔记2

    LNMT在网站架构中的实现过程: Client --> http --> Nginx --> reverse_proxy (http) --> tomcat (http con ...