mac 编译安装php-mongo 扩展时报evp.h文件找不到的解决方案
我在编译mongo扩展的时候 遇到了这个问题:
In file included from /usr/local/mongo-php-driver-legacy/io_stream.c:34:
./contrib/php-ssl.h:33:10: fatal error: 'openssl/evp.h' file not found
#include <openssl/evp.h>
问题分析:就是 openssl/evp.h 这个文件找不到.
解决思路:找一个evp.h文件放过去.
在本地找一下看有没有这个文件:
find / -name evp.h
得到下面的结果:
/opt/vagrant/embedded/include/openssl/evp.h
/usr/local/openssl/include/openssl/evp.h
/usr/src/openssl/include/openssl/evp.h
于是拷贝一个过去:
cp -r /usr/local/openssl/include/openssl /usr/local/mongo-php-driver-legacy/contrib/
再执行 make
显示:
.......
Build complete. Don't forget to run 'make test'.
问题解决。
说明:
如果你本地没有找到 evp.h,你需要把系统自带的opensssl删除(
rm -rf /usr/bin/openssl
), 然后重新装一个最新的openssl,然后将openssl/evp.h 拷贝一份过去