Mac 下安装php pthreads扩展

最近真是和pthreads 杠上了

Mac上的开发环境是用 homebrew安装的。
在安装 phtreads时会报错

checking for MySQL support... yes
checking for specified location of the MySQL UNIX socket... /tmp/mysql.sock
configure: error: Cannot find libmysqlclient_r under /usr/local.
Note that the MySQL client library is not bundled anymore!

READ THIS: https://git.io/brew-troubleshooting
If reporting this issue please do so at (not Homebrew/homebrew):
  https://github.com/josegonzalez/php/issues

参考中外各种解决方案,其中这个博客园的解决还算靠谱。但是需要注意的是,在重新编译的时候,带上线程安全选项还算会报同样错误

--with-thread-safety //homebrew的配置,更多见 brew options php56   

正确的做法就是将 brew 的 lib 目录内 做软链接

cd /usr/local/lib

ln -s libmysqlclient.20.dylib libmysqlclient_r.dylib

这里的 .dylib 和linux的 .so 一个意思。


20160124更新

上述方式在linux可能有用,但是在mac完全没用!!!!
还是仔细看看错误提示

PHP Warning:  PHP Startup: pthreads: Unable to initialize module
Module compiled with build ID=API20131226,TS
PHP    compiled with build ID=API20131226,TS,debug
These options need to match
 in Unknown on line 0

看起来API id是一样的啊!!等等,后面的debug是什么鬼,抱着试一试的态度,取消了--with-debug的选项。
果然,编译完成之后就没有报错了

但是不知道xdebug能不能用,明天试试


20160126更新

前面几个扩展安装没问题,但是安装memcached之后还是报错:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-igbinary/igbinary.so' - dlopen(/usr/local/opt/php56-igbinary/igbinary.so, 9): Symbol not found: _basic_globals
  Referenced from: /usr/local/opt/php56-igbinary/igbinary.so
  Expected in: flat namespace
 in /usr/local/opt/php56-igbinary/igbinary.so in Unknown on line 0

找了很久。。。homebrew 的--build-from-source 救了我。

brew reinstall php56-xxx --build-from-source就搞定了

标签: none
返回文章列表 文章二维码
本页链接的二维码
打赏二维码
添加新评论