macos下使用pecl安装swoole扩展的方法

23 篇文章 0 订阅
9 篇文章 0 订阅

执行sudo pecl install swoole

可能报错找不到php.h

fatal error: 'php.h' file         
 not found        
 #include "php.h"        
     ^        
1 error generated.        
make: *** [swoole.lo] Error 1        
ERROR: `make’ failed 

解决办法

sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include /usr/include        
不要照抄把MacOSX10.13.sdk换成你自己的macos版本

可能报错没有操作权限
Operation not permitted
这个是macos新版本中的引入了 Rootless策略,我们会对一些系统的目录没有操作的权限,即使是root用户也不行(一定是个假root)。

暂时关闭的方法是*关机重启后按住command + R别送,进入安全模式。
在安全模式下打开终端,输入下面命令后重新启动即可

csrutil disable       

开启的办法也很简单

csrutil enable   

关闭后在执行sudo pecl install swoole命令,等待安装完成,这下应该就没有什么问题了。

Build process completed successfully
Installing ‘/usr/lib/php/extensions/no-debug-non-zts-20160303/swoole.so’
install ok: channel://pecl.php.net/swoole-1.9.22
configuration option “php_ini” is not set to php.ini location
You should add “extension=swoole.so” to php.ini

看到Success应该安装成功了,然后把extension=swoole.so这行代码添加到php.ini文件中即可。

让我们来测试下swoole能不能用
在你的htdocs目录下新建swoole_server.php,输入下边的代码

//创建Server对象,监听 127.0.0.1:9501端口      
$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();      

cmd+x保存退出

然后执行脚本

swoole_server.php
执行完毕后应该没有反应,linux里没有反应就是没啥毛病。

然后新打开一个窗口执行telnet 127.0.0.1 9501,然后坑又来了,报错command not found,为啥呢?

因为苹果爸爸在macos 10.13版本中移除了telnet命令,当然你可以通过brew安装回来。但是既然苹果爸爸不建议你用那就不用了呗,我们可以用下面的命令代替。

curl -v telnet://127.0.0.1:9501   

在连接成功后,我们输入hello。

如果运行php swoole-server.php后告诉你端口号被占用,我们需要查出占用端口的进程,杀掉即可。

sudo lsof -i :9000 kill -9 端口号

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值