mac 编译安装php7.4 openssl扩展错误记录

mac 编译安装php7.4 openssl扩展错误记录

【错误】

Package requirements (openssl >= 1.0.1) were not met:

No package 'openssl' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables OPENSSL_CFLAGS
and OPENSSL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

【解决】

1.确认安装了openssl,如未安装则进行安装

brew install openssl

2.追加PKG_CONFIG_PATH 路径和声明openssl lib/include 的路径

vi ~/.bash_profile
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
export OPENSSL_LIBS="-L/usr/local/Cellar/openssl@1.1/1.1.1q/lib"
export OPENSSL_CFLAGS="-I/usr/local/Cellar/openssl@1.1/1.1.1q/include"
export PATH=/usr/local/opt/openssl@1.1/bin:$PATH
export LDFLAGS=-L/usr/local/opt/openssl@1.1/lib
export CPPFLAGS=-I/usr/local/opt/openssl@1.1/include

3.注册 openssl 到 pkgconfig 中

# 查看 openssl 是否在 pkgconfig 中
pkg-config --list-all | grep openssl
# 如果 pkgconfig 中没有 openssl 包 则手动建立 或者 尝试 brew unlink/link 重建
cd /usr/local/Cellar/openssl@1.1/1.1.1d/lib/pkgconfig
ln -s `pwd`/openssl.pc /usr/local/lib/pkgconfig

【错误】

108 warnings and 1 error generated.

make: *** [ext/openssl/openssl.lo] Error 1

这个错误主要是 openssl 版本 php版本不兼容,brew install openssl 默认安装的是最新openssl@3版本,发生以上错误

由于Debian Stretch默认使用OpenSSL 1.1.0。PHP 5.6 与更高版本的 OpenSSL 不兼容。这是一个 PHP 问题,但不确定它们是否会修复。

【解决】

MacOS 11.6 Big Sur: unable to compile PHP · Issue #1249 · phpbrew/phpbrew · GitHub

1.首先安装php8.0版本

export OPENSSL_PREFIX=$(brew --prefix openssl@1.1)
export OPENSSL_CFLAGS="-I${OPENSSL_PREFIX}/include"
export OPENSSL_LIBS="-L${OPENSSL_PREFIX}/lib -lcrypto -lssl"
phpbrew --debug install -j 12 8.0 +default -- --with-openssl="shared,${OPENSSL_PREFIX}"

2.选择php8

phpbrew use php-8.0.20

3.安装openssl扩展

phpbrew ext install openssl -- --with-openssl=$OPENSSL_PREFIX

4.正常安装php7.4

export CFLAGS="-Wno-implicit-function-declaration"
phpbrew install -j 12 7.4 +default -- --with-openssl="shared,${OPENSSL_PREFIX}"
                       

点击阅读全文

上一篇 2023年 6月 6日 am10:18
下一篇 2023年 6月 6日 am10:19