使用mac的brew安装软件,有时会出现安装失败,或显示安装成功,但不能正常使用的情况。
例如安装php56-redis扩展,显示安装成功,重启后查看phpinfo看不到redis扩展信息。
命令行执行php有以下错误
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-redis/redis.so' - dlopen(/usr/local/opt/php56-redis/redis.so, 9): Symbol not found: _basic_globals
Referenced from: /usr/local/opt/php56-redis/redis.so
Expected in: flat namespace
in /usr/local/opt/php56-redis/redis.so in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-redis/redis.so' - dlopen(/usr/local/opt/php56-redis/redis.so, 9): Symbol not found: _basic_globals
Referenced from: /usr/local/opt/php56-redis/redis.so
Expected in: flat namespace
in /usr/local/opt/php56-redis/redis.so in Unknown on line 0
估计是php编译的版本不兼容导致
解决方法:在安装命令中加入参数
--build-from-source
这个参数表示从源开始编译,默认会采用bottle方式安装,bottle方式就是安装已编译好的二进制包
brew install php56-redis --build-from-source
其他软件,例如nginx安装出现问题,都可以使用此方法解决。
brew install nginx --build-from-source