Nginx

pecl install pecl_http 失敗 - 升級到 php7 和 http.so 會出現問題

  • June 9, 2016

類似問題:pecl_http 載入失敗

所以我想升級PHP7.0,我相信一切都很好。但我認為我錯過了一些頁麵包,因為我無法登錄到 my ownCloud。所以我想安裝pecl_http

pecl install pecl_http
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/http.so' - /usr/lib/php/20151012/http.so: cannot open shared object file: No such file or directory in Unknown on line 0
downloading pecl_http-3.0.1.tgz ...
Starting to download pecl_http-3.0.1.tgz (197,372 bytes)
.............done: 197,372 bytes
71 source files, building
running: phpize
Configuring for:
PHP Api Version:         20151012
Zend Module Api No:      20151012
Zend Extension Api No:   320151012
where to find zlib [/usr] :
where to find libcurl [/usr] :
where to find libevent [/usr] :
where to find libidn [/usr] :
building in /tmp/pear/temp/pear-build-root0suVKL/pecl_http-3.0.1
running: /tmp/pear/temp/pecl_http/configure --with-php-config=/usr/bin/php-config --with-http-zlib-dir=/usr --with-http-libcurl-dir=/usr --with-http-libevent-dir=/usr --with-http-libidn-dir=/usr
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... /usr
checking for PHP includes... -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib
checking for PHP extension directory... /usr/lib/php/20151012
checking for PHP installed headers prefix... /usr/include/php/20151012
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 extended HTTP support... yes, shared
checking for egrep... (cached) /bin/grep -E
checking for a sed that does not truncate output... (cached) /bin/sed
checking how to run the C preprocessor... cc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for off_t... yes
checking for mbstate_t... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking for unistd.h... (cached) yes
checking wchar.h usability... yes
checking wchar.h presence... yes
checking for wchar.h... yes
checking wctype.h usability... yes
checking wctype.h presence... yes
checking for wctype.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking for gethostname... yes
checking for getdomainname... yes
checking for mbrtowc... yes
checking for mbtowc... yes
checking for iswalnum... yes
checking for inet_pton... yes
checking for idna.h... found in /usr
checking for libidn version... 0.26
checking for zlib.h... found in /usr
checking for zlib version >= 1.2.0.4... 1.2.8
checking for curl/curl.h... found in /usr
checking for curl-config... found: /usr/bin/curl-config
checking for curl version >= 7.18.2... 7.35.0
checking for HTTP2 support in libcurl... no
checking for SSL support in libcurl... yes
checking for OpenSSL support in libcurl... no
checking for GnuTLS support in libcurl... yes
checking gnutls.h usability... no
checking gnutls.h presence... no
checking for gnutls.h... no
checking for NSS support in libcurl... no
checking for SecureTransport support in libcurl... no
checking for GSKit support in libcurl... no
checking for ares support in libcurl... no
checking whether CURLOPT_TLSAUTH_TYPE expects CURL_TLSAUTH_SRP or literal "SRP"... "SRP"
checking for bundled SSL CA info... /etc/ssl/certs/ca-certificates.crt
checking for event2/event.h... not found
configure: WARNING: continuing without libevent support
checking for ext/raphf support... PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/http.so' - /usr/lib/php/20151012/http.so: cannot open shared object file: No such file or directory in Unknown on line 0
no
configure: error: Please install pecl/raphf and activate extension=raphf.so in your php.ini
ERROR: `/tmp/pear/temp/pecl_http/configure --with-php-config=/usr/bin/php-config --with-http-zlib-dir=/usr --with-http-libcurl-dir=/usr --with-http-libevent-dir=/usr --with-http-libidn-dir=/usr' failed

我不知道有什麼/usr/lib/php/20151012/http.so好處。首先,我應該是這樣的:

PHP 警告:PHP 啟動:無法載入動態庫 ‘…/http.so’ - …/http.so:無法打開共享對象文件:第 0 行的未知中沒有此類文件或目錄

之後我只是刪除了它,至少它說它不存在。好吧……那我現在能做什麼。出了什麼問題?如何重新創建該 http.so 文件?

順便說一句:* 已經嘗試安裝舊版本,同樣的錯誤

錯誤的原因是我do-release-upgrade在我的Digitalocean SSH 控制台上做了一個。我在升級 phpmyadmin時遇到了麻煩。

它就卡在那裡了。所以我再次在沒有 phpmyadmin 的情況下進行了升級,然後手動安裝了最新的 phpmyadmin。現在一切都很好。最後,我還將核心設置為最新的(4.4.0.22),現在一切都很好。沒有*.so錯誤了。

以下適用於 Ubuntu 16.04:

sudo pecl uninstall propro 
sudo pecl uninstall raphf
sudo apt-get install php-raphf php-raphf-dev php-propro php-propro-dev
sudo pecl install pecl_http

最後你會得到這個,但沒關係:

install ok: channel://pecl.php.net/pecl_http-3.0.1 [...] Ungültiger Maschinenbefehl (Speicherabzug geschrieben)

引用自:https://serverfault.com/questions/775521