August 8, 2013
Redis配置文件参数说明
"\u003cp\u003e\u003cstrong\u003e配置文件参数说明\u003c/strong\u003e:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eRedis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cstrong\u003edaemonize no\u003c/strong\u003e\u003c/p\u003e\n\u003col start=\"2\"\u003e\n\u003cli\u003e当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cstrong\u003epidfile /var/run/redis.pid\u003c/strong\u003e\u003c/p\u003e\n\u003col start=\"3\"\u003e\n\u003cli\u003e指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e** port 6379**\u003c/p\u003e\n\u003col start=\"4\"\u003e\n\u003cli\u003e绑定的主机地址\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cstrong\u003ebind 127.0.0.1\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e5.当 客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003etimeout 300\u003c/strong\u003e\u003c/p\u003e\n\u003col start=\"6\"\u003e\n\u003cli\u003e指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cstrong\u003eloglevel verbose\u003c/strong\u003e\u003c/p\u003e\n\u003col start=\"7\"\u003e\n\u003cli\u003e日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送 …\u003c/li\u003e\u003c/ol\u003e"
August 7, 2013
安装hg命令
"\u003cp\u003e在使用golang开发的时候,有些时间github.com上面的包需要执行hg命令(hg命令简介).这个时候就需要安装一下才可以.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinux下安装Mercurial(hg):\u003c/strong\u003e\u003c/p\u003e\n\u003ch1 id=\"安装mercurial\"\u003e安装Mercurial\u003c/h1\u003e\n\u003cp\u003e在进行后面的操作之前需要安装Mercurial( \u003ca href=\"http://baike.baidu.com/view/1094619.htm\"\u003e百科\u003c/a\u003e)版本管理系统(可以输出hg名词检测是否安装)。输入以下命令安装:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esudo easy_install mercurial\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e对于 Ubuntu/Debian 系统,easy_install 命令可以用\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eapt-get install python-setuptools python-dev build-essential\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e安装。 如果上述命令安装失败的话,还可以尝试去官方网站 \u003ca href=\"http://mercurial.selenic.com/wiki/Download\"\u003e下载\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWindows下安装\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e国内国度网盘下载(32位): \u003ca href=\"http://pan.baidu.com/share/link?shareid=3528053518\u0026amp;uk=2365864479\"\u003ehttp://pan.baidu.com/share/link?shareid=3528053518\u0026amp;uk=2365864479\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e(64位): \u003ca href=\"http://pan.baidu.com/share/link?shareid=3560201274\u0026amp;uk=2365864479\"\u003ehttp://pan.baidu.com/share/link?shareid=3560201274\u0026amp;uk=2365864479\u003c/a\u003e\u003c/p\u003e"
July 23, 2013
exec: “pkg-config”: executable file not found in %PATH% 的解决办法
"\u003cp\u003e在windows下要用 \u003ca href=\"http://blog.haohtml.com/tag/golang\"\u003egolang\u003c/a\u003e 实现操作 \u003ca href=\"http://blog.haohtml.com/tag/zeromq\"\u003ezeromq\u003c/a\u003e 消息队列,发现在sublime下进行\u003c/p\u003e\n\u003cp\u003ego get -tags zmq_3_x github.com/alecthomas/gozmq\u003c/p\u003e\n\u003cp\u003e操作的时候,提示\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e# pkg-config –cflags libzmq libzmq libzmq libzmq\nexec: “pkg-config”: executable file not found in %PATH%\nexit status 2\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e原因是因为没有安装pkg-config.需要手动安装,并设置一下环境变量.pkg-config下载地址: \u003ca href=\"http://ftp.acc.umu.se/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip\"\u003ehttp://ftp.acc.umu.se/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip\u003c/a\u003e ( \u003ca href=\"http://ftp.acc.umu.se/pub/gnome/binaries/win64/dependencies/pkg-config_0.23-2_win64.zip\"\u003ehttp://ftp.acc.umu.se/pub/gnome/binaries/win64/dependencies/pkg-config_0.23-2_win64.zip\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e如果无法下载,直接打开所在的目录,找到合适的软件包下载.然后将包里bin目录里 …\u003c/p\u003e"
July 23, 2013
用golang发送邮件
"\u003cp\u003e配置文件 \u003ccode\u003econf.json\u003c/code\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e{\n\u0026#34;Username\u0026#34;: \u0026#34;[email protected]\u0026#34;,\n\u0026#34;Password\u0026#34;: \u0026#34;123456\u0026#34;,\n\u0026#34;Smtphost\u0026#34;:\u0026#34;smtp.163.com:25\u0026#34;\n}\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e主程序 sendmail.go\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003epackage main\n\nimport (\n\t\u0026#34;encoding/json\u0026#34;\n\t\u0026#34;fmt\u0026#34;\n\t\u0026#34;io\u0026#34;\n\t\u0026#34;log\u0026#34;\n\t\u0026#34;net/smtp\u0026#34;\n\t\u0026#34;os\u0026#34;\n\t\u0026#34;strings\u0026#34;\n)\n\ntype cfgmail struct {\n\tUsername string\n\tPassword string\n\tSmtphost string\n}\n\ntype cfg struct {\n\tName, Text string\n}\n\nfunc main() {\n\n\t// 从json文件中读取发送邮件服务器配置信息\n\tcfgjson := getConf()\n\n\tvar …\u003c/code\u003e\u003c/pre\u003e"
July 14, 2013
nginx日志切割
"\u003cp\u003enginx的日志文件没有rotate功能。如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件。\u003c/p\u003e\n\u003cp\u003e第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志。在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,linux是靠文件描述符而不是文件名定位文件。\u003c/p\u003e\n\u003cp\u003e第二步向nginx主进程发送USR1信号。\u003c/p\u003e\n\u003cp\u003enginx主进程接到信号后会从配置文件中读取日志文件名称,重新打开日志文件(以配置文件中的日志名称命名),并以工作进程的用户作为日志文件的所有者。\u003c/p\u003e\n\u003cp\u003e重新打开日志文件后,nginx主进程会关闭重名的日志文件并通知工作进程使用新打开的日志文件。\u003c/p\u003e\n\u003cp\u003e工作进程立刻打开新的日志文件并关闭重名名的日志文件。\u003c/p\u003e\n\u003cp\u003e然后你就可以处理旧的日志文件了。\u003c/p\u003e\n\u003cp\u003enginx日志按日期自动切割脚本如下\n[shell]\n#nginx日志切割脚本\n#author: \u003ca href=\"http://www.nginx.cn\"\u003ehttp://www.nginx.cn\u003c/a\u003e\n#!/bin/bash\n#设置日志文件存放目录\nlogs_path=\u0026quot;/usr/local/nginx/logs/\u0026quot;\n#设 …\u003c/p\u003e"
July 10, 2013
mysql中innodb表的count优化
"\u003cp\u003e作/译者:叶金荣(imysql#imysql.com\u0026gt;),来源: \u003ca href=\"http://imysql.com/\"\u003ehttp://imysql.com\u003c/a\u003e,欢迎转载。\u003c/p\u003e\n\u003cp\u003e起因:在innodb表上做count(*)统计实在是太慢了,因此想办法看能不能再快点。\u003c/p\u003e\n\u003cp\u003e现象:先来看几个测试案例,如下\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e一、 sbtest 表上的测试\u003c/strong\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eshow create table sbtest\\G\n*************************** 1. row ***************************\nTable: sbtest\nCreate Table: CREATE TABLE `sbtest` (\n`aid` bigint(20) unsigned NOT NULL auto_increment,\n`id` int(10) unsigned NOT NULL default \u0026#39;0\u0026#39;,\n`k` int(10) unsigned NOT NULL default \u0026#39;0\u0026#39;,\n`c` char(120) NOT NULL default \u0026#39;\u0026#39;,\n`pad` char(60) NOT NULL …\u003c/code\u003e\u003c/pre\u003e"
July 8, 2013
Linux下安装php开发框架yaf
"\u003cp\u003e\u003ca href=\"https://github.com/laruence/php-yaf\"\u003ehttps://github.com/laruence/php-yaf\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eyaf框架中文手册:\u003c/p\u003e\n\u003cp\u003eyaf手册:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.下载并安装yaf扩展\u003c/strong\u003e \u003ca href=\"http://pecl.php.net/package/yaf\"\u003ehttp://pecl.php.net/package/yaf\u003c/a\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e#wget http://pecl.php.net/get/yaf-2.2.9.tgz\n#tar zxvf yaf-2.2.9.tgz\n#cd yaf-2.2.9\n\n[root@bogon yaf-2.2.9]# whereis phpize\nphpize: /usr/bin/phpize /usr/share/man/man1/phpize.1.gz\n/usr/bin/phpize\n\n[root@bogon yaf-2.2.9]# /usr/bin/phpize\nConfiguring for:\nPHP Api Version: 20090626\nZend Module Api No: 20090626\nZend Extension Api No: 220090626\n#whereis php-config\nphp-config: /usr/bin/php-config …\u003c/code\u003e\u003c/pre\u003e"
June 25, 2013
centos 6关闭ipv6
"\u003cp\u003e通过网卡属性查看\u003c/p\u003e\n\u003cp\u003e命令:ifconfig\u003c/p\u003e\n\u003cp\u003e注释:有 “inet6 addr:。。。。。。。“ 的表示开启了ipv6功能.使用下面的方法可以关闭ipv6\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.修改/etc/modprobe.d/dist.conf\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e[shell]#vi /etc/modprobe.d/dist.conf[/shell]\u003c/p\u003e\n\u003cp\u003e添加下面两行内容\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ealias net-pf-10 off\nalias ipv6 off\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e保存退出,并且重新启动系统\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2.验证ipv6模块是否加载\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e[shell]#lsmod|grep ipv6[/shell]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e4.开机不启动\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e[shell]#chkconfig ip6tables off[/shell]\u003c/p\u003e\n\u003cp\u003e重启 用命令“lsmod | grep v6”查看,是否启动加载!\u003c/p\u003e\n\u003cp\u003e=======================================\u003c/p\u003e\n\u003cp\u003e1.修改/etc/sysconfig/network,追加:\u003c/p\u003e\n\u003cp\u003eNETWORKING_IPV6=no\u003c/p\u003e\n\u003cp\u003e2.修改/etc/hosts文件,把ipv6的那句本地主机名解析的也注释掉:\u003c/p\u003e\n\u003cp\u003e#::1 localhost localhost6 …\u003c/p\u003e"
June 18, 2013
测试golang中的多核多线程
"\u003cp\u003e“并发 (concurrency)” 和 “并行 ( parallelism)” 是不同的。在单个 CPU 核上,线程通过时间片或者让出控制权来实现任务切换,达到 “同时” 运行多个任务的⺫的,这就是所谓的并发。但实际上任何时刻都只有一个任务被执行,其他任务通过某种算法来排队。\u003c/p\u003e\n\u003cp\u003e多核 CPU 可以让同个进程内的 “多个线程” 做到真正意义上的同时运,它们之间不需要排队 (依然会发生排队,因为线程数量可能超出 CPU 核数量,还有其他的进程等等。这里说的是一个理想状况),这才是并行。除了多核,并行计算还可能是多台机器上部署运行。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003epackage main\n\nimport (\n\u0026#34;fmt\u0026#34;\n\u0026#34;runtime\u0026#34;\n)\n\nfunc test(c chan bool, n int) {\n\nx := 0\nfor i := 0; i \u0026lt; 1000000000; i++ {\nx += i\n}\n\nprintln(n, x)\n\nif n == 9 {\nc \u0026lt;- true\n}\n}\n\nfunc main() {\nruntime.GOMAXPROCS(1) //设置cpu …\u003c/code\u003e\u003c/pre\u003e"
June 17, 2013
golang中的Array 、Slices 和 Maps
"\u003cp\u003e**注意\u003ccode\u003eslice\u003c/code\u003e和数组在声明时的区别:**声明数组时,方括号内写明了数组的长度或使用\u003ccode\u003e...\u003c/code\u003e自动计算长度,而声明\u003ccode\u003eslice\u003c/code\u003e时,方括号内没有任何字符。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003earr1 := [10]int{1,2,3,4} //数组,长度为10,只有4个元素指定,其它的元素值默认为0\narr2 := [...]string{\u0026#34;a\u0026#34;,\u0026#34;b\u0026#34;,\u0026#34;c\u0026#34;} //数组,长度自适应,这里长度为3\ns1 := []int{1,2,3,4} //slice,目前长度为4,可能通过append来动态添加元素个数\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e示例:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003epackage main\n\nimport (\n \u0026#34;fmt\u0026#34;\n)\n\nfunc main() {\n\n//array example\n arr := [10]int{1, 2, 3} //array 指定前三个值,其它值使用默认类型值0\n fmt.Println(len(arr))\n fmt.Println(arr)\n //a1 := append(arr, 4, 5) //数组不支持append,只有slice才支持append …\u003c/code\u003e\u003c/pre\u003e"
June 4, 2013
golang中包的用法
"\u003cp\u003e将d:/gotest/ 目录加入到GOPATH中.这里会涉及到包和结构体还有一些方法的用法,可以再深入的了了解一下\u003c/p\u003e\n\u003cp\u003e注意一下一些struct和 func 名称的大小写问题.\u003c/p\u003e\n\u003cp\u003e首先要在 \u003cstrong\u003e$GOPATH/src\u003c/strong\u003e 目录里创建一个包名目录,这里包名目录为stu,与文件名一样(也可以不一样),大概流程参考:\n\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2013/06/GO_package.png\"\u003e\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/GO_package.png\" alt=\"GO_package\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ed:/gotest/src/main/main.go\u003c/strong\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003epackage main\n\nimport (\n\u0026#34;fmt\u0026#34;\n\u0026#34;stu\u0026#34;\n)\n\nfunc main() {\n\n//sxf := new(stu.Stu)\nsxf := \u0026amp;stu.Stu{}\n\nsxf.SetName(\u0026#34;zhangli\u0026#34;)\na := sxf.GetName()\n\nfmt.Println(a)\n}\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003ed:/gotest/src/stu/stu.go\u003c/strong\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003epackage stu\n\ntype Stu struct {\n\tname string\n\t//age int\n}\n\nfunc (s *Stu) SetName(name string) {\n\ts.name = name\n} …\u003c/code\u003e\u003c/pre\u003e"
June 3, 2013
centos下更新Python版本的步骤
"\u003cp\u003e准备安装gitlab,发现系统目前的python版本为2.4.3版本.太低了, 虽然目前最高版本为3.3.0版本.但gitlab不支持这个版本.没有办法,我们这里将python升级到2.7.6版本.\u003c/p\u003e\n\u003cp\u003e更新python千万不要把老版本的删除!新老版本是可以共存的,很多基本的命令、软件包都要依赖预装的老版本python的,比如yum。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e第1步:更新gcc,因为gcc版本太老会导致新版本python包编译不成功\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e[shell]yum -y install gcc[/shell]\u003c/p\u003e\n\u003cp\u003e系统会自动下载并安装或更新,等它自己结束\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e第2步:下载Python 2.7.0软件包\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e[shell]wget \u003ca href=\"http://python.org/ftp/python/2.7/Python-2.7.tar.bz2\"\u003ehttp://python.org/ftp/python/2.7/Python-2.7.tar.bz2\u003c/a\u003e\ntar -jxvf Python-2.7.tar.bz2\ncd Python-2.7\n./configure\nmake all\nmake install\nmake clean\nmake distclean\n/usr/local/bin/python2.7 -V\ncd ../[/shell]\u003c/p\u003e\n\u003cp\u003e编译安装完毕以 …\u003c/p\u003e"
May 27, 2013
Centos下gitlab安装指南[原创]
"\u003cp\u003e最后一次更新时间:2013-05-29\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/gitlabhq/gitlabhq\"\u003egitlab 5.2.0\u003c/a\u003e\ncentos6.3 i686\n\u003ca href=\"http://redis.googlecode.com/files/redis-2.6.13.tar.gz\"\u003eRedis 2.6.13\n\u003c/a\u003e \u003ca href=\"http://nginx.org/download/nginx-1.4.1.tar.gz\"\u003enginx-1.4.1\u003c/a\u003e\n\u003ca href=\"http://mysql.spd.co.il/Downloads/MySQL-5.5/mysql-5.5.31-linux2.6-i686.tar.gz\"\u003emysql-5.5.31-linux2.6-i686.tar.gz\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这里与官方的教程有些不一样,主要是一些软件如mysql nginx redis之类的以前是手动编译安装的.\u003c/p\u003e\n\u003cp\u003e网上也有提供一键安装包工具:\u003ca href=\"http://bitnami.com/stack/gitlab\"\u003ehttp://bitnami.com/stack/gitlab\n\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003egitlab中文使用指南:\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2013/05/GitLab%E4%BD%BF%E7%94%A8%E4%BB%8B%E7%BB%8D.pdf\"\u003eGitLab使用介绍\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e首先我们选择比较快的yum源,不然安装速度会非常的慢的.这里使用中国科技大学的yum源更换yum源方法参考:,\u003c/p\u003e\n\u003cp\u003e说明:\n默认安装的git版本可能会低一些,需要升级到最新版本才可以.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1. Packages / Dependencies\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e[shell]yum -y install readline-devel gdbm-devel ncurses-devel openssl-devel zlib-devel gcc gcc-c++ make autoconf curl-devel expat-devel gettext-devel …\u003c/p\u003e"
May 20, 2013
mysql 根据英文首字母来查询汉字函数
"\u003cp\u003egbk编码:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emysql\u0026gt; SELECT *,\n -\u0026gt; ELT(INTERVAL(CONV(HEX(left(A_UserName,1)),16,10),\n -\u0026gt; 0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7,0\nxBFA6,0xC0AC,0xC2E8,0xC4C3,0xC5B6,0xC5BE,0xC6DA,0xC8BB,0xC8F6,0xCBFA,0xCDDA,0xCE\nF4,0xD1B9,0xD4D1),\n -\u0026gt; \u0026#39;A\u0026#39;,\u0026#39;B\u0026#39;,\u0026#39;C\u0026#39;,\u0026#39;D\u0026#39;,\u0026#39;E\u0026#39;,\u0026#39;F\u0026#39;,\u0026#39;G\u0026#39;,\u0026#39;H\u0026#39;,\u0026#39;J\u0026#39;,\u0026#39;K\u0026#39;,\u0026#39;L\u0026#39;,\u0026#39;M\u0026#39;,\u0026#39;N\u0026#39;,\u0026#39;O\u0026#39;,\u0026#39;P\u0026#39;,\u0026#39;Q\u0026#39;, …\u003c/code\u003e\u003c/pre\u003e"
May 5, 2013
linux下安装zeromq消息队列软件
"\u003cp\u003e在上一节 \u003ca href=\"http://blog.haohtml.com/archives/13790\"\u003e消息中间件的技术选型心得-RabbitMQ、ActiveMQ和ZeroMQ\u003c/a\u003e 我们介绍了一些相关的消息队列软件.这里我们对安装zeromqq这款软件的安装及php使用方法介绍一下.\u003c/p\u003e\n\u003cp\u003ecentos下安装zeromq消息队列软件.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e一.安装服务端\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-shell\" data-lang=\"shell\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd ~\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ewget http://download.zeromq.org/zeromq-3.2.3.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003etar zxvf zeromq-3.2.3.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd zeromq-3.2.3\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e./configure \u003cspan style=\"color:#75715e\"\u003e# –prefix=/usr/local/zeromq\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003emake \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e make install\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e**二.安装php扩展 **\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-shell\" data-lang=\"shell\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit clone git://github.com/mkoppanen/php-zmq.git\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd php-zmq\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ephpize\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e./configure –with-php-config\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e/usr/local/php/bin/php-config\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003emake \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e make install\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e执行完以后,会提示:\u003c/p\u003e\n\u003cp\u003eInstalling shared …\u003c/p\u003e"