2016-11-25 26 views
2

当试图在PHP 7.0.13上安装mysqlnd扩展时出现以下错误。在PHP 7.0.13上安装mysqlnd时找不到OpenSSL的<evp.h>

我的openssl文件位于/usr/include/openssl/根据locate evp.h

尝试这些:

不过总体性他同样的错误。

./configure 
checking for grep that handles long lines and -e... /bin/grep 
checking for egrep... /bin/grep -E 
checking for a sed that does not truncate output... /bin/sed 
checking for cc... cc 
checking whether the C compiler works... yes 
checking for C compiler default output file name... a.out 
checking for suffix of executables... 
checking whether we are cross compiling... no 
checking for suffix of object files... o 
checking whether we are using the GNU C compiler... yes 
checking whether cc accepts -g... yes 
checking for cc option to accept ISO C89... none needed 
checking how to run the C preprocessor... cc -E 
checking for icc... no 
checking for suncc... no 
checking whether cc understands -c and -o together... yes 
checking for system library directory... lib 
checking if compiler supports -R... no 
checking if compiler supports -Wl,-rpath,... yes 
checking build system type... x86_64-unknown-linux-gnu 
checking host system type... x86_64-unknown-linux-gnu 
checking target system type... x86_64-unknown-linux-gnu 
checking for PHP prefix... /root/.phpbrew/php/php-7.0.13 
checking for PHP includes... -I/root/.phpbrew/php/php-7.0.13/include/php -I/root/.phpbrew/php/php-7.0.13/include/php/main -I/root/.phpbrew/php/php-7.0.13/include/php/TSRM -I/root/.phpbrew/php/php-7.0.13/include/php/Zend -I/root/.phpbrew/php/php-7.0.13/include/php/ext -I/root/.phpbrew/php/php-7.0.13/include/php/ext/date/lib 
checking for PHP extension directory... /root/.phpbrew/php/php-7.0.13/lib/php/extensions/no-debug-non-zts-20151012 
checking for PHP installed headers prefix... /root/.phpbrew/php/php-7.0.13/include/php 
checking if debug is enabled... no 
checking if zts is enabled... no 
checking for re2c... no 
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers. 
checking for gawk... gawk 
checking whether to enable mysqlnd... yes, shared 
checking whether to disable compressed protocol support in mysqlnd... yes 
checking for the location of libz... no 
checking for DSA_get_default_method in -lssl... no 
checking for X509_free in -lcrypto... yes 
checking for pkg-config... /usr/bin/pkg-config 

UPDATE

上找到bugs.php.net描述与mysqlndconfigure文件有问题an entry,也许这可能是相关的。

回答

0

对于任何有此(或类似)问题的人来说,我的一些发现是在Ubuntu 17.04上使用phpbrew安装PHP 7.1。

我尝试使用phpbrew如下安装PHP-7.1:

phpbrew install 7.1 +default 

这失败的报告是无法找到OpenSSL库,一些GitHub的问题和论坛建议您使用以下代替:

phpbrew install 7.1 +default +mysql +openssl=/usr/local/openssl/ 

这也失败了与原始问题完全相同的错误信息:

无法找到O penSSL的

事实上,该文件可以在/ usr/local/openssl中找到,使situacion更奇怪。

我终于找到了解决方案,在phpbrew问题111建议:

phpbrew install 7.1 +default +openssl=shared -- --with-openssl-dir=/usr/include/openssl 

注意+ OpenSSL的说,现在共享和--with-OpenSSL的-dir是用来指示作为之前相同的路径/ usr/include/openssl