macOS下编译php

由 月琳 发布 |122次浏览

引言:

本文为自己记录所用,不一定会与你一致。
本想为macOS自带的php编译拓展库,顺便做记录,结果最后编译pdo_mysql一直原地爆炸解决不了,转身拥抱brew install

下载源码:

php官网:https://www.php.net/

编译:

打开终端,cd到下载并解压后的源码目录,执行以下代码:

#先cd到源码解压的路径内
$ brew install libiconv #安装所需的依赖库
$ phpize    #生成configure文件;如果已存在可跳过,输入了也没事
$ ./configure --with-php-config=/usr/bin/php-config --with-iconv=/usr/local/opt/libiconv/
#这里的php-config是系统自带的路径,brew安装的php在/usr/local/etc/php/"版本"/
$ make && make install    #编译和安装

报错:

出现大概"_libiconv" 和 Undefined symbols for architecture x86_64: 的错误字样,

解决方案参考文章:https://blog.csdn.net/moqiluoji/article/details/94839352

(注意“ /usr/local/Cellar/libiconv/1.15/lib/libiconv.dylib”中的1.15版本号要对应你的版本号)

编译拓展库:

拓展库都在源码/ext里,这里举例安装pdo:

cd 到 源码/ext/pdo
$ phpize
$ ./configure --with-php-config=/usr/bin/php-config #php-config路径用你的
$ make && make install

macOS 10.15.x Catalina 中需要解开系统的只读状态:

  1. (仅白果用户需要这步,黑苹果用户跳过)重新开机后选择Recovery引导,进入Recovery后,打开“终端”,输入“csrutil disable” (不含引号),之后重启进入系统。
  2. 打开终端,输入
$ sudo mount -uw /
$ killall Finder

就可以操作系统文件了。

操作完最后,白果用户额外执行第1步但是命令换成“csrutil enable”


暂无评论

发表评论