2016-11-25 64 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