我swoole爬坑记,swoole安装和小demo(1)

来源:互联网 发布:上海萌动网络 编辑:程序博客网 时间:2024/05/21 22:42

Date : 2017-09-08
安装前准备:
php -v 如果php版本小于5.6的,请卸载
rpm -qa | grep php 删除掉
rpm -e php-cli-5.4.16-42.4.al7.x86_64 –nodeps
rpm -e php-devel-5.4.16-42.4.al7.x86_64 –nodeps
rpm -e php-common-5.4.16-42.4.al7.x86_64 –nodeps
删除后如果自己源码包安装的php无法找到,提示:-bash: /usr/bin/php: No such file or directory
vim /etc/profile 最后一行增加环境变量就OK
export PATH=/usr/local/php/bin:$PATH
source /etc/profile 更新下配置(ps 这里有个小坑,已登录的窗口要小退一下,重新登录才生效哦!)
php -v 看下OK

update 2017-12-13,之前编译安装的对于爬坑的同学来说有点繁琐,cut掉了,直接pecl install swoole简单粗暴吧!!!
工作原因忙了几个月,最近忙里偷闲写下文章
最新的方法,访问官网www.swoole.com ,官方教程完善了很多了,基本上按照官方的教程一步一步啃就差不多了
Linux 用户

#!/bin/bashpecl install swoole

Mac 用户

#!/bin/bashbrew install swoole

安装没毛病的话会提示swoole.so躺在某个文件夹里面,然后在php.ini配置文件后面增加extension = “swoole.so”
然后ps -ef|grep php-fpm 找到master的进程号(26783)
root 26783 1 0 11:34 ? 00:00:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
nobody 26784 26783 0 11:34 ? 00:00:00 php-fpm: pool www
nobody 26785 26783 0 11:34 ? 00:00:00 php-fpm: pool www
重启php-fpm
kill -USR2 26783
然后php -m看下有没有swoole的扩展,如果没有,那么很大可能是cli模式下读取的php.ini文件和cgi模式下读取的配置不一样造成的

执行 php -i|grep php.ini 命令查看是不是这个情况发现确实是这回事,把swoole.so增加到/usr/local/php/lib/php.ini文件中,然后重启php-fpmConfiguration File (php.ini) Path => /usr/local/php/libLoaded Configuration File => /usr/local/php/lib/php.ini

php –ri swoole #查看当前swoole版本

例子:
1 . Tcp server

<?php//创建Server对象,监听 127.0.0.1:9501端口,保存为tcp.php$serv = new swoole_server("127.0.0.1", 9501); //监听连接进入事件$serv->on('connect', function ($serv, $fd) {      echo "Client: Connect.\n";});//监听数据接收事件$serv->on('receive', function ($serv, $fd, $from_id, $data) {    $serv->send($fd, "Server: ".$data);});//监听连接关闭事件$serv->on('close', function ($serv, $fd) {    echo "Client: Close.\n";});//启动服务器$serv->start(); 

php tcp.php 就可以启动一个和简单的tcp服务器了
netstat -an | grep 9501 查看是否为listen状态
tcp 0 0 127.0.0.1:9501 0.0.0.0:* LISTEN off (0.00/0/0)
现在可以telnet 127.0.0.1 9501 连接上server,输入什么鬼,返回什么鬼

2 . 异步mysql

<?php$db = new Swoole\MySQL;$server = array(    'host' => '127.0.0.1',    'user' => 'root',    'password' => '你的数据库密码',    'database' => 'test',);$db->connect($server, function ($db, $result) {    echo "<pre>";    //查询数据库...   $db->query("select * from user",function(Swoole\MYSQL $db,$result){       var_dump($result);//异步反馈结果       $db->close();   });});

看到这里应该可以了吧,哪些你曾经以为很牛逼的技术是不是没有你想象中的那么难呢,哈哈哈,恭喜您,已经开始swoole的爬坑旅途了
其他更多好玩的请移步官方网站www.swoole.com

原创粉丝点击