I'm trying to install the pecl HTTPRequest extension. But when I run the following command on my CentOS server, I get the message that no releases are available and the install has failed.
我正在尝试安装pecl HTTPRequest扩展。但是当我在CentOS服务器上运行以下命令时,我收到的消息是没有可用的版本,安装失败。
$pecl install pecl_http
No releases available for package "pecl.php.net/pecl_http"
install failed
What am I doing wrong?
我究竟做错了什么?
Edit: Pecl config
编辑:Pecl配置
Configuration (channel pecl.php.net):
=====================================
Auto-discover new Channels auto_discover <not set>
Default Channel default_channel pecl.php.net
HTTP Proxy Server Address http_proxy <not set>
PEAR server [DEPRECATED] master_server pear.php.net
Default Channel Mirror preferred_mirror pecl.php.net
Remote Configuration File remote_config <not set>
PEAR executables directory bin_dir /usr/local/bin
PEAR documentation directory doc_dir /usr/local/lib/php/doc
PHP extension directory ext_dir ./
PEAR directory php_dir /usr/local/lib/php
PEAR Installer cache directory cache_dir /tmp/pear/cache
PEAR configuration file cfg_dir /usr/local/lib/php/cfg
directory
PEAR data directory data_dir /usr/local/lib/php/data
PEAR Installer download download_dir /tmp/pear/download
directory
PHP CLI/CGI binary php_bin /usr/local/bin/php
php.ini location php_ini <not set>
--program-prefix passed to php_prefix <not set>
PHP's ./configure
--program-suffix passed to php_suffix <not set>
PHP's ./configure
PEAR Installer temp directory temp_dir /tmp/pear/temp
PEAR test directory test_dir /usr/local/lib/php/test
PEAR www files directory www_dir /usr/local/lib/php/htdocs
Cache TimeToLive cache_ttl 3600
Preferred Package State preferred_state stable
Unix file mask umask 22
Debug Log Level verbose 1
PEAR password (for password <not set>
maintainers)
Signature Handling Program sig_bin /usr/bin/gpg
Signature Key Directory sig_keydir /usr/local/etc/pearkeys
Signature Key Id sig_keyid <not set>
Package Signature Type sig_type gpg
PEAR username (for username <not set>
maintainers)
User Configuration File Filename /home/onsboek/.pearrc
System Configuration File Filename /usr/local/etc/pear.conf
2 个解决方案
#1
1
In my case, there was a problem: pecl.php.net did not answer when header "Accept-Encoding:" was total empty.
在我的情况下,有一个问题:当标题“Accept-Encoding:”为空时,pecl.php.net没有回答。
Adding one single space to that line in pear source-code, solved a problem.
在pear源代码中为该行添加一个空格,解决了一个问题。
file: /usr/local/lib/php/PEAR/REST.php
line ~405
$request .= "AcceptEncoding:\r\n"; //<---original line
$request .= "AcceptEncoding: \r\n"; //<--changed to this (added space)
...or simple script can perform the change:
...或简单的脚本可以执行更改:
#!/usr/bin/env bash
target=`pecl config-get php_dir`/PEAR/REST.php
[ -f "$target" ] || { echo file $target not found; exit; }
sed -i 's/Accept-Encoding:\\r\\n/AcceptEncoding: \\r\\n/g' $target
#2
0
Try the following;
尝试以下方法;
yum install php-pear
yum install gcc
yum install curl-devel
/usr/bin/pecl install pecl_http
Add the following line to /etc/php.ini file: extension=http.so
将以下行添加到/etc/php.ini文件中:extension = http.so
Restart your apache server so the extension can be loaded:
重新启动Apache服务器,以便加载扩展:
httpd -k restart
If it doesn't work, let me know the output.
如果它不起作用,请告诉我输出。
#1
1
In my case, there was a problem: pecl.php.net did not answer when header "Accept-Encoding:" was total empty.
在我的情况下,有一个问题:当标题“Accept-Encoding:”为空时,pecl.php.net没有回答。
Adding one single space to that line in pear source-code, solved a problem.
在pear源代码中为该行添加一个空格,解决了一个问题。
file: /usr/local/lib/php/PEAR/REST.php
line ~405
$request .= "AcceptEncoding:\r\n"; //<---original line
$request .= "AcceptEncoding: \r\n"; //<--changed to this (added space)
...or simple script can perform the change:
...或简单的脚本可以执行更改:
#!/usr/bin/env bash
target=`pecl config-get php_dir`/PEAR/REST.php
[ -f "$target" ] || { echo file $target not found; exit; }
sed -i 's/Accept-Encoding:\\r\\n/AcceptEncoding: \\r\\n/g' $target
#2
0
Try the following;
尝试以下方法;
yum install php-pear
yum install gcc
yum install curl-devel
/usr/bin/pecl install pecl_http
Add the following line to /etc/php.ini file: extension=http.so
将以下行添加到/etc/php.ini文件中:extension = http.so
Restart your apache server so the extension can be loaded:
重新启动Apache服务器,以便加载扩展:
httpd -k restart
If it doesn't work, let me know the output.
如果它不起作用,请告诉我输出。