Mac安装swoole中遇到的问题 - Go语言中文社区

Mac安装swoole中遇到的问题


在学习swoole的时候,首先需要在mac上安装,先来说一下我的mac版本:
在这里插入图片描述

好的,正文开始了。
首先我是想偷个懒的,根据文档,可以使用pecl进行安装。
问题一:没有安装pecl

Package “swoole” Version “1.8.12” does not have REST dependency information available install failed

解决方法:
下载pecl:

curl -O http://pear.php.net/go-pear.phar
sudo php -d detect_unicode=0 go-pear.phar

执行以上命令后会进行安装过程,会有一些配置选项:

输入1,回车,配置pear路径为:/usr/local/pear
输入4,回车,配置命令路径为:/usr/local/bin

回车两次,其他让其默认,安装完成。可以通过‘pecl version’进行检测是否安装成功。

好的,再次执行:

pecl install swoole

结果提示:Cannot install, php_dir for channel "pecl.php.net" is not writeable by the current user,这是没有权限执行,好的,前面带上sudo 就行了。

结果出现了问题三:autoconf不存在

Cannot find autoconf. Please check your autoconf installation and the
            $PHP_AUTOCONF environment variable. Then, rerun this script.
            ERROR: `phpize’ failed

直接通过brew进行安装:

brew install autoconf

安装完成后再次执行install,结果试了好几次,都是:

ERROR: unable to unpack /tmp/pear/download/swoole-4.4.0.tgz

我真是fuck了,于是我从官网上(https://github.com/swoole/swoole-src/releases)拉下来一个,放在了tmp/pear/install/下,然后再次执行安装命令,但是还是不行。

于是我又尝试了通过brew进行安装:

brew install php71-swoole

但是生活还是对我这只小猫咪下了刀。
到此,彻底放弃偷懒了,决定编译安装。


上面的没用,还得看下面的!
下载tar.gz源代码进行解压,然后我放在了/etc/swoole下,准备编译。

 cd swoole
 sudo phpize
 ./configure
 make
 make install
 make test

在执行到第三步时给我报了:configure: error: Cannot find php-config,这是因为这个参数的配置路径是错误的。在执行./configure时需要带上正确的php-config文件位置信息。
如果不知道php-config的位置,可以进行搜索:

find / -name php-config 

于是修改为:

./configure --with-php-config=/usr/bin/php-config

结果又给我来了一个:

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

网上都说需要下载Xcode,可以直接App Store中下载,下载完成之后执行:

sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include /usr/include

ps: 不要照抄把MacOSX10.13.sdk换成你自己的macos版本
在执行上面这句命令时可能会遇到:

Operation not permitted     

这个错。反正我是遇到了,这是因为在macos新版本中引入了Rootless策略,会对一些系统的目录没有操作的权限,即使是root用户也不行。
暂时关闭的方法是*关机重启后按住command + R别送,进入安全模式。
在安全模式下打开终端,输入下面命令后重新启动即可:

csrutil disable        

开启的办法也很简单

csrutil enable     

关闭后再执行之前的命令就不会有了。
编译安装成功后在/etc/php.ini中添加:

extension=swoole.so
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/lishanleilixin/article/details/96137272
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 18:13:40
  • 阅读 ( 1706 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢