在Centos上安装PHP pecl遇到困难

20

我正在尝试在我的CentOS服务器上安装php_http PHP扩展。

我已经完成了以下步骤:

yum install php-pear

但是获得:

No package php-pear available

但我能做到:

pear

从Pear获取命令列表。

yum install pecl同样如此。我可以运行pecl但是pecl install pecl_http 返回:

No releases available for package "pecl.php.net/pecl_http"
install failed

然而,/usr/bin/pecl并不存在。同时,sudo pecl install pecl_http的返回结果是sudo: pecl: command not found,我觉得这相当奇怪。

我不太确定发生了什么/我做错了什么。

编辑:我正在使用以下软件源:

base                         CentOS-6 - Base
epel                         Extra Packages for Enterprise Linux 6 - x86_64
extras                       CentOS-6 - Extras
rpmforge                     RHEL 6 - RPMforge.net - dag
updates                      CentOS-6 - Updates
vz-base                      vz-base
vz-updates                   vz-updates                                                            

你正在使用哪些代码仓库? - Ben Carey
@BenCarey 我已经编辑了我的问题,包括一些 yum repolist 的输出。 - Harry
这确实是一个serverfault.com的问题。我完全看不到任何编程问题,无意冒犯。 - gwillie
@gwillie 可以随意标记它进行迁移。 - Harry
在CentOS 7上,我使用了以下命令:sudo yum --enablerepo=remi,remi-php72 install php-pear php-devel - site
10个回答

15

在 CentOS 上,

  1. 如果尚未安装,请安装 PHP Pear:

  2. # yum install php-pear
    
  3. 如果尚未安装,请安装GCC:

  4. # yum install gcc
    
  5. 如果尚未安装,请安装cURL:

  6. # yum install curl-devel
    
  7. 如果尚未安装,请安装以下库:

  8. # yum install php-devel
    # yum install zlib-devel
    # yum install pcre-devel
    
  9. 开始主安装:

    # pecl install pecl_http
    
  10. 将以下行添加到/etc/php.ini文件中

  11. extension=raphf.so
    extension=propro.so
    extension=http.so
    
  12. 重新启动 Apache 服务器,以便能够加载该扩展。

  13. # service httpd restart
    

您可以检查它是否安装成功:

# pecl list

如果最新版本的pecl 2.x不能正常工作,请通过"pecl uninstall pecl_http"卸载它,然后通过"pecl install pecl_http-1.7.6"安装较旧的版本,它可以正常工作。 - Chuong Van Nguyen

10

步骤1)导入REMI存储库

CentOS 5

rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm;
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm;

CentOS 6

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm;
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm;

第二步) 安装php-pear

yum --enablerepo=remi,remi-php55 install php-pear

第三步) 安装pecl_http

pecl install pecl_http

2
我添加了REMI仓库并尝试安装php-pear,但它仍然找不到该软件包。需要说明的是,我正在使用PHP 5.4.19。 - Harry
在第二步中,它显示“没有可用的php-pear软件包”。有什么建议吗? - Dashrath
1
@Dashrath 请尝试使用 yum --enablerepo=remi,remi-php55 install php5-pear 命令进行安装。 - Latheesan

6
如果你正在运行PHP 7,你可能想尝试这个。
yum install php70w-pear

如果您遇到任何错误,请务必卸载之前尝试过的pear软件包。

yum remove php-pear

祝你好运。

6

对于其他遇到这个问题的人。我在尝试找出自己为什么会出现同样的问题时发现了这个问题。结果是我的托管提供商默认配置将php*包含在exclude指令中的yum中。检查/etc/yum.conf,确保您尝试安装的软件包没有被exclude指令匹配。


我正在将一个网站迁移到Bluehost,这似乎也是情况。该服务通常由whm / cpanel管理,因此必须与此有关。 - Mark Odey

1
如果你正在使用php 5.4.x版本,我个人认为最好的存储库是iuscommunity。它非常稳定,并且被Rackspace用于仅为CentOS提供PHP和其他几个软件包。请执行以下命令:

rpm -Uhv http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ius-release-1.0-11.ius.centos6.noarch.rpm

yum install php54-pear

需要注意的是,之所以是php54-pear而不是php-pear,是因为在存储库中编译了5.3和5.4两个版本。以下是php软件包列表->http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/repoview/development.languages.group.html 我测试过这个,它是有效的,但我只使用EPEL和iuscommunity REPO。我避免自己使用rpmforge。

我刚刚尝试了一下,仍然显示“没有可用的php54-pear包”。 - Harry
那么你肯定做错了什么,因为这个软件包在仓库中是可以找到的。你可以通过执行以下命令安装:rpm -Uhv http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/php54-pear-1.9.4-2.ius.centos6.noarch.rpm - laapsaap
相同的结果。老实说我不再烦恼了。所以,是的。 - Harry

0
我尝试了所有的方法,但仍然无法安装pecl。 我正在运行CentOS。
"没有可用的php-pecl-mongo软件包。"
这些是我遇到的错误类型。

根据目前的写法,你的回答不够清晰。请编辑以添加更多细节,帮助他人理解如何解答所提出的问题。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - undefined
这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要提问者澄清的答案。- 来自审核 - undefined

0
在我最终意识到我的 WHM/cPanel 安装正在阻止 yum 包之前,我尝试了几乎这个列表上的所有内容。我必须通过 WHM(cpanel 文档称 您必须以 root 用户身份登录)内的 Home > Software > Module Installers 安装所有 PECL 模块(我在这个特定场合卡在了安装 mongodb 上)。

0
无论您的PHP提供商是IUS、Remi还是Webtatic,pear包和pecl扩展应该都可以在那里使用,而无需从源代码编译(这通常是不鼓励的,尤其是在生产环境中)。
至少"remi"提供了大多数扩展,请参阅列表
因此,安装应该很简单。
yum install php-pecl-http
yum install php-pecl-lua
etc

还有,别忘了阅读向导说明


0

Centos 6.5和PHP7:

sudo su -

yum install yum-utils

你可以获取 Lua 的最新版本:http://pecl.php.net/package/lua

wget http://pecl.php.net/get/lua-2.0.4.tgz

tar -xvzf  lua-2.0.4.tgz

cd lua-2.0.4

mkdir  /usr/include/lua

mv * /usr/include/lua

yum install gcc

yum install php70w-pearl php70w-devel



yum install curl-devel

yum install zlib-devel

yum install pcre-devel

ln -s /usr/include/lua.h /usr/include/lua/lua.h

rpm -Uvh https://centos6.iuscommunity.org/ius-release.rpm

yum-config-manager --enable remi-php70

yum update 

yum --enablerepo=remi,remi-php70 install php70w-pear

yum install lua-devel lua-static

pecl install lua-2.0.4

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接