下载源码
下载地址https://www.php.net/distributions/php-7.4.0.tar.bz2
安装openssl
brew install openssl
安装libiconv
下载地址http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz
```
cd ~/Downloads/
tar zxvf libiconv-1.16.tar.gz
cd libiconv-1.16
./configure --prefix=/usr/local/libiconv
sudo make && make install
```
源码编译
```
cd ~/Downloads/
tar jxvf php-7.4.0
cd php-7.4.0
export OPENSSL_CFLAGS="-I/usr/local/opt/openssl/include"
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export OPENSSL_CXXFLAGS="-I/usr/local/opt/openssl/include"
export OPENSSL_LIBS="-lssl -lcrypto"
./configure --prefix=/usr/local/php74 --with-config-file-path=/usr/local/php74/etc --with-config-file-scan-dir=/usr/local/php74/etc/php.d --enable-fpm --enable-sockets --enable-mbstring --enable-soap --enable-bcmath --with-gettext=/usr/local/opt/gettext --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-pcntl --enable-opcache --with-zlib-dir=/usr/local/zlib --enable-calendar --enable-gd --with-curl --enable-sysvmsg --enable-sysvsem --enable-sysvshm --with-expat --with-openssl
```
在configure过程中,由于MacOS 用的是LibreSSL,会提示找不到openssl的库文件,所以在configure之前设定了上述的环境变量
直接make经常会碰到Undefined symbols for architecture x86_64:这样的提示,通过修改Makefile文件,大约在108行左右找到
```
EXTRA_LIBS = -lresolv -liconv -liconv -lintl -lm -lxml2 -lssl -lcrypto -lsqlite3 -lcurl -lxml2 -lz -lpng16 -lz -lonig -lsqlite3 -lxml2 -lxml2 -lexpat -lx ml2 -lxml2 -lssl -lcrypto
```
把-liconv 替换成 /usr/local/lib/libiconv.dylib这样的绝对路径,-lssl -lcrypto 也似类替换
sudo make & make install
到这里应该能编译完成安装php7.4了
php.ini配置此处省略
网友评论