在 centos/rhel 上使用 httpd24 ( apache 版本 2.4.10 ) 安装 php5.6.2

在 centos/rhel 上使用 httpd24 ( apache 版本 2.4.10 ) 安装 php5.6.2

使用这个仓库:http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ius-release-1.0-13.ius.centos6.noarch.rpm对于 php 安装,对于 apache,我使用 amazon linux repo

当前版本的 PHP :

$ php -v

PHP 5.6.2 (cli) (built: Nov  4 2014 10:01:39) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies

当前版本的阿帕奇:

$ httpd -v 

Server version: Apache/2.4.10 (Amazon)
Server built:   Jul 30 2014 23:57:26

到这个级别一切都很好

为 php 安装的软件包有:

$ yum list installed | grep php

php56u-bcmath.x86_64            5.6.2-3.ius.centos6        @ius                 
php56u-cli.x86_64               5.6.2-3.ius.centos6        @ius                 
php56u-common.x86_64            5.6.2-3.ius.centos6        @ius                 
php56u-devel.x86_64             5.6.2-3.ius.centos6        @ius                 
php56u-embedded.x86_64          5.6.2-3.ius.centos6        @ius                 
php56u-enchant.x86_64           5.6.2-3.ius.centos6        @ius                 
php56u-gd.x86_64                5.6.2-3.ius.centos6        @ius                 
php56u-imap.x86_64              5.6.2-3.ius.centos6        @ius                 
php56u-intl.x86_64              5.6.2-3.ius.centos6        @ius                 
php56u-ldap.x86_64              5.6.2-3.ius.centos6        @ius                 
php56u-mbstring.x86_64          5.6.2-3.ius.centos6        @ius                 
php56u-mcrypt.x86_64            5.6.2-3.ius.centos6        @ius                 
php56u-mysqlnd.x86_64           5.6.2-3.ius.centos6        @ius                 
php56u-pdo.x86_64               5.6.2-3.ius.centos6        @ius                 
php56u-pear.noarch              1:1.9.5-1.ius.centos6      @ius                 
php56u-pecl-jsonc.x86_64        1.3.6-3.ius.centos6        @ius                 
php56u-pecl-jsonc-devel.x86_64  1.3.6-3.ius.centos6        @ius                 
php56u-pgsql.x86_64             5.6.2-3.ius.centos6        @ius                 
php56u-process.x86_64           5.6.2-3.ius.centos6        @ius                 
php56u-pspell.x86_64            5.6.2-3.ius.centos6        @ius                 
php56u-recode.x86_64            5.6.2-3.ius.centos6        @ius                 
php56u-snmp.x86_64              5.6.2-3.ius.centos6        @ius                 
php56u-soap.x86_64              5.6.2-3.ius.centos6        @ius                 
php56u-tidy.x86_64              5.6.2-3.ius.centos6        @ius                 
php56u-xml.x86_64               5.6.2-3.ius.centos6        @ius           

已安装的 apache 软件包有:

$ yum list installed | grep http

httpd24.x86_64                  2.4.10-1.59.amzn1          @amzn-main           
httpd24-tools.x86_64            2.4.10-1.59.amzn1          @amzn-main        

现在,当我尝试为 apache 安装 php-extension 时,名为php56u.x86_64

有时候是这样的

$ yum install php56u.x86_64   
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest                                                                | 2.1 kB     00:00     

amzn-updates/latest                                                             | 2.3 kB     00:00     

4361 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check

---> Package php56u.x86_64 0:5.6.2-3.ius.centos6 will be installed
--> Processing Dependency: httpd-mmn = 20051115 for package: php56u-5.6.2-3.ius.centos6.x86_64
--> Running transaction check
---> Package httpd.x86_64 0:2.2.29-1.4.amzn1 will be installed
--> Processing Dependency: httpd-tools = 2.2.29-1.4.amzn1 for package: httpd-2.2.29-1.4.amzn1.x86_64
--> Running transaction check
---> Package httpd-tools.x86_64 0:2.2.29-1.4.amzn1 will be installed
--> Processing Conflict: httpd24-2.4.10-1.59.amzn1.x86_64 conflicts httpd < 2.4.10
--> Processing Conflict: httpd24-tools-2.4.10-1.59.amzn1.x86_64 conflicts httpd-tools < 2.4.10
--> Finished Dependency Resolution
Error: httpd24-tools conflicts with httpd-tools-2.2.29-1.4.amzn1.x86_64
Error: httpd24 conflicts with httpd-2.2.29-1.4.amzn1.x86_64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest`

答案1

看起来php56uIUS 适用于 Apache 2.2 而不是 2.4,这就是它尝试安装httpd.x86_64 0:2.2.29-1.4(Apache 2.2.29) 和所有相关工具 ( httpd-tools.x86_64 0:2.2.29-1.4) 的原因。

但是,这两个将与httpd24-2.4.10-1.59您从 Amazon 存储库安装的冲突。

尝试一下雷米回购协议- 我相信它同时具有适用于 CentOS 6 的 PHP 5.6 和 Apache 2.4

如果它符合要求,那么您将明智地删除 IUS 和 Amazon 存储库及其软件包并重新开始。

如果它不起作用,那么您的一些选择是:

  • 找到另一个具有您需要的版本的 Apache 和 PHP 的存储库。我相信 Fedora 21 有这些。这里的问题是,您最终可能会拖入许多依赖项,此时您的系统将成为 CentOS-6 / Fedora-21 的混合安装,管理起来可能会很困难(正如您已经发现的那样)。

  • 创建一个RPM 规格文件并构建您自己的 RPM 或使用诸如为您构建 RPM。构建 RPM 意味着以后卸载会更容易。

  • 从源代码构建 PHP 5.6 以与 Apache 2.4 一起使用

  • 等待存储库更新到所需的版本。

相关内容