MAC手动编译软件和扩展

简介

18年开始新版的homebrew已经去掉了很多扩展,只好手动编译了.

编译安装

一 配置与环境

MAC OS : 10.13
PHP    : PHP7.1
gcc    : gcc4.9
swoole : swoole4.2

环境依赖:
仅支持 Linux、FreeBSD、MacOS 三种操作系统
在Windows平台,可使用CygWin或WSL(Windows Subsystem for Linux)
Linux 内核版本 2.3.32 以上
gcc4.4 以上版本或者clang
4.x版本起需要gcc-4.8或更高版本, 编译失败请先尝试升级gcc
编译为 libswoole.so 作为 C/C++ 库时需要使用 cmake-2.4 或更高版本
建议使用 Ubuntu14、CentOS7 或更高版本的操作系统
PHP版本依赖:
Swoole-1.x需要 PHP-5.3.10 或更高版本
Swoole-2.x需要 PHP-7.0.0 或更高版本
Swoole-4.x需要 PHP-7.1.0 或更高版本
不依赖 PHP 的 stream、sockets、pcntl、posix、sysvmsg 等扩展。PHP 只需安装最基本的扩展即可

二 编译

1.下载swoole
https://github.com/swoole/swoole-src/releases
我的电脑是Mac自带PHP7.1,果断选择最新的4.2装起来
2.升级gcc(非必须)
swoole4.x需要更高的gcc版本,如果你装swoole2.x或者swoole1.x Mac自带的4.2完全能搞定.
> 查看gcc版本
brew search gcc
> 安装gcc
brew install gcc@4.9
> 设置环境变量
vi .bash_profile 写入
    alias gcc="gcc-4.9"
    alias g++="g++-4.9"
    alias cc="gcc-4.9"
    alias c++="c++-4.9"

3.编译安装
> cd swoole-4.2.6 (解压好的文件的目录)
> phpize
提示Cannot find autoconf. Please check your autoconf installation and the  $PHP_AUTOCONF environment variable. Then, rerun this script.
解决方法: brew install autoconf
> ./configure --with-php-config=/usr/bin/php-config
> make && sudo make install
出现cp: /usr/lib/php/extensions/non-debug-.../swoole.so Operation not permitted 不要慌
重启电脑:按住Command+R 进入恢复模式,打开terminal,键入:csrutil disable
cp swoole.so /usr/lib/php/extensions/non-debug-.../
要重新恢复,按住Command+R 进入恢复模式,打开terminal,键入:csrutil enable
这个是Mac系统防止恶意修改文件

小结

整完一次,下次装别的扩展也不用过分依赖brew了,前提是要自己管理好软件和扩展的安装位置    
Leo wechat
欢迎您扫一扫上面的二维码,成为好友吧!
坚持原创技术分享,您的支持将鼓励我继续创作!