设为首页 收藏本站
查看: 1176|回复: 0

[经验分享] linux php安装zookeeper扩展

[复制链接]

尚未签到

发表于 2015-9-6 11:45:24 | 显示全部楼层 |阅读模式
  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


[iyunv@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
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-110098-1-1.html 上篇帖子: zookeeper应用 下篇帖子: ZooKeeper应用技巧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表